Pixel 3a and lower:v6.11 (sadly, LineageOS does not provide A16 / LOS 23 updates for these devices)
Major Announcement for users of @rik’s Unofficial iodéOS Pixel builds:
Due to changes on the LineageOS for microG server that hosts my unofficial iodéOS Pixel builds, and also due to us now implementing OTA updates for these builds, a new signing key has been used to make builds starting in January 2026.
This means if you attempt to install an update using “Updater App > 3 dots > Local update” it will fail, due to the mismatch between the build signature of the pre-Jan-2026 build and the new build. In order to update without losing data you will need to boot into Recovery and install the new build via adb sideload. While installing, you will get a warning message that the “Build signature does not match”. Accepting this warning will then proceed to install the new build and you will be all set with the new build signature and with the OTA update configuration.
Future builds will now come “OTA” directly from the Updater App without the need to manually download them and apply as “Local Updates”. Enjoy!
Yes, sorry you have to do that, but I think you can appreciate that while we make the unoffiicial builds with the same source code it is a different build with different build keys and signatures, so it is essentially like installing a “new” ROM to move between these. Good luck!
I have the same key pair for both avb and ota signing (so the parameter for --key-avb and --key-ota is the same, though the passphrase to decrypt the private key still needs to be typed twice, but may be omitted if the private key is not encrypted), and use the following script to make lockable personal ota packages:
“$3” is the ota package to be resigned, “$4” is the path to save the resigned output.
You can use the current build process to produce non-lockable ota packages, and then use avbroot and the same key pair(s) to turn them into lockable ota packages by resigning.
So I could make a blind build but I would be a bit uneasy distributing that. If you are willing to test on your device, knowing that a useless paperweight is a real possibility then I could pass it to you (when I get it made)?
This is not true, as I have a resigned lineagos running on a pixel 2, and even aura (razer phone 2), which is once supported by divestos with relocking.
Pixel 3a XL might be special someway, but according to #299 and #274, only resigning stock google ota packages would be problematic, so resigning iodeos builds should be okay.
#299 is misleading someway, as it mixed up device support and specific (google stock) ota package format support.
Thanks @rik. Here are the detailed steps I used to successfully update my Pixel 4a5g unofficial build from Iode 6.7 to Iode 7.1 without losing data:
Back up phone, just in case.
Connect phone to computer via USB
Open a terminal
Confirm authorized ADB connection with adb devices
Download the IodeOS…zip file for the 7.1 unofficial Rik build onto computer
Boot Pixel into recovery mode from computer terminal using adb reboot recovery. This re-confirms adb connection and provides a clear path to Recovery Mode.
Sideload the IodeOS…zip file.
On the device, select “Apply Update”, then “Apply from ADB”.
On the host machine, sideload the package using: adb -d sideload /path/to/zip
Wait for Pixel to show the “Signature failed” error. Choose “Yes” to continue to load anyway.
Wait for Pixel to show “To install additional packages, you need to reboot recovery first. Do you want to reboot to recovery now?” Select NO.
Select “Reboot System now” from recovery main menu.
Check IodeOS system update information on the Pixel to confirm that the update was successfull.
I tried the same and did a factrory reset via recovery, but the unofficial 7.1. did not install because of key verification failure. I didnt get a bootloop then, but just landed in the old 6.9. official ROM.
What did I miss?
You need to “proceed anyway” when you are warned about the key verification failure, this is due to now using a different build key as described above. Thanks to @HandyTravis above a few posts for writing up the details to move to 7.1.