libsnapshot: NeedSnapshotsInFirstStageMount don't test for IsRecovery

Init skips first stage mount entirely in recovery, so
the check is useless. Also, __ANDROID_RECOVERY__ is always
set for first stage init.

Also add logs if rollback indicator is set.

Fixes: 149956852
Test: apply OTA, manually rollback, reboot, see rollback indicator
Change-Id: Iac967baf4b51ea5ce9f6eb962a33cb7ee5819c1d
This commit is contained in:
Yifan Hong 2020-02-20 17:09:55 -08:00
parent 6187030652
commit 7fd9b8b7f3
1 changed files with 3 additions and 1 deletions

View File

@ -1387,12 +1387,14 @@ bool SnapshotManager::NeedSnapshotsInFirstStageMount() {
auto slot = GetCurrentSlot();
if (slot != Slot::Target) {
if (slot == Slot::Source && !device_->IsRecovery()) {
if (slot == Slot::Source) {
// Device is rebooting into the original slot, so mark this as a
// rollback.
auto path = GetRollbackIndicatorPath();
if (!android::base::WriteStringToFile("1", path)) {
PLOG(ERROR) << "Unable to write rollback indicator: " << path;
} else {
LOG(INFO) << "Rollback detected, writing rollback indicator to " << path;
}
}
LOG(INFO) << "Not booting from new slot. Will not mount snapshots.";