Add support for update-on-boot feature.
Add a separate system service RecoverySystemService to handle recovery related requests (calling uncrypt to de-encrypt the OTA package on the /data partition, setting up bootloader control block (aka BCB) and etc). We used to trigger uncrypt in ShutdownThread before rebooting into recovery. Now we expose new SystemApi (RecoverySystem.processPackage()) to allow the caller (e.g. GmsCore) to call that upfront before initiating a reboot. This will reduce the reboot time and get rid of the progress bar ("processing update package"). However, we need to reserve the functionality in ShutdownThread to optionally call uncrypt if finding that's still needed. In order to support the update-on-boot feature, we also add new SystemApis scheduleUpdateOnBoot() and cancelScheduledUpdate() into android.os.RecoverySystem. They allow the caller (e.g. GmsCore) to schedule / cancel an update by setting up the BCB, which will be read by the bootloader and the recovery image. With the new SystemApis, an update package can be processed (uncrypt'd) in the background and scheduled to be installed at the next boot. Bug: 26830925 Change-Id: Ic606fcf5b31c54ce54f0ab12c1768fef0fa64560
Loading
Please register or sign in to comment