LineageOS on FxTec Pro1 Test Builds
Introduction
LineageOS is a version of Android that is maintained, built, and supported by a group of
volunteers. Learn more about it on their home page.
If you are using LineageOS test builds, it is assumed that you are familiar with installing
and using third party ROMs. If you are not, please stop here. This is not for you.
Please read this entire page thoroughly prior to starting the procedure. There are
some things which may not be obvious at first glance, even to experienced users.
Device Information
You should be aware of some technologies used in the device before attempting to flash a
third party ROM.
A/B Boot
The Pro1 uses the "A/B" scheme. See Google's tech page on this subject to learn
more. This has some implications for running third party ROMs:
- You should never boot different ROMs (eg. stock and Lineage) without wiping data.
- You should always be aware of the active slot when flashing.
Additionally, you should be aware of the slots that different packages
will use for installation.
An OTA package (which includes the Lineage system) flashes to the
inactive slot. For example, if you are booted to slot A, then slot
B will be updated. Additionally, the process of flashing an OTA package
will automatically change the active slot.
Google apps flashes to the active slot. For example, if you are
booted to slot A, then slot A will be updated.
System as Root
The Pro1 uses "System as Root". See Google's tech page on this
subject to learn more. Devices with SaR do not have a dedicated recovery partition.
Instead, recovery is embedded in the boot partition. This means that installing recovery
will change the boot partition. Further, flashing Lineage recovery as described below
will render stock Android unbootable. It is possible to "inject" a custom recovery into
an existing boot image without making it unbootable. But this is done by flashing a package
designed for this purpose using a custom recovery. It is not possible to do this with
the stock recovery nor with fastboot.
Encryption
Android has two forms of user data encryption, called FDE (Full Disk
Encryption) and FBE (File Based Encryption). You can read more about
these here.
The stock Android system uses FDE. This is somewhat cumbersome and
outdated, so Lineage uses FBE.
Preparation
Get the tools
You will need the following host tools to successfully flash most any third party ROMs,
including Lineage:
These are available on the platform tools page.
Make a backup
Installing LineageOS will require "wiping" your user data. If you wish to keep any existing
app data, media (photos, etc.) from your current device, you need to do a backup before
installing and restore after installing.
Apps and App Data
Android has a rather limited but functional app backup and restore system, "adb backup" and
"adb restore". If you are not familiar with them, run "adb --help" and/or search for usage
on the web.
Media
Media can be copied to and from a PC using the normal file transfer methods (eg. MTP).
Download the Files
The official Lineage install zip and recovery image can be downloaded from
here.
Google Apps
Google apps are optional but highly recommended. The opengapps installer
has problems with A/B devices, so please use mindthegapps instead. The
official version can be downloaded here
and a copy is hosted on this server.
MindTheGapps-9.0.0-arm64-20190615_031441.zip
MD5: 43a1997f917db9d76b7dee31e9a83df4
SHA1: 3dc10fc59a5c91c20cc07c9bf9ee55e20860b695
Prepare to Flash: First Install
Use these instructions if you are not currently running Lineage.
Strategy
We are going to start by wiping the stock data. Then we will flash
Lineage recovery to slot A. This will render slot A unable to boot the
stock Android system. We will then boot Lineage recovery on slot A and
use it to flash the main Lineage system to slot B. If desired, boot into
recovery on slot B and flash Google apps. Finally, boot into the main
Lineage system on slot B.
Flash Lineage Recovery to Slot A and Wipe
Run adb reboot bootloader. You should see the bootloader
screen with several options.
Run fastboot flash boot_a lineage-16.0-pro1-test22-boot.img to
flash Lineage recovery to slot A.
Run fastboot --set-active=a to ensure slot A is active.
On the device. use the volume keys to select "Recovery mode" and press power to select.
You should see the Lineage Recovery screen in less than a minute.
On the device, select "Factory Reset" and then "Wipe data / factory reset".
Then go back to the main menu.
Prepare to Flash: Update Lineage
Use these instructions if you are currently running Lineage.
Reboot to recovery
Run adb reboot recovery. There is no need
to wipe data.
Flash the Device: Common Procedure
This is common to both first install and update.
Flash Lineage
On the device, select "Apply Update" and then "Apply from ADB". On your PC, run
adb sideload lineage-16.0-pro1-test22.zip. You should see
indications that the flash process has started on both the PC and the device.
When the update is complete, recovery should have automatically switched
the active boot slot.
Flash Google Apps (optional)
The gapps package updates the running slot. So, to flash gapps,
you must reboot back into recovery. From the main recovery screen, select
"Advanced" and then "Reboot to recovery".
When the recovery screen appears, flash the Google apps package using "adb
sideload" as above.
The flashing process is now complete. You may now reboot into Lineage.
Note that the first boot may take several minutes.
Note: gapps packages include scripts to persist across updates, but it
only works for OTA updates on A/B devices. It does not work for
sideload.
Note: It is always safe to flash gapps. If gapps is already present, it
will only over-write the files that are already there.
Change Log
test22
- Fix connectivity issues and power drain (intervigil).
- Set display density to match stock (npjohnson).
- Increase statusbar height in landscape (npjohnson).
- Tweak camera button behavior (npjohnson).
- Customize fingerprint setup image (npjohnson).
- Various cleanup (npjohnson).
test21
- Update device blobs and strings to latest stock (2020-07-07).
- Switch back to custom livedisplay implementation.
- Import changes from Ethan Chen (npjohnson).
test20
- Update kernel to latest code from Qualcomm and IdeaLTE.
- Update device blobs and strings to latest stock (2020-06-20).
- Switch to standard livedisplay implementation.
- Add WiFi MAC address setting from stock.
test19
- Code cleanup for official submit to Lineage.
- Add VoLTE props to fix VZW.
test18
- More selinux fixes (tdm).
test17
test16
- Re-release test15 without GMS (tdm).
test15
- Fix QWERTZ apostrophe key (really!) (tdm).
- Back out noise rejection bits from DT2W patch (tdm).
- Add su-hide patch (tdm).
test14
- Fix QWERTZ apostrophe key (tdm).
- Apply DT2W disable change from stock (tdm).
test13
- (Mostly) fix QWERTZ key layout (tdm).
- Address some SELinux denials (tdm).
test12
- Rebuild with latest Lineage tree (tdm).
test11
test10
- Fix audio crackling (tdm).
- Update fingerprint mitigations (tdm).
test9
- Fix notification light (tdm).
- Fix WiFi signal strength (tdm).
- Add fingerprint mitigations (tdm).
test8
- Fix Bluetooth audio aka. a2dp (tdm).
- Add touchscreen margin aka. dead zone (tdm).
- Add settings UI for keyboard and touchscreen (tdm).
test7
- Added some missing audio libs (tdm).
- Set keyboard type to internal (tdm).
- Wake device on any keypress (tdm).
- Map FN+DEL to INS (tdm).
test6
- Update vendor blobs to 20200106 (tdm).
- Set keyboard parameters on boot (tdm).
test5
- Fixed keyboard backlight (mccreary).
- Fixed wake on keypress (mccreary).
- Do not sleep on closing keyboard slider (mccreary).
- Added keyboard mappings: FxTec -> LEFTMETA, SYM -> RIGHTALT (mccreary).
- Fixed permissions for com.qualcomm.location (tdm).
Known Issues
Please see the issue tracker on github to view existing issues and file new issues.
Sources
kernel
device
vendor blobs
Reverting to Stock
The current procedure can be found here.
Other methods will be developed in the coming few weeks. Please note that
reverting to stock will wipe all of your data, both apps and media.