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: 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
test21
test20
test19
test18
test17
test16
test15
test14
test13
test12
test11
test10
test9
test8
test7
test6
test5

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.