Tao Bao 5fb9f532f0 update_verifier: Handle legacy care_map.txt gracefully.
update_verifier should be backward compatible to not reject legacy
care_map.txt from old releases, which could otherwise fail to boot into
the new release.

For example, we've changed the care_map format between N and O. An O
update_verifier would fail to work with an N care_map.txt - a) we have
switched update_verifier to read from device mapper in O; b) the last
few blocks that contain metadata can't be read via device mapper. This
could be a result of sideloading an O OTA while the device having a
pending N update.

Bug: 63544345
Test: As follows on sailfish:
 1. Flash the device with this CL;
 2. Put a copy of N care_map.txt at /data/ota_package/. Restore the
    permissions properly ('cache' group);
 3. `adb reboot bootloader`;
 4. `fastboot set_active <current_slot>`
 5. Device boots up into home screen, with a warning in logcat that says
    it has skipped legacy care_map.txt.
Change-Id: I6acc88c9e655a9245e6531f176fef7953953935f
(cherry picked from commit 5a1dee01df)
2017-07-24 09:14:15 -07:00
2013-03-07 13:34:24 -08:00
2017-05-23 17:09:45 -07:00
2017-07-10 13:22:17 -07:00
2017-07-06 16:49:27 -07:00
2014-04-25 15:47:34 -07:00
2017-03-07 15:35:12 -08:00
2017-03-07 15:35:12 -08:00
2017-04-16 15:53:47 -07:00
2017-06-15 14:17:27 -07:00
2017-07-06 16:49:27 -07:00
2017-01-03 22:40:03 -08:00
2017-06-23 23:05:56 -07:00
2017-03-23 21:52:30 +01:00
2017-07-06 21:53:00 +00:00
2017-07-06 16:49:27 -07:00
2017-07-06 16:49:27 -07:00
2017-03-23 21:52:04 +01:00

The Recovery Image

Quick turn-around testing

mm -j && m ramdisk-nodeps && m recoveryimage-nodeps

# To boot into the new recovery image
# without flashing the recovery partition:
adb reboot bootloader
fastboot boot $ANDROID_PRODUCT_OUT/recovery.img

Running the tests

# After setting up environment and lunch.
mmma -j bootable/recovery

# Running the tests on device.
adb root
adb sync data

# 32-bit device
adb shell /data/nativetest/recovery_unit_test/recovery_unit_test
adb shell /data/nativetest/recovery_component_test/recovery_component_test

# Or 64-bit device
adb shell /data/nativetest64/recovery_unit_test/recovery_unit_test
adb shell /data/nativetest64/recovery_component_test/recovery_component_test

Running the manual tests

recovery-refresh and recovery-persist executables exist only on systems without /cache partition. And we need to follow special steps to run tests for them.

  • Execute the test on an A/B device first. The test should fail but it will log some contents to pmsg.

  • Reboot the device immediately and run the test again. The test should save the contents of pmsg buffer into /data/misc/recovery/inject.txt. Test will pass if this file has expected contents.

ResourceTest validates whether the png files are qualified as background text image under recovery.

1. `adb sync data` to make sure the test-dir has the images to test.
2. The test will automatically pickup and verify all `_text.png` files in
   the test dir.
Description
No description provided
Readme 102 MiB
Languages
C++ 50.2%
C 43.6%
Makefile 1.9%
Java 1.8%
Roff 1%
Other 1.4%