set-verity-state: Use ro.boot.veritymode to determine current verity state
On a device that don't use overlayfs remount (e.g. no EXT4 dup blocks; this can be simulated by patching fs_mgr_wants_overlayfs()), if we run disable-verity or enable-verity twice in a row then the second invocation would not suggest a reboot: adb disable-verity > Successfully disabled verity > Reboot to take effect... adb disable-verity > Verity is already disabled ^^^ this is WRONG! verity is disabled only after a reboot It behaves like this because it suggest a reboot only if the vbmeta verity (HASHTREE) flag is changed. Read the ro.boot.veritymode property instead to determine the current dm-verity state and suggest a reboot by comparing current and future verity state: * If AVB verification is disabled, then ro.boot.veritymode is undefined (probably empty), don't suggest reboot in this case as it's pointless. * Otherwise suggest a reboot if the new state (which would take effect after reboot) differs from the current verity state. * Reference: https://android.googlesource.com/platform/external/avb/+/master/README.md#handling-dm_verity-errors Bug: 241688845 Test: adb-remount-test Test: Run "adb enable-verity" & "adb disable-verity" multiple times Change-Id: If1df5bee6e5dcbda580b3dff6c32da93d08bbb46
Loading
Please register or sign in to comment