Start using filesystem checkpointing on devices that support it.
One implication of this are that we no longer need to take a backup
of /data/apex/active when staging new packages for installation;
instead, all changes to /data/apex/active will anyway be undone at
the next boot.
If we fail to apply a staged session, or the watchdog and/or
StagingManager tell us to roll back, we don't actually modify the
session state; instead, we just abort the changes and reboot. On the
next reboot, if the retry counter has expired, the checkpointing
subsystem will tell us that we need to rollback, and we'll mark the
staged session as ROLLED_BACK then.
Unfortunately this prevent us from testing some parts of rollback
functionality, since it requires a reboot. Will move these tests to the
end-to-end tests once we figure out the plan there.
Bug: 126740531
Test: atest apexservice_test
atest apex_e2e_tests
Change-Id: Iba58b801e07ca7ea2f25cebd9d107f332360724e
5 files changed