No description
Find a file
Tao Bao 6278bdf349 recovery: Add screensaver mode.
While it's waiting for user input, dim or turn off the backlight to
avoid OLED burn-in. The backlight brightness will be reduced after the
first timeout (default 120s), and then turned off after the second.
Pressing any key will take it back to the normal brightness. While the
display is off, the first key input will only turn on the backlight.

The most common case that triggers the screensaver is under text mode,
such as waiting for menu selection or viewing recovery logs.

This CL doesn't change the brightness while it's installing updates or
performing wipes under UI mode.

When it encounters any install error under UI mode (user builds):
 - If it's NOT USB connected, it will reboot automatically after the
   first timeout (same as before);
 - If it's USB connected, it will dim and turn off the display per the
   change in this CL.

Bug: 34077703
Test: Boot a device with the new recovery image. Wait for timeout.

Change-Id: I0c14907e60340a7f037adb6e464942d099ada08b
2017-01-30 16:12:30 -08:00
applypatch Merge "imgpatch: Compile with ZLIB_CONST defined." 2017-01-20 20:15:57 +00:00
bootloader_message Add update_bootloader_message() to fix two-step OTAs. 2016-12-15 12:36:26 -08:00
edify Cleanup ReadArgs & ReadValueArgs usage 2016-11-01 15:03:06 -07:00
etc Write aliases before ffs mount in recovery 2017-01-04 11:20:19 -08:00
fonts more font improvements and cleanup 2013-03-07 13:34:24 -08:00
minadbd Address review comment. 2017-01-09 14:28:42 -08:00
minui Merge "minui: Move callback functions to std::function." 2017-01-25 00:49:48 +00:00
otafault Do not inject I/O fault on a retry 2017-01-09 14:51:15 -08:00
otautil otautil: Clean up obsolete includes. 2016-11-08 13:39:12 -08:00
res-hdpi/images Update background text images in recovery 2017-01-07 00:32:40 +00:00
res-mdpi/images Update background text images in recovery 2017-01-07 00:32:40 +00:00
res-xhdpi/images Update background text images in recovery 2017-01-07 00:32:40 +00:00
res-xxhdpi/images Restore the max width for recovery background texts 2017-01-22 18:46:04 -08:00
res-xxxhdpi/images Restore the max width for recovery background texts 2017-01-22 18:46:04 -08:00
tests Remove '_static' suffix from libext2* references. 2017-01-23 15:18:29 -08:00
tools Restore the max width for recovery background texts 2017-01-22 18:46:04 -08:00
uncrypt Merge "Retry ioctl in uncrypt if it returns block# 0" 2017-01-07 01:11:13 +00:00
update_verifier Merge "update_verifier: Move property_get() to android::base::GetProperty()." 2017-01-24 23:37:22 +00:00
updater Merge "Remove '_static' suffix from libext2* references." 2017-01-25 23:48:43 +00:00
.clang-format clang-format: Adjust short functions / if settings. 2016-12-12 15:00:52 -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 minui: Export minui/minui.h. 2017-01-16 21:28:18 -08: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 resolve merge conflicts of 4f86f26 to stage-aosp-master 2016-11-15 23:13:24 -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 Print with newline for ui_print. 2017-01-21 20:43:45 -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 Add checkers and tests for empty locale in PNG file 2017-01-18 19:37:06 -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 recovery: Move property_get() to android::base::GetProperty(). 2017-01-13 12:08:34 -08:00
res-560dpi Make text for recovery larger on angler 2016-05-02 12:20:04 -07:00
roots.cpp Use flash erase & logical block size for userdata wipe 2017-01-24 18:04:02 -08: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 recovery: Fix the broken UI text. 2017-01-03 22:40:03 -08:00
screen_ui.h minui: Export minui/minui.h. 2017-01-16 21:28:18 -08:00
stub_ui.h recovery: Fix the broken UI text. 2017-01-03 22:40:03 -08:00
ui.cpp recovery: Add screensaver mode. 2017-01-30 16:12:30 -08:00
ui.h recovery: Add screensaver mode. 2017-01-30 16:12:30 -08: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 minui: Export minui/minui.h. 2017-01-16 21:28:18 -08:00
wear_ui.h recovery: Fix the broken UI text. 2017-01-03 22:40:03 -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.

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.