No description
Find a file
David Anderson c85af55952 libsnapshot: Simplify wipe handling in recovery.
This refactors HandleImminentDataWipe to address some shortcomings
discovered through testing. Previously, it always called
CreateSnapshotsAndLogicalPartitions, which meant trying to use snapuserd
even if completely unnecessary.

Instead we now peek at the update state and eliminate the "easy" cases
ahead of time. These are "none", "initiated", and "unverified" when
either a rollback happens or there is no forward merge indicator. In
this case we simply return early and allow the wipe to continue
(disabling the current slot if necessary).

The hard case, when a merge is needed, is still handled within
ProcessUpdateStateOnDataWipe. However it's no longer recursive, and it
can assume a merge is about to initiated or already in progress.

In all cases except a merge failure, we change the update state to None
to clear any roadblocks update_engine or the bootloader might encounter.
A merge failure, however, still blocks a data wipe. The way to recover
from this is adb sideload.

Bug: 350613336
Test: vts_libsnapshot_test
      wipe in INITIATED state, no merge
      wipe in UNVERIFIED state, no merge
      wipe in UNVERIFIED + rollback state, no merge
      wipe in MERGING state, merge
Change-Id: I387aabcfa6304118be88ddbb85842111d5c2ef6a
2024-08-09 14:04:30 -07:00
bootstat bootstat: avoid vector<const T> 2024-06-28 00:52:41 -07:00
cli-test [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
code_coverage Disable code_coverage.other for riscv64 2022-10-13 13:49:10 -07:00
debuggerd Make timeout messages distinct 2024-07-03 17:33:08 -07:00
diagnose_usb Support building diagnose_usb against musl 2021-12-16 14:04:06 -08:00
fastboot libc++fs is part of libc++ now. 2024-06-04 16:47:32 +00:00
fs_mgr libsnapshot: Simplify wipe handling in recovery. 2024-08-09 14:04:30 -07:00
gatekeeperd Check AServiceManager_isDeclared before AServiceManager_getService 2023-06-14 02:43:54 +00:00
healthd charger: fix show qustion mark when start to draw UI 2024-07-22 20:06:25 +08:00
include Remove include/backtrace symlink. 2020-10-20 12:46:14 -07:00
init Merge "init: Wait for /dev/hvc1 during ARCVM first-stage mount" into main 2024-08-05 18:37:56 +00:00
janitors Add maco to OWNERS. 2024-05-06 13:22:28 +00:00
libappfuse [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
libasyncio Set min_sdk_version 2021-12-02 09:23:42 +09:00
libcrypto_utils Remove VNDK definition(s) 2024-03-15 08:19:44 +00:00
libcutils libcutils: Split uevent_open_socket() 2024-08-05 09:31:24 -07:00
libgrallocusage Make apex_available explicit 2022-02-09 11:37:19 -08:00
libkeyutils Make libfs_mgr dependencies vendor_ramdisk_available. 2021-07-23 16:50:06 -07:00
libmodprobe libmodprobe: use ordered map for deterministic module loading 2024-08-06 04:05:25 +00:00
libnetutils Remove VNDK definition(s) 2024-03-15 08:19:44 +00:00
libpackagelistparser parse_line: allow -1 for apexes and sdk libraries. 2024-04-26 15:30:30 +00:00
libprocessgroup Merge "Revert^2 "Move StagedRollbackTest from postsubmit to presubmit"" into main 2024-06-27 20:02:24 +00:00
libsparse Make simg2img host-only 2023-08-28 09:53:30 -07:00
libstats Make libexpresslog apex available 2024-06-13 22:59:55 +00:00
libsuspend libsuspend: vendor_available. 2021-11-02 13:52:40 -07:00
libsync Declare the headers of the ndk_library 2022-09-08 21:59:20 +00:00
libsystem Add COLOR_MODE_DISPLAY_BT2020 to graphics header. 2022-12-01 22:25:40 -08:00
libsysutils Merge "Remove VNDK definition(s)" into main 2024-05-23 00:38:19 +00:00
libusbhost Remove VNDK definition(s) 2024-03-15 08:19:44 +00:00
libutils Remove Windows-specific code from Trace.h 2024-07-31 15:52:09 +00:00
libvendorsupport libvendorsupport provides an API to replace vndk version 2024-04-30 10:59:07 +09:00
libvndksupport try llndk-deprecate 2023-12-21 02:09:14 +00:00
llkd llkd: Disable in userdebug builds by default 2021-11-04 16:21:46 -07:00
mini_keyctl Remove alanstokes@google.com from mini_keyctl/OWNERS 2024-07-09 21:12:32 +00:00
mkbootfs mkbootfs: Allow invocation with no directories specified 2024-05-15 16:05:55 +00:00
property_service Make apex availability of libpropertyinfoparser and libpropertyinfoparser explicit 2024-01-04 01:34:40 +00:00
reboot [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
rootdir Refactor init.environ.rc to append than replace 2024-08-02 15:55:39 +09:00
run-as run-as: remove a special case. 2023-11-10 22:02:00 +00:00
sdcard [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
shell_and_utilities Update shell_and_utilities for V. 2024-04-29 16:39:01 +00:00
storaged Update storaged to use Health AIDL HAL V3. 2023-12-11 11:59:23 -08:00
toolbox toolbox/modprobe: Load modules from /lib/modules based on page size 2024-06-11 18:41:49 -07:00
trusty trusty: keymint: Add commandline option to specify device name 2024-07-31 08:21:53 +00:00
usbd usb: migration to USB gadget AIDL 2023-01-10 11:24:36 +08:00
watchdogd [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.clang-format-4 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
CleanSpec.mk snapshotctl don't auto-merge. 2020-03-03 13:19:49 -08:00
METADATA Add METADATA to system/core: Apache2+BSD=NOTICE 2020-04-29 13:16:41 -07:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
OWNERS Add bug component to system/core 2023-07-26 07:57:58 -07:00
PREUPLOAD.cfg PREUPLOAD += bpfmt 2024-06-04 23:10:21 +00:00
rustfmt.toml Configure rustfmt for preupload hook 2022-04-06 21:11:09 +00:00