I am about to get a device for which, so far, only an unofficial LineageOS build exists. A merge request to officially support this device is underway, but as always with LineageOS, no ETA.
A bunch of forum posts mention that there may be issues when signatures do not match. I remember that, when moving from CyanogenMod to its successor LineageOS, there was a special migration process (as the migration implied a change of the OS signature iirc):
- Install a special, migration-only build of LineageOS (intended only for migration from CyanogenMod, not for permanent usage)
- Boot up LineageOS once
- Install a regular LineageOS build over it
Also now, I am seeing discussions about migration paths from an unofficial build of LineageOS to an official one (again, with different signatures). However, I have not yet seen a clear explanation as to what the signature does and what would break if the signature does not match. Presumably any update tool would reject an update with a different signature. However, custom recovery tools (TWRP for sure) allow for signature checks to be skipped, hence this would not be an issue. Anything else I am missing?
My planned update path is the following:
- Using TWRP (or possibly, LineageOS Recovery), create a backup of the data partition on my present device.
- Unlock the bootloader of the new device.
- Install either TWRP (if available) or LineageOS Recovery on the new device.
- Install the still-unofficial LineageOS build on the new device.
- Using the recovery tool, restore the data backup on the new device.
- Use the new device.
- When an official LineageOS build becomes available, reboot into recovery and install it.
- Continue to use the new device, now with an official LineageOS build.
When switching from Nexus S to OnePlus One, I followed the first six steps and this worked without any issues. Both devices were on the same CyanogenMod version, albeit both were official builds, presumably with the same signature. Thus, as long as the OS signature does not change, the above process is proven to work – save for individual apps doing some extra verification, the effects of which would only affect that particular app.
Would I be able to use the same procedure to upgrade to a build of the same OS but with a different signature? If not, what would be broken by the signature not matching?