Flashable firmware zip generator for the Oneplus 3T
I have recently switched to a Oneplus 3T after my older phone suffered a series of unfortunate accidents.
I have to say I'm very happy with the experience so far. Excellent build quality, performance, battery and the warranty is not voided by using non-oficial ROMs.
After verifying that everything worked fine with the stock ROM I immediately switched to LineageOS, the successor of CyanogenMod.
The issue with this ROM is that they don't ship the firmware blobs themselves. So every time a newer version of the firmware is needed, one needs to flash the stock upgrade, wiping all existing data in the process.
To avoid having to wipe clean my device with a factory image every time I want to upgrade my firmware I wrote a small script to generate a flashable zip from Oneplus' official OxygenOS ROM images which you can download here.
Keep on reading if you are interested in my upgrade routine/checklist.
My upgrade checklist
Whenever is time for a firmware upgrade, I take the following steps:
First, put everything to download
Reboot into fastboot mode:
adb reboot bootloader
Wait for the phone to enter fastboot mode and:
fastboot flash recovery twrp-3.1.0-1-oneplus3t.img
Upgrade the firmware blobs
Extract the latest firmware from the stock ROM (the extraction script can be downloaded here).
Reboot the phone in recovery mode and start sideload, then
adb sideload firmware-OnePlus3TOxygen_28_OTA_023_all_1704261914_d02c3ec6319f4439.zip
Enable sideload again and:
adb sideload lineage-14.1-20170504-nightly-oneplus3-signed.zip
Disable the initial setup wizard to prevent a crash loop that I haven't bothered debugging:
adb shell mount /system adb shell mv /system/priv-app/LineageSetupWizard/LineageSetupWizard.apk /system/priv-app/LineageSetupWizard/LineageSetupWizard.apk.bak
Flash latest Magisk
This needs to be done every time a ROM update is flashed as Magisk modifications to the boot image will be lost.
While still on recovery, enable sideload yet again and:
adb sideload Magisk-v12.0.zip
Don't reboot just yet!
Use Tingle to enable signature faking
This last step is needed for microG's google services to work properly.
adb shell mount /system cd tingle ./main
And select option
1 from the menu.