[OnePlus 3 & 3T Cross Device Development] slash.tux:
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/

What is Ubuntu Touch?

Ubuntu Touch is the touch-friendly mobile version of Ubuntu.

This operating system is developed and maintained by UBports: An international community of passionate volunteers.

This means Ubuntu Touch is 100% community driven and independent.

What is Halium?

Halium is the collaborative project to unify the Hardware Abstraction Layer for projects which run GNU/Linux on mobile devices with pre-installed Android.

How it is a GSI?

First of all, I should mention ubports GSI definition is different from android, but both are generic.

ubports root file system was always generic and works for most cases, but devs were porting halium system image to add device-specific (HALs and configs) support to ubports Android container.

But after project treble which introduced in android 8, all device-specific parts of android system image moved to vendor partition and we can use "Generic system images" over one vendor partition.

In halium version 9, we use this adventure and have a totally generic system image + root file system.

Requirements:

The only Requirement of booting this GSI is having Halium patched kernel.

Keep in mind having android 9 firmware installed on the device as GSI base is mandatory

What's needed ?

Phone needs to be treblized - thanks to the project : https://xdaforums.com/oneplus-3/one...eble-lineageos-15-1-treble-oneplus-3-t3830455

Then custom kernel & lineage image dedicated to Ubports - OP3 https://drive.google.com/drive/folders/1vnJEKkhO3xqH-fWWG55-yxwx5K1EeKq7?usp=sharing

Ubports GSI image are required

Installation steps:

- Download:

Recovery : twrp-op3treble-3.3.1-1.img : there

LineageOS 16 Ubuntu touch custom : there

Firmware 9.0.6 : oxygenos-9.0.6 be careful the firmwares are device specific : there

Download the latest GSI zip from there

Download the Halium-ramdisk there

Download the halium-boot.img there

Download the OP3_GSI_Fix_V1.1.zip there

- Reboot into fastboot and install the TWRP recovery => Check the official link for installation TWRP link

- Treblelize your OP3(t), by following the information there : https://xdaforums.com/oneplus-3/one...eble-lineageos-15-1-treble-oneplus-3-t3830455

- Reboot into the TWRP Recovery

- Update the firmware

- Install LineageOS 16 Ubuntu touch custom

- Reboot into Lineage, confirm everything works fine.

- Ensure your /vendor (after mounting) is populated with content from an Android 9 ROM (LineageOS)

- Flash the GSI zip file

- Flash the halium-boot.img from before to your boot partition (if you didn't yet):

adb push ~/Halium/out/target/product/oneplus3/halium-boot.img /tmp/
adb shell "dd if=/tmp/halium-boot.img of=/dev/block/bootdevice/by-name/boot"

Or

fastboot flash boot out/target/product/oneplus3/halium-boot.img

- Flash the halium-ramdisk.zip

- Flash the fix for OP3 : OP3_GSI_Fix_V1.1.zip

- Reboot

- Enjoy

What's work:

Audio

Calling

SMS

4G - Yes but no icons - need to activated once after GSI is flashed

Wifi - Need a fix to restart it see the github repo

GPS

Vibration

Orientation sensor

Bluetooth

camera - zooming is sluggish

Video recording/decoding

Fingerprint + home button calling the dash <= Sweet !

What's Missing:

GSM tends to crash time to time on low signal.

Flash light

ADB/MTP - replaced by SSH

Libertine - didn't try yet

Anbox - Not tried yet

others ?

Thanks to :

https://xdaforums.com/oneplus-3/one...eble-lineageos-15-1-treble-oneplus-3-t3830455

https://xdaforums.com/project-trebl...development/gsi-ubuntu-touch-ubports-t4110581

And Ubports team : https://ubports.com/