No description
Find a file
Tianjie Xu bc42603a8d Retry ioctl in uncrypt if it returns block# 0
In some conditions, ioctl(fd, FIBMAP, &block) returns block number 0.This
is a failure to locate the actual block number of the update package and
will result in an invalid block.map. This CL retries ioctl a few times
if it returns block number as 0.

Bug: 31632090
Test: On N9, uncrypt retries ioctl and produces the correct blockmap.
Change-Id: I913f98cf5c112915c2e803d0683db273c89053b6
2016-12-05 11:59:58 -08:00
applypatch Merge "bootable/recovery: cleanup compiler warnings (unused value)" 2016-12-01 17:03:13 +00:00
bootloader_message updater: Refactor set_stage() and get_stage() functions. 2016-11-18 12:04:48 -08:00
edify Cleanup ReadArgs & ReadValueArgs usage 2016-11-01 15:03:06 -07:00
etc init: move healthd to late-init 2016-10-10 17:29:11 -07:00
fonts more font improvements and cleanup 2013-03-07 13:34:24 -08:00
minadbd Use static_cast to cast pointers returned by malloc/calloc/realloc/mmap. 2016-11-15 23:24:54 -08:00
minui Remove unnecessary uses of reinterpret_cast. 2016-11-15 23:25:57 -08:00
otafault Remove ota_close(int) and ota_fclose(FILE*). 2016-11-28 12:09:39 -08:00
otautil otautil: Clean up obsolete includes. 2016-11-08 13:39:12 -08:00
res-hdpi/images Merge "Further compress the text images with zopflipng" 2016-08-03 17:59:11 +00:00
res-mdpi/images Merge "Further compress the text images with zopflipng" 2016-08-03 17:59:11 +00:00
res-xhdpi/images Merge "Further compress the text images with zopflipng" 2016-08-03 17:59:11 +00:00
res-xxhdpi/images Merge "Further compress the text images with zopflipng" 2016-08-03 17:59:11 +00:00
res-xxxhdpi/images Merge "Further compress the text images with zopflipng" 2016-08-03 17:59:11 +00:00
tests tests: Add testcases for EMMC targets. 2016-11-21 23:32:33 -08:00
tools Merge "Further compress the text images with zopflipng" 2016-08-03 17:59:11 +00:00
uncrypt Retry ioctl in uncrypt if it returns block# 0 2016-12-05 11:59:58 -08:00
update_verifier Switch update verifier to HIDL HAL 2016-11-21 13:48:42 -08:00
updater updater: Switch to libbase logging. 2016-11-30 23:44:41 -08:00
.clang-format Add .clang-format style file. 2016-11-07 10:02:33 -08:00
adb_install.cpp Switch to <android-base/properties.h>. 2016-09-26 09:51:37 -07:00
adb_install.h Factor out option variables from int to bool types 2015-03-25 15:56:15 -07:00
Android.mk Cleanup the duplicates of logs rotation functions 2016-11-03 18:16:33 -07:00
asn1_decoder.cpp Add missing includes. 2015-01-28 12:09:05 -08:00
asn1_decoder.h Add support for ECDSA signatures 2013-10-10 14:19:19 -07:00
bootloader.h Create bootloader_message static library. 2016-10-18 11:37:05 -07:00
CleanSpec.mk recovery: minui: add adf backend 2014-04-25 15:47:34 -07:00
common.h Revert "Revert "Some cleanups to recovery."" 2016-11-03 11:57:46 -07:00
default_device.cpp Auto-detect whether to use the long-press UI. 2015-04-10 15:14:35 -07:00
device.cpp Call update_engine_sideload from recovery. 2016-11-19 22:39:51 -08:00
device.h Merge \"Fix google-explicit-constructor warnings in bootable/recovery.\" 2016-06-29 23:11:45 +00:00
error_code.h updater: Fix the wrong return value for package_extract_file(). 2016-11-15 13:17:52 -08:00
fuse_sdcard_provider.cpp Check an edge case when read(2) returns 0 2016-08-31 19:11:41 -07:00
fuse_sdcard_provider.h recovery: Fork a process for fuse when sideloading from SD card. 2016-01-13 21:29:20 -08:00
fuse_sideload.cpp Use BoringSSL instead of mincrypt to speed up package verification. 2016-04-13 16:39:56 -07:00
fuse_sideload.h recovery: Switch fuse_* to C++. 2015-07-24 11:22:05 -07:00
install.cpp Fail gracefully when we fail to fork the update binary 2016-11-20 22:38:37 -08:00
install.h Revert "Revert "Some cleanups to recovery."" 2016-11-03 11:57:46 -07:00
interlace-frames.py Go back to the old ear-wiggling Android animation. 2016-04-21 14:26:14 -07:00
mounts.cpp Remove obsolete MTD support. 2016-06-10 13:45:35 -07:00
mounts.h Remove obsolete MTD support. 2016-06-10 13:45:35 -07:00
NOTICE Automated import from //branches/master/...@140824,140824 2009-03-24 18:36:42 -07:00
print_sha1.h Revert "Revert "Some cleanups to recovery."" 2016-11-03 11:57:46 -07:00
README.md Move recovery_test.cpp out of unit test 2016-11-08 10:42:51 -08:00
recovery-persist.cpp Cleanup the duplicates of logs rotation functions 2016-11-03 18:16:33 -07:00
recovery-persist.rc recovery: use __android_log_pmsg_file_write for log files 2016-03-31 13:52:54 -07:00
recovery-refresh.cpp Cleanup the duplicates of logs rotation functions 2016-11-03 18:16:33 -07:00
recovery-refresh.rc recovery: use __android_log_pmsg_file_write for log files 2016-03-31 13:52:54 -07:00
recovery.cpp Merge "Cleanup the duplicates of logs rotation functions" 2016-11-04 18:07:08 +00:00
res-560dpi Make text for recovery larger on angler 2016-05-02 12:20:04 -07:00
roots.cpp Update the header path for ext4_utils. 2016-10-09 14:02:10 -07:00
roots.h Revert "Revert "Some cleanups to recovery."" 2016-11-03 11:57:46 -07:00
rotate_logs.cpp Cleanup the duplicates of logs rotation functions 2016-11-03 18:16:33 -07:00
rotate_logs.h Cleanup the duplicates of logs rotation functions 2016-11-03 18:16:33 -07:00
screen_ui.cpp Support use of custom fonts in miniui 2016-11-15 14:24:06 -08:00
screen_ui.h Add ability to show "installing security update" 2016-04-29 12:19:43 -07:00
ui.cpp Switch to <android-base/properties.h>. 2016-09-26 09:51:37 -07:00
ui.h Add ability to show "installing security update" 2016-04-29 12:19:43 -07:00
verifier.cpp Revert "Revert "Some cleanups to recovery."" 2016-11-03 11:57:46 -07:00
verifier.h Use BoringSSL instead of mincrypt to speed up package verification. 2016-04-13 16:39:56 -07:00
wear_touch.cpp Switch recovery to libbase logging 2016-09-01 18:33:25 +00:00
wear_touch.h recovery: Move SwipeDetector into common location 2016-03-18 06:03:21 +00:00
wear_ui.cpp Support use of custom fonts in miniui 2016-11-15 14:24:06 -08:00
wear_ui.h recovery: Remove SetColor, and other refactoring for WearUI 2016-03-11 15:22:20 -08: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.