Support sideload full update on VAB
On devices with Virtual A/B, certain regions are snapshotted
during the udpate. Snapshots may fail to be created in
recovery because fiemap of userdata cannot be retrieved (it may
succeed if empty space in super is enough to hold CoW, although
this is likely not the case for launch VAB).
In this case (on VAB devices when super is not big enough,
esp. for launch VAB devices):
- sideloading incremental OTAs are not allowed
- sideloading full OTAs is similar to flashing. Source partitions
are deleted from super.
Note that to reduce the difference between launch and retrofit
VAB devices, most code only checks
GetVirtualAbFeatureFlag().IsEnabled(). IsLaunch() is only used when
doing sanity checks and providing more detailed logging information.
Test: manually make PrepareSnapshotPartitionsForUpdate fail, then sideload
Test: update_engine_unittests
Bug: 140749209
Change-Id: I64927c85bfb10b34d8bd19bd88c18663f4a2a917
2 files changed