Wileyfox Swift (wileyfox-crackling)

From postmarketOS Wiki
Note This page is about the dedicated port of this device. There is also an optional generic port available for this device - see Generic MSM8916 (qcom-msm8916).
Wileyfox Swift
Wileyfox Swift running Plasma Mobile
Wileyfox Swift running Plasma Mobile
Manufacturer Wileyfox
Name Swift
Codename wileyfox-crackling
Released 2015
Type handset
Hardware
Chipset Qualcomm Snapdragon 410 (MSM8916)
CPU Quad-core Cortex-A53 1.2 GHz
GPU Adreno 306
Display 1280x720 IPS
Storage 16 GB
Memory 2 GB
Architecture aarch64
Software
Original software Android
Original version 5.1.1
postmarketOS
Category community
Pre-built images yes
postmarketOS kernel Mainline
Optional Generic Port Generic MSM8916 (qcom-msm8916)
Features
Flashing
Works
USB Networking
Works
Internal storage
SD card
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
Works
Audio
Works
Camera
Camera Flash
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Works
Modem
Calls
Works
SMS
Works
Mobile data
Works
Miscellaneous
FDE
Works
USB OTG
Partial
HDMI/DP
Sensors
Accelerometer
Works
Magnetometer
Ambient Light
Proximity
Hall Effect
Haptics
Barometer
This device is based on the Snapdragon 410.
See the SoC page for common tips, guides and troubleshooting steps

Wileyfox Swift is a fairly popular device that was initially shipped with CyanogenOS. It is based on Qualcomm Snapdragon 410 SoC which has great mainline Linux support.

This device, as well as multiple other devices under a common name "Google Android One 2nd Gen (google-seed)" all use same "Longcheer l8150" design, so all of those devices are supported with this port.


Contributors

Maintainer(s)

Users owning this device


How to enter flash mode

  • Recovery: Power on the device with both Power and Volume Down buttons.
  • Stock fastboot: Power on the device with both Power and Volume Up buttons. You only need this to install lk2nd.
  • lk2nd Fastboot: Power on the device. After it vibrates/the display shows up, hold Volume Down.
Note Note: Pressing the keys too early will cause the stock bootloader to handle the key combination. You will end up in the wrong Fastboot interface.
Note Note: google-seed devices have opposite functions for keys in stock bootloader, Hold Volume Down for fastboot. The device may not have any visible indication for fastboot mode.

Installation

  1. You need to enable OEM unlocking in the developer settings of your android/cynogen installation. Otherwise, the Cynogen recovery will refuse to boot. However, you are allowed to flash the rootfs. Kernel, Recovery and bootloader not.
  2. You may need to unlock the bootloader with fastboot oem unlock-go. (This may be the only step required on seed devices before you can flash lk2nd)
  3. Make sure that you have the latest Cyanogen bootloader. If necessary, you can use the flash-radio.sh script from a fastboot update package available at https://cyanogenupdatetracker.com/downloads/.
  4. Install lk2nd (alternative bootloader that handles certain mainline quirks like setting up the WiFi/BT MAC addresses. Keep in mind that you have to install pmOS components with lk2nd, not original fastboot)
  5. Follow Qualcomm_Snapdragon_410/412_(MSM8916)#Installation.

Known Bugs and Workarounds

  • Multi-touch doesn't work

This is a known issue: The touch controller sends the events in a different format that the driver can decode. Fix is WIP.

Battery and charging

Wileyfox Swift uses LBC charger in pm8916. A simple driver was added to the kernel to enable and configure charging. Compared to downstream driver that makes some decisions in software, this driver leaves charging entirely to hardware since, according to documentation, LBC can work on it's own after it was initially configured.

Note Note: As with any device, it's not recommended to leave your phone on charger for prolonged periods of time, leave it unattended or charge it in conditions that may cause overheating.

This device uses "Voltage Mode BMS" (VM-BMS) to estimate State Of Charge (SOC) of the battery. Compared to other devices that have additional hardware (Fuel Gauge) to measure SOC, VM-BMS is mostly implemented in software. Accurate SOC estimation requires complex math algorithms and, ideally, should be implemented as userspace program. As a temporary solution, vm-bms driver was implemented. It uses simple, less accurate algorithm to estimate SOC. This algorithm works well enough to show approximate SOC in normal use but may fail in some unusual cases.

USB Host (OTG)

This device doesn't support OTG so it can't provide power or even detect normal OTG adapters but it is still possible to use USB in host mode. This requires custom adapter that will provide power to your USB device. In order to detect such adapter we abuse the fact that USB ID pin in microUSB is used to force EDL mode but since it is pulled down we can't detect normal OTG adapters with it. (USB_ID on those adapters is connected to ground when we can only detect 5v on this pin) So your custom adapter not only should provide external power but also should provide logical-high signal to USB_ID. This can make such adapter dangerous for other devices so you should avoid plugging it anywhere else. You can put a resistor between 5v and USB ID to make it a bit safer. Please note that device will boot into EDL mode if you leave such adapter in while powering on the device. EDL have no visible indication and you will need to pull battery out in order to reboot.

Edge testing list

The following list is taken from the Release testing template and is intended for tracking the device support level in better detail.

Device testing list.

- [βœ…] Device boots and it's possible to login (password: 147147)

##### Hardware:
- [βœ…] Automatic screen rotation works
- [βœ…] Brightness control works
  - [βœ…] Light sensor (Automatic brightness) works
- [🟨] Touch (with multitouch) works (MT is broken)
- [βœ…] Buttons work
- [βœ…] Haptic feedback works
- [βœ…] Notification led works 
- [βœ…] Fuel gauge works
  - [βœ…] Charger detected and charging works 
- [🟨] USB OTG / host mode (HW doesn't support OTG, workaround is used)
- [βœ…] Torch / flashlight
- [βœ…] GPS works
  - [βœ…] Magnetometer or compass works

##### Chipset specific features:
- [βœ…] SMP works (all CPU codes detected)
  - [🟨] Frequency scaling works, not full range
- [πŸŸ₯] Device suspend works
- [🟨] Hardware video encoder/decoder works (encoder doesn't work, issues with the decoder)
- [🟨] GPU/3D acceleration works (minor issues in some applications)

##### Sound:
- [βœ…] Speakers, headphones and earpiece work
- [βœ…] Headphones selected automatically when plugged in
- [βœ…] Microphone works

##### Connectivity:
- [βœ…] Bluetooth
- [βœ…] WiFi
- [βœ…] Cellular:
  - [βœ…] Mobile data works
  - [βœ…] SMS works
  - [βœ…] Making a call works
  - [βœ…] Receiving a call works
    - [βœ…] Proximity sensor works

##### Camera: (no drivers yet)
- [πŸŸ₯] Front camera
- [πŸŸ₯] Rear camera
  - [πŸŸ₯] Lens actuator (autofocus) works

See also