summaryrefslogtreecommitdiffstats
path: root/Android.mk (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-11-14ldconfig: add /sbin to search.pathsCaptain Throwback1-0/+13
- Move commands from prebuilt to root Android.mk - Hotfix for linker errors after https://git.io/JerWD merge on some Samsung device(s) Change-Id: If628ab486689878885b696c2f5a107987092aeba
2019-05-24Fix symlink creationEthan Yonker1-5/+0
Change-Id: I0d0bcdde2957974eb357a6f3d820bd5ab0fa47ee
2019-05-24Switch between dependencies and modulesEthan Yonker1-30/+45
Use LOCAL_REQUIRED_MODULES for Pie and up and LOCAL_ADDITIONAL_DEPENDENCIES for Oreo and down. Change-Id: I5365e782f98f3bbf4bf246be22c8f573824b65ee
2019-04-04Fix recovery-twrp in some old CM treesEthan Yonker1-0/+7
Change-Id: Ie401ab8ec39b721c3747475bcc8269f78963d31c
2019-03-23Remove duplicate ext4 flags from Android.mkMichael Bestas1-8/+0
* They are right above Change-Id: Ifff889e6ff748ed6bfa4a076b1afcc2c6a7eed3b
2019-03-23Set a dummy CM_PLATFORM_SDK_VERSION if it doesn't existMichael Bestas1-0/+4
* Avoids printing 2 build warnings on every single rebuild of anything when building TWRP inline Change-Id: I5dd3623707c03af0dfe7366f1a77e83762e720b2
2019-03-21Fix the long broken format functiondianlujitao1-0/+1
* For EXT2/3: * Align mke2fs options with Android 9.0 fs_mgr_format.cpp. * For EXT4: * Note that make_ext4fs is still in use on Android 8.1 to workaround a FDE encryption bug even though mke2fs has become the default choice. The bug is fixed in Android 9.0+. * For F2FS: * Drop the broken "-r" option, it's never ported to O, explicitly pass number of sectors instead. * Keep all options aligned with Pie fs_mgr. * Check existence before start wiping, as Wipe_EXT4 does. * For all: * Calculate block size at runtime, and reserve the space specified via negative "length" option from fstab. Note that positive length will be ignored. * If the partition has crypto footer, and "length" is not specified in fstab, automatically reverse CRYPT_FOOTER_OFFSET (16384). * Remove the default crypto key location: footer, this is a bad assumption since most partitions don't use encryption! We need to know the real situation to decide whether to reserve crypto footer on format. * If the current action is "wipe" or "change filesystem", wipe crypto footer or block device after mkfs if the partition is unencrypted or undecrypted (e.g., wrong password). * If the current action is "format data", unconditionally wipe crypto footer or block device. Change-Id: I7304a8ee703131ea4a08ab7c60334af28cac28b3
2019-03-20Update FDE decrypt to pie from CAFEthan Yonker1-2/+2
cryptfs.cpp based on CAF tag LA.UM.7.3.r1-05900-sdm845.0 Used CAF because AOSP no longer contains code for qcom's hardware crypto. Change-Id: I921cbe9bed70989f91449e23b5ac3ec1037b7b97
2019-03-20MTP FFS updates:bigbiff bigbiff1-2/+17
This update splits old MTP code and new MTP code from Google into two trees, legacy and ffs. Depending on the SDK level, the build system will select the correct version. The reason for separating the versions out are due to older android trees not supporting the updated MTP code from Google. Most MTP code is from Google, with additions needed from implementing the Java functions in C++ for TWRP and FFS. We assume if you are in android-9.0 or above, your kernel has support for FFS over MTP. Verify that your init.rc is mounting the MTP FFS driver to the proper location. Change-Id: I4b107b239bd9bc5699527f9c8c77d9079f264a7e
2019-03-20Adding Edl button in reboot menumauronofrio1-0/+3
Edl mode is available only on qualcomm devices and it used to fully restore the bricked devices. I made the button available only if TW_HAS_EDL_MODE := true like the download button. I set the edl button to the right of the download button, so devices can support edl button and download button. I also added the translation for all languages. Change-Id: I69d1058b8c050b722395c7b3da6dce1ccfbe7a91
2019-03-19TWRP: fix compiling on Android 7Andreas Blaesius1-1/+3
fixes cp: cannot create regular file (...)/recovery/root/file_contexts': No such file or directory Change-Id: I094a0bd242c6eb01e84570fbe49e853098e33a8b
2019-03-18Vibration: allow BoardConfig to disable vibration for a device.bigbiff bigbiff1-0/+3
Change-Id: Ibd2f67391ce6d7774498839829e0de9391508781
2019-03-18fix building TWRP for devices without cacheoshmoun1-1/+1
Some devices do not declare BOARD_CACHEIMAGE_PARTITION_SIZE. This case is detected and required modules are added to LOCAL_REQUIRED_MODULES. However, := is used instead of += and causes the loss of all previously added modules. The end result is that twrp is not actually getting built since its module was lost. Fix that by using += when adding modules required for cache-less devices. Change-Id: Ib0a4db4955040ced77be7ed04d636905beadf093
2019-02-21slot management: add library for slot management.bigbiff bigbiff1-1/+1
Change-Id: I7d0a67bc8e237866485680a5c54443435e7d2737
2019-01-17Add metadata decrypt support for FBEEthan Yonker1-0/+11
Change-Id: Ie0292f4ffea5993a4ae74fa04fc5c8252ca2cfcf
2019-01-04Fix building in Lineage 16.0Ethan Yonker1-1/+1
Change-Id: Ia7c66d469c69d9c4e9263feae7b48d40c09af155
2018-09-26Add option to use ro.serialno for generating device idlambdadroid1-0/+3
On some devices (e.g. ASUS Zenfone) the serial number of the device is stored in a file in the /factory partition. Consequently, the only way to load it is using a user space application during the init process, and to update the ro.serialno system property. In most places, TWRP already uses the system property to get the serial number of the device. However, when generating the device ID used for the backup folder name it checks the boot command line directly. On these devices, the serialno is not included on the command line. Add a TW_USE_SERIALNO_PROPERTY_FOR_DEVICE_ID option that enables usage of ro.serialno for generating the device id. It is disabled by default to avoid changing the device id on existing ports. Change-Id: I4a2eeca883f38fdaeb1209507fd8ebe44b1b04a0
2018-07-20Remove SuperSUEthan Yonker1-13/+0
Change-Id: I2ca7580bbde5a8903b9ba5c1513ddba887e8d49e
2018-06-05Cleanup TWRP flagsnailyk-fr1-6/+0
Change-Id: I402be0241ba998ad7530f5226f205581dc33e538
2018-05-25TWRP: Added TW_CLOCK_OFFSET flag to further adjust the clock.Phoenix5911-1/+3
For devices with the Qualcomm RTC fix whose clocks need further tuning such as the LG V20 whose ats files produces the correct time except 46 years in the future. Takes adjustment in seconds and adjusts after reading the the ats file. Boardconfig.mk TW_CLOCK_OFFSET := -1451606400 Change-Id: I0b2d35dd0026ed18a7bbebf683517f7c0eaa53ff
2018-04-09Use the non-LTO, non-PGO version of libhwbinderPirama Arumuga Nainar1-1/+1
Bug: http://b/77320844 Android.mk doesn't have support for PGO either. This causes linker error (about missing __llvm_profile symbols) in the PGO-instrumentation enabled builds in the release branch. Test: m ANDROID_PGO_INSTRUMENT=ALL Change-Id: Ib5dfdea88073bd95da2cd02e92c85bfffcca80d6
2018-04-03Use non-LTO variant of libhwbinderYi Kong1-1/+1
... as a workaround for build system does not currently infer non-LTO usage from Android.mk. Test: m Bug: 77320844 Change-Id: I6e9954b895051cc20408a30d0761e164e4c5bfd9
2018-03-13recovery: add libhidl-gen-utils depedencyYifan Hong1-0/+1
introduced as a depedency to libvintf. Test: builds Bug: 73556059 Change-Id: Ia51ba81ef462879481dcacb80d9ea9ea35e8b0bb Merged-In: Ia51ba81ef462879481dcacb80d9ea9ea35e8b0bb
2018-01-12Statically link with libhealthstoragedefaultHridya Valsaraju1-0/+1
This is to add empty implementations of Health HAL methods to report storage info. Bug: 68388678 Test: vts-tradefed run vts -m VtsHalHealthV2_0 Change-Id: I4f093903f485519e16f39384f5c96fcd031438ba
2017-12-05add sload.f2fs for recovery formatJaegeuk Kim1-1/+1
Change-Id: Iddfe54b2b36f2d531925cbe61c98dbfb4903c0d1 Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2017-11-27ADB Backup: add ability for TWRP GUI to restorebigbiff bigbiff1-1/+2
Restore adb backup files that TWRP made to your PC. Put files in your backup directory to see them. e.g. /sdcard/TWRP/BACKUPS/<sn> Change-Id: I2c57970d77b64c39a302159041456e761c185259
2017-11-19Improve automatic detection of QCOM RTC fixMichael Bestas1-1/+3
* Enable it on all platforms after msm8960 Change-Id: I2584048a9b9fa77c6c7d3408d280811143b01e8d
2017-11-14is_battery_ok use health 2.0 HALYifan Hong1-2/+13
Test: call is_battery_ok in graphics test, and test manually Bug: 69268160 Bug: 63702641 Change-Id: Ifcf4d2e2cb459689c11fc5d1b880bb053aaae8ae
2017-11-09uncrypt: Move to Soong.Tao Bao1-1/+0
Test: mmma -j bootable/recovery Change-Id: I405f2a70f51904c02c49a287c23cbc115a4c5132
2017-11-03recovery: fix library dependencyJin Qian1-2/+2
After removing some deadcode from libext4_utils, libz is optimized out by linker. However, it's still required by libvintf. Moving libz down the list fixed the build. Bug: 64395169 Change-Id: I23ecd70c83af83a219faced59d8227dc3c4e43d5
2017-10-12Drop -Wno-unused-parameter.Tao Bao1-4/+2
The only one left is libedify. Will handle that in a separate CL. Test: mmma bootable/recovery Change-Id: I732a5f85229da90fd767bee2e46c5c95f529c396
2017-10-12applypatch: Move to Soong.Tao Bao1-1/+0
Test: mmma bootable/recovery Change-Id: Ie163aff1c4c2b3b15bb705825779ada6bc38ad67
2017-10-11Move rangeset.h and print_sha1.h into otautil.Tao Bao1-0/+1
Also drop the "bootable/recovery" path in LOCAL_C_INCLUDES from applypatch modules. Test: lunch aosp_{angler,bullhead,fugu,dragon,sailfish}-userdebug; mmma bootable/recovery Change-Id: Idd602a796894f971ee4f8fa3eafe36c42d9de986
2017-10-09edify: Export the header and move to Soong.Tao Bao1-1/+0
Also make matching changes to applypatch modules which include edify/expr.h. Test: mmma bootable/recovery Change-Id: Ia72be3caa010d7f56a70add2da345e631b306378
2017-10-03otautil: Export headers.Tao Bao1-0/+1
Test: mmma bootable/recovery Change-Id: Ic01b68e2a394d578fc9fc09da2dabe9061b98122
2017-09-29otafault: Move to soong.Tao Bao1-1/+0
Test: mmma bootable/recovery Change-Id: I5f2520ea457ba66743aa3aa1d5b3b488a93084a3
2017-09-15Fix a few build errorsEthan Yonker1-3/+7
Change-Id: I1311e4f9bb2409e856df3d333cc0d6c3f8f097f8
2017-08-29Turn on -Wall for recovery modulesTianjie Xu1-4/+6
Turn on -Wall for all modules. Also remove the obsolete file_cmp() in apply_patch test and now() in wear_ui. The only exception is lib_edify due to the unused functions in the intermediate cpp files generated from the lex files. It will be handled in a seperate CL. Bug: 64939312 Test: mma, unit tests pass Change-Id: Ic53f76b60b6401ab20db3d98130d674c08e3702f
2017-08-13wear_ui: Expose menu_unusable_rows via Makefile var.Tao Bao1-0/+6
This variable is useful on small screens (e.g. on watches) to handle long menus. We should have better way to handle this value smartly. Prior to that, expose the value to be overridable by using the generic wearable UI module (librecovery_ui_wear). Bug: 64307776 Test: Define the variable, build and boot into recovery image and check the UI menu. Change-Id: I5d7a6baa8bb4cc852bfcc2a7b3cc9686c1c8817e (cherry picked from commit eea3af3f911d36ac1a82a9fb95d24912cc07e3b1)
2017-08-13Allow customizing WearRecoveryUI via Makefile variables.Tao Bao1-1/+22
With the following Makefile variables, we can reduce the work of writing (copy/pasting) device-specific WearRecoveryUI classes. The list of Makefile variables (the ones useful for Wear devices): - TARGET_RECOVERY_UI_MARGIN_HEIGHT (default: 0) - TARGET_RECOVERY_UI_MARGIN_WIDTH (default: 0) Specify the margin space that we don't want to display texts. They replace the former outer_width and outer_height. - TARGET_RECOVERY_UI_TOUCH_LOW_THRESHOLD (default: 50) - TARGET_RECOVERY_UI_TOUCH_HIGH_THRESHOLD (default: 90) Specify the sensitivity of recognizing a swipe. Devices give absolute positions, so for some devices we need to adjust the thresholds. - TARGET_RECOVERY_UI_PROGRESS_BAR_BASELINE Specify the progress bar vertical position, which should be adjusted to the actual height of a device. It replaces the former progress_bar_y. - TARGET_RECOVERY_UI_ANIMATION_FPS (default: 30) Specify the animation FPS if using device-specific animation images. It replaces the former animation_fps. Devices can specify "TARGET_RECOVERY_UI_LIB := librecovery_ui_wear", with optionally defined Makefile vars above, in BoardConfig.mk to customize their WearRecoveryUI. Also remove the obsolete wear_touch.{cpp,h}, which has been merged into ui.cpp in commit 5f8dd9951d986b65d98d6a9ea38003427e9e46df. Bug: 64307776 Test: Change the device BoardConfig.mk and test recovery image. Change-Id: Id0fb2d4e3977ab5ddd31e71f9535470cab70e41b (cherry picked from commit 0470ceea381775b09eee931858c3320be88cc637)
2017-08-11wear_ui: Expose menu_unusable_rows via Makefile var.Tao Bao1-0/+6
This variable is useful on small screens (e.g. on watches) to handle long menus. We should have better way to handle this value smartly. Prior to that, expose the value to be overridable by using the generic wearable UI module (librecovery_ui_wear). Bug: 64307776 Test: Define the variable, build and boot into recovery image and check the UI menu. Change-Id: I5d7a6baa8bb4cc852bfcc2a7b3cc9686c1c8817e
2017-08-10Allow customizing WearRecoveryUI via Makefile variables.Tao Bao1-1/+22
With the following Makefile variables, we can reduce the work of writing (copy/pasting) device-specific WearRecoveryUI classes. The list of Makefile variables (the ones useful for Wear devices): - TARGET_RECOVERY_UI_MARGIN_HEIGHT (default: 0) - TARGET_RECOVERY_UI_MARGIN_WIDTH (default: 0) Specify the margin space that we don't want to display texts. They replace the former outer_width and outer_height. - TARGET_RECOVERY_UI_TOUCH_LOW_THRESHOLD (default: 50) - TARGET_RECOVERY_UI_TOUCH_HIGH_THRESHOLD (default: 90) Specify the sensitivity of recognizing a swipe. Devices give absolute positions, so for some devices we need to adjust the thresholds. - TARGET_RECOVERY_UI_PROGRESS_BAR_BASELINE Specify the progress bar vertical position, which should be adjusted to the actual height of a device. It replaces the former progress_bar_y. - TARGET_RECOVERY_UI_ANIMATION_FPS (default: 30) Specify the animation FPS if using device-specific animation images. It replaces the former animation_fps. Devices can specify "TARGET_RECOVERY_UI_LIB := librecovery_ui_wear", with optionally defined Makefile vars above, in BoardConfig.mk to customize their WearRecoveryUI. Also remove the obsolete wear_touch.{cpp,h}, which has been merged into ui.cpp in commit 5f8dd9951d986b65d98d6a9ea38003427e9e46df. Bug: 64307776 Test: Change the device BoardConfig.mk and test recovery image. Change-Id: Id0fb2d4e3977ab5ddd31e71f9535470cab70e41b
2017-08-03ui: Move the support for touch inputs into RecoveryUI.Tao Bao1-0/+12
- Added detection for EV_ABS events in minui/events.cpp, if it's allowed; - Added listening and processing touch inputs in ui.cpp; - Fixed an issue in recognizing swipe with multi-touch protocol A; - Changed the logic in RecoveryUI::ProcessKey() to be swipe-aware. It now allows turning on text mode with <power> + <swipe-up>. The last change also fixed an issue on devices with protocol A: prior to this CL, user may accidentally toggle the text mode during an OTA. Because it was considered as a single-button device, a long tap that sent BTN_TOUCH event would turn on text mode. Test: Allow detecting touch inputs. Swiping (up, down, enter) works on angler, angelfish, dorado respectively. Bug: 36169090 Bug: 64307776 Change-Id: I4bc882b99114ce4ab414f8bdb8f4f7a525b8a8fd (cherry picked from commit 5f8dd9951d986b65d98d6a9ea38003427e9e46df)
2017-08-02ui: Move the support for touch inputs into RecoveryUI.Tao Bao1-0/+12
- Added detection for EV_ABS events in minui/events.cpp, if it's allowed; - Added listening and processing touch inputs in ui.cpp; - Fixed an issue in recognizing swipe with multi-touch protocol A; - Changed the logic in RecoveryUI::ProcessKey() to be swipe-aware. It now allows turning on text mode with <power> + <swipe-up>. The last change also fixed an issue on devices with protocol A: prior to this CL, user may accidentally toggle the text mode during an OTA. Because it was considered as a single-button device, a long tap that sent BTN_TOUCH event would turn on text mode. Test: Allow detecting touch inputs. Swiping (up, down, enter) works on angler, angelfish, dorado respectively. Bug: 36169090 Change-Id: I4bc882b99114ce4ab414f8bdb8f4f7a525b8a8fd
2017-07-20recovery: replace make_ext4 with e2fsprogsJin Qian1-3/+5
Execute mke2fs to create empty ext4 filesystem. Execute e2fsdroid to add files to filesystem. Test: enter recovery mode and wipe data Bug: 35219933 Change-Id: I10a9f4c1f4754ad864b2df45b1f879180ab33876 (cherry picked from commit ac31808cd37cfb98755e5821dbb2efb5fe5cb12a)
2017-07-18Add libasyncio.Jerry Zhang1-0/+1
libadbd_usb depends on libasyncio. Bug: 37916658 Test: Use adb in recovery on bullhead/marlin Change-Id: I77ac3bb2a580d29551e7b5c471bc3cfbf1a3219d
2017-07-07Restructure vr_uiLuke Song1-0/+6
Get rid of pixel offset variables, and use makefile variables in BoardConfigs. Cherry picked from commit 81a8e4cab2a20fd1b1a4716563d4d2586bd1e1de Bug: 37779982 Test: Verified vr ui has same behavior. Change-Id: Ifbf44e27d7101aedbe3c0e6db4b8181d56efadfd
2017-07-06Introduce VR recovery uiLuke Song1-0/+12
A version of screen ui with specific adjustments for vr device compatibility. Cherry picked from commit a44dba7f4e7296077f65fd571232e8a61aed9418 Bug: 37779982 Test: "adb reboot recovery" to view Change-Id: If6b0f26c1b587f8d0176060685b5efb6c67593b1
2017-06-28Add missing libziparchive dependency.Elliott Hughes1-1/+2
Bug: http://b/37560614 Test: builds even after removing system/core/include/ziparchive Change-Id: Ib7ed45cafe83d24ed55aac28b4f41a073c371bc2
2017-06-27recovery: replace make_ext4 with e2fsprogsJin Qian1-3/+5
Execute mke2fs to create empty ext4 filesystem. Execute e2fsdroid to add files to filesystem. Test: enter recovery mode and wipe data Bug: 35219933 Change-Id: I10a9f4c1f4754ad864b2df45b1f879180ab33876 Merged-In: I10a9f4c1f4754ad864b2df45b1f879180ab33876
2017-06-24Restructure vr_uiLuke Song1-0/+6
Get rid of pixel offset variables, and use makefile variables in BoardConfigs. Bug: 37779982 Test: Verified vr ui has same behavior. Change-Id: Ifbf44e27d7101aedbe3c0e6db4b8181d56efadfd (cherry picked from commit 81a8e4cab2a20fd1b1a4716563d4d2586bd1e1de)
2017-06-23Restructure vr_uiLuke Song1-0/+6
Get rid of pixel offset variables, and use makefile variables in BoardConfigs. Bug: 37779982 Test: Verified vr ui has same behavior. Change-Id: Ifbf44e27d7101aedbe3c0e6db4b8181d56efadfd
2017-06-23Use Makefile variables to specify margin settings.Tao Bao1-0/+12
Instead of defining device-specific UI class, this CL allows using Makefile variables to specify margin values directly. Values explicitly defined via TARGET_RECOVERY_UI_MARGIN_HEIGHT and TARGET_RECOVERY_UI_MARGIN_WIDTH will be used. Otherwise they will default to zero. Bug: 62732748 Test: Specify the height and width and check recovery texts. Change-Id: Icb6f7466c8d407f877b93da38aebfdf7e6b41be7 (cherry picked from commit a92d8fb45676566a56d7c27d2e8fb644523adc94)
2017-06-23Use Makefile variables to specify margin settings.Tao Bao1-0/+12
Instead of defining device-specific UI class, this CL allows using Makefile variables to specify margin values directly. Values explicitly defined via TARGET_RECOVERY_UI_MARGIN_HEIGHT and TARGET_RECOVERY_UI_MARGIN_WIDTH will be used. Otherwise they will default to zero. Bug: 62732748 Test: Specify the height and width and check recovery texts. Change-Id: Icb6f7466c8d407f877b93da38aebfdf7e6b41be7 (cherry picked from commit a92d8fb45676566a56d7c27d2e8fb644523adc94)
2017-06-22Use Makefile variables to specify margin settings.Tao Bao1-0/+12
Instead of defining device-specific UI class, this CL allows using Makefile variables to specify margin values directly. Values explicitly defined via TARGET_RECOVERY_UI_MARGIN_HEIGHT and TARGET_RECOVERY_UI_MARGIN_WIDTH will be used. Otherwise they will default to zero. Bug: 62732748 Test: Specify the height and width and check recovery texts. Change-Id: Icb6f7466c8d407f877b93da38aebfdf7e6b41be7
2017-06-19recovery: replace make_ext4 with e2fsprogsJin Qian1-3/+5
Execute mke2fs to create empty ext4 filesystem. Execute e2fsdroid to add files to filesystem. Test: enter recovery mode and wipe data Bug: 35219933 Change-Id: I10a9f4c1f4754ad864b2df45b1f879180ab33876
2017-06-17twrpDigest refactorbigbiff bigbiff1-10/+9
This patch is to refactor twrpDigest using polymorphism and inheritance to use the same call patterns for creating and reading a digest. Now a library. Use SHA2 from libcrypto. SHA2 is default if device has libcrypto. Change string MD5 everywhere to use digest or Digest instead. Updated string tags to digest. Translation will be required. Switch out digest code into a driver class from partitionmanager. SHA2 is better for digest creation due to decreased collision space compared to MD5 and SHA1. See https://en.wikipedia.org/wiki/SHA-2 Change-Id: I74b5546789990b12aa4ce2e389d25f80a3fe213f
2017-06-17Introduce VR recovery uiLuke Song1-0/+12
A version of screen ui with specific adjustments for vr device compatibility. (cherrypick of a44dba7f4e7296077f65fd571232e8a61aed9418 to AOSP) Bug: 37779982 Test: "adb reboot recovery" to view Change-Id: If6b0f26c1b587f8d0176060685b5efb6c67593b1
2017-06-15Introduce VR recovery uiLuke Song1-0/+12
A version of screen ui with specific adjustments for vr device compatibility. Bug: 37779982 Test: "adb reboot recovery" to view Change-Id: If6b0f26c1b587f8d0176060685b5efb6c67593b1
2017-05-17libbootloader_message: convert to Android.bpTom Cherry1-1/+0
Test: build Change-Id: Ia0c2e141673e37eea29306817d2f4b2c944213b0
2017-05-10otautil: Android.mk -> Android.bpSteven Moreland1-1/+0
Test: flash and boot recovery on internal angler Change-Id: Id8845b4b422d0078b251333eb6d30ce14771ef10
2017-05-08recovery: Use libverifier instead of rebuilding the sources.Tao Bao1-3/+1
Test: mmma bootable/recovery Change-Id: Ie8cec009b00c121948179518ba9cbc26a82352bf
2017-05-03fuse_sideload: Change the minimal block size to 4096.Tao Bao1-1/+3
run_fuse_sideload() is passing the block size as the max_read option, so it will only handle a request that involves at most two blocks at a time. However, the minimal allowed value was set to 1024 prior to this CL, which is inconsistent with the kernel code (fs/fuse/inode.c) that sets it to the greater of 4096 and the passed-in max_read option. This would fail the calls with a block size / max_read less than 4096 due to the wrongly computed block indices. Note that we didn't observe real issue in practice, because we have been using 64 KiB block sizes for both of adb and sdcard sideload calls. The issue only shows up in my local CL (to come later) that uses 1024 block size in run_fuse_sideload() tests. Test: recovery_component_test Test: adb sideload with the new recovery image on angler Change-Id: Id9f0cfea13d0d193dcb7cd41a1553a23739545f2
2017-04-27libfusesideload: Clean up the CFLAGS for the module.Tao Bao1-3/+2
Remove "-DADB_HOST=0" since it doesn't include adb related stuff. Test: mmma bootable/recovery Test: sideload on marlin Change-Id: Ia83a8edd31eedd803435d687513d561c873ffabe
2017-04-24recovery: Remove the include of adb.h.Tao Bao1-2/+0
recovery.cpp doesn't have a direct dependency on adb.h (only minadbd does). 'adb.h' was once needed for DEFAULT_ADB_PORT, until being killed by commit acb2a2fa4c415944a27539461ba3757f3edbb128. Test: mmma bootable/recovery Change-Id: I84f87988d01c3f0c3d1383cc3cffde2e7d5e7aea
2017-04-24librecovery: Remove -Wno-unused-parameter and add -Wall.Tao Bao1-1/+1
Test: mmma bootable/recovery Change-Id: I5598d32bebb9dbda4a183a1502e0b7dc4918392e
2017-04-20Call libvintf to verify package compatibility.Tao Bao1-0/+4
The libvintf API has landed. Hook up to do the actual verification. Bug: 36597505 Test: recovery_component_test Test: m recoveryimage; adb sideload on angler and sailfish, with packages that contain dummy compatibility entries. Test: m recoveryimage; adb sideload on angler and sailfish, with packages that don't contain any compatibility entries. Change-Id: Idbd6f5aaef605ca51b20e667505d686de5ac781f (cherry picked from commit da320ac6ab53395ddff3cc08b88a61f977ed939a)
2017-04-19Call libvintf to verify package compatibility.Tao Bao1-0/+4
The libvintf API has landed. Hook up to do the actual verification. Bug: 36597505 Test: recovery_component_test Test: m recoveryimage; adb sideload on angler and sailfish, with packages that contain dummy compatibility entries. Test: m recoveryimage; adb sideload on angler and sailfish, with packages that don't contain any compatibility entries. Change-Id: Idbd6f5aaef605ca51b20e667505d686de5ac781f
2017-04-18Add the missing LOCAL_CFLAGS for librecovery.Tao Bao1-0/+5
The -DAB_OTA_UDPATER part was missing when separating the librecovery module (commit 62e0bc7586077b3bde82759fb34b51b982cea20f). Bug: 37300957 Test: Build sailfish recovery image and sideload full OTA. Change-Id: Idd25662f6bc812c1aca95b096802f59b051f8d63 (cherry picked from commit 25dbe1717e3096ee59bfa4385cbcf80a972016a6)
2017-04-13Add the missing LOCAL_CFLAGS for librecovery.Tao Bao1-0/+5
The -DAB_OTA_UDPATER part was missing when separating the librecovery module (commit 62e0bc7586077b3bde82759fb34b51b982cea20f). Bug: 37300957 Test: Build sailfish recovery image and sideload full OTA. Change-Id: Idd25662f6bc812c1aca95b096802f59b051f8d63 (cherry picked from commit 25dbe1717e3096ee59bfa4385cbcf80a972016a6)
2017-04-13Add the missing LOCAL_CFLAGS for librecovery.Tao Bao1-0/+5
The -DAB_OTA_UDPATER part was missing when separating the librecovery module (commit 62e0bc7586077b3bde82759fb34b51b982cea20f). Bug: 37300957 Test: Build sailfish recovery image and sideload full OTA. Change-Id: Idd25662f6bc812c1aca95b096802f59b051f8d63
2017-04-13Verify the package compatibility with libvintf.Tao Bao1-3/+21
verify_package_compatibility() is added to parse the compatibility entry (compatibility.zip) in a given OTA package. If entry is present, the information is sent to libvintf to check the compatibility. This CL doesn't actually call libvintf, since the API there is not available yet. Bug: 36597505 Test: Doesn't break the install with existing packages (i.e. w/o the compatibility entry). Test: recovery_component_test Change-Id: I3903ffa5f6ba33a5c0d761602ade6290c6752596 (cherry picked from commit 62e0bc7586077b3bde82759fb34b51b982cea20f)
2017-04-12Verify the package compatibility with libvintf.Tao Bao1-3/+21
verify_package_compatibility() is added to parse the compatibility entry (compatibility.zip) in a given OTA package. If entry is present, the information is sent to libvintf to check the compatibility. This CL doesn't actually call libvintf, since the API there is not available yet. Bug: 36597505 Test: Doesn't break the install with existing packages (i.e. w/o the compatibility entry). Test: recovery_component_test Change-Id: I3903ffa5f6ba33a5c0d761602ade6290c6752596
2017-04-03Boot control HAL based on the A/B headers.Alex Deymo1-0/+1
The added bootctrl.bcb module implement the legacy interface for the bootctrl HAL based on the Boot Control Block (BCB) and the headers already specified in the booloader_message library. This serves as a reference implementation of the boot_control HAL. Bug: 32707546 Test: Tested internally that a device can use this HAL to flip slots and recovery from a /misc wipe. Change-Id: Ic02e5aaf4de7d0a1780eac4e8705dae20d0b3e10
2017-03-29Log the error message when failing to mount/umount.Tao Bao1-2/+4
Test: Observe the error messaage for a umount failure case. Bug: 36686818 Change-Id: I28e335c2df4454dd0192f95e3909599fcc9dc1c0
2017-03-18Remove the dead #include's in verifier.cpp.Tao Bao1-4/+1
A follow-up to commit 5e535014dd7961fbf812abeaa27f3339775031f1. Also clean up Android.mk, since libverifier no longer needs anything from libminui. Test: mmma bootable/recovery Test: recovery_component_test passes. Change-Id: I1c11e4bbeef67ca34a2054debf1f5b280d509217
2017-03-07Revert "Fix adb shell in 7.0 tree"Captain Throwback1-3/+0
This reverts commit 0a8a7cebf154f7062174c4fac4a9c836038fbfbc. Change-Id: Icdb1f2e93aeaf35a66b6f67eaff51d9af5fd2e9a
2017-03-07file_contexts: remove symlink to binary file and use text version insteadCaptain Throwback1-4/+4
Some older update binaries can't read the binary file_contexts, so include the text version of the file to prevent errors. This removes the symlink to the binary version of the file and uses the concatenated file_contexts from the OUT build folder. Change-Id: Ia57c9b47c95945721d3dfa1ec8e18c4bb199adff
2017-03-06crypto: Use system's vold for decryptionnkk711-0/+11
If TWRP crypto fails to decrypt partition, mount the system partition and use system's own vold to attempt decryption. This provides a fallback for proprietary OEM encryption as well as encryption methods which TWRP hasn't been updated for. Requirements in device tree: * fstab.{ro.hardware} in device/recovery/root The fstab does not need to be complete, but it does need the data partition and the encryption entries. * 'TW_CRYPTO_USE_SYSTEM_VOLD := true' in BoardConfig or * 'TW_CRYPTO_USE_SYSTEM_VOLD := <list of services>' Notes: * Setting the flag to 'true' will just use system's vdc+vold or * Setting the flag with additional services, will also start them prior to attempting vdc+vold decryption, eg: for qualcomm based devices you usually need 'TW_CRYPTO_USE_SYSTEM_VOLD := qseecomd' * For each service listed an additional import will be automatically added to the vold_decrypt.rc file in the form of init.recovery.vold_decrypt.{service}.rc You will need to add any not already existing .rc files in your device/recovery/root folder. * The service names specified in the vold_decrypt.{service}.rc files have to be named 'sys_{service}' eg: 'service sys_qseecomd /system/bin/qseecomd' * Any service already existing in TWRP as {service} or sbin{service} will be stopped and restarted as needed. * You can override the default init.recovery.vold_decrypt.rc file(s) by placing same named ones in your device/recovery/root folder. If you do, you'll need to manually add the needed imports. * If /vendor and /firmware folders are temporarily moved and symlinked to the folders and files in the system partition, the properties 'vold_decrypt.symlinked_vendor' and 'vold_decrypt.symlinked_firmware' will be set to 1. This allows for additional control in the .rc files for any extra actions (symlinks, cp files, etc) that may be needed for decryption by using: on property:vold_decrypt.symlinked_vendor=1 and/or on property:vold_decrypt.symlinked_firmware=1 triggers. Debug mode: 'TW_CRYPTO_SYSTEM_VOLD_DEBUG := true' in BoardConfig * Specifying this flag, will enable strace on init and vdc, which will create separate log files in /tmp for every process created, allowing for detailed analysis of which services and files are being accessed. * Note that enabling strace will expose the password in the logs!! * You need to manually add strace to your build. Thanks to @Captain_Throwback for co-authoring and testing. Tested successfully on HTC devices: M8 (KK through MM), M9 (MM and N), A9 (N), 10 (N), Bolt (N), Desire 626s (MM), U Ultra (N) HTC One X9 (MTK device) And by Nikolay Jeliazkov on: Xiaomi Mi Max Change-Id: I4d22ab55baf6a2a50adde2e4c1c510c142714227
2017-02-17Add a listxattr tool for listing xattrsEthan Yonker1-1/+2
Change-Id: Ib80bab2b605ce77cd8fdc717d8bcfa8085516679
2017-02-16Symlink file_contexts --> file_contexts.binMatt Mower1-0/+15
The presence of /file_contexts is still important to TWRP: - files written while in adb shell only pick up contexts if /file_contexts is present - fixContexts looks for /file_contexts - if !USE_EXT4 (is this possible), then make_ext4fs looks for /file_contexts when wiping In the event than file_contexts.bin also becomes more important in the future, leave it in place and create a symlink to it. Change-Id: Ic87852248d42d5ea6bf936df160efa41294b6520
2017-02-02Allow custom bootloader msg offset in block miscMatt Mower1-4/+0
Globally define BOARD_RECOVERY_BLDRMSG_OFFSET with a decimal integer to offset the read/write location in misc where the bootloader message should appear. Example: BOARD_GLOBAL_CFLAGS := -DBOARD_RECOVERY_BLDRMSG_OFFSET=2048 Edify commands get_stage and set_stage need to be aware of the custom bootloader msg offset because they write the stage directly to the BCB. Change-Id: Ifdb5ffe3e893a651be59ae63e3a0ebadd828c9f2
2017-01-18Move sh selection out of GUI makefileMatt Mower1-0/+6
* The TWRP_SH_TARGET variable is only used if TW_USE_TOOLBOX == false, so it doesn't really need to be defined. * Move the busybox sh symlink creation nearer to the toolbox/busybox build rules and take advantage of LOCAL_POST_INSTALL_CMD which has been around since Android 4.3. Change-Id: I7850f9c3e113d43ad519dd5c9a7d25e36ec1c426
2017-01-18Move pigz symlinks out of GUI makefileMatt Mower1-1/+0
* Unify the building of pigz and its symlinks under the same module. LOCAL_POST_INSTALL_CMD has been around since Android 4.3, use it. Change-Id: I6a1f74216b6f5a5283fc17839b9b6f19571f3be5
2017-01-18SELinux can be assumed for Android 4.4+Matt Mower1-23/+12
Change-Id: I7410a0c8e439eec90a955ee9201efd9a92bb9635
2017-01-18TWRP device version stringbigbiff bigbiff1-1/+7
For building through jenkins. Export a variable to the shell so that we don't monkey patch variables.h and keep the git tag clean in the version string. Jenkins will export the variable TW_DEVICE_VERSION=n where n > 0. The makefile will use this variable to show the device string in twrp startup. For mass production builds, omit the environment variable to default to 0. Change-Id: I0d6eb764255d7069c0fb4a378522a009cfe4054f
2017-01-17minui: Export minui/minui.h.Tao Bao1-1/+5
For libminui static and shared libraries. Test: build Change-Id: Ib30dc5e2ef4a3c8b3ca3a0cec68cb65e229a0c16
2017-01-12build: AOSP/CM14 fixes (API 24/25, mainly BusyBox-less environment)Hashcode1-1/+1
These changes are needed by any ROM where devices are configured to use TOOLBOX/TOYBOX instead of BUSYBOX (i.e., TW_USE_TOOLBOX := true). Change-Id: I68b88cc9fb857f32864556c4b6c9c8e6ee744051
2017-01-11Remove "_static" suffix from libsparseAlex Deymo1-1/+1
Bug: 34220783 Change-Id: I358f931f0b29f5bd526e1475180e477e2e90b936
2017-01-11Remove "_static" suffix from libext4_utils.Alex Deymo1-1/+1
Bug: 34220783 Change-Id: I34ccc3b11da0d1b48805967ad75b9ddade569930
2017-01-11build: Consolidate the crypto_utils presence testsD. Andrei Măceș1-0/+2
No point checking filesystem repeatedly/check may change in future Change-Id: I0413b07b850f785eb5150c6ed18836cc56e94d6f
2016-12-13Support File Based EncryptionEthan Yonker1-0/+8
Change-Id: Ib688ddd0c32d3999590cacd86b6d9b18eac336e9
2016-12-13Add boot slot supportEthan Yonker1-1/+3
Change-Id: I7eaf80e327985f53791f90fbdebad022a9650d31
2016-12-05Support new AB OTA zipsEthan Yonker1-5/+9
Change-Id: I1ff883375a0a769bf27a834c9bf04c6cdbb42117
2016-11-30Improve backup & wipe exclusion handlingEthan Yonker1-1/+1
Rename twrpDU.* to exclude.* Remove global variable for du and replace with partition specific variables. Use separate exclusion lists for backups and wiping. Clean up some includes Fix some parenthesis in twrp.cpp that I messed up. Note: twrpTarMain command line utility compiles but probably does not work correctly yet due to not properly setting part_settings Change-Id: Idec9c3e6a8782ba53f3420fa79ba33394f4f85fb
2016-11-30Fix adb shell in 7.0 treeEthan Yonker1-0/+3
busybox sh does not seem to work properly in 7.0 trees so use mksh for sh instead. Change-Id: Ia33bc3894f929b1348c8714d4ddd00a2671c7e94
2016-11-04Cleanup the duplicates of logs rotation functionsTianjie Xu1-3/+8
Bug: 32067516 Test: Logs rotated successfully on angler, recovery-refresh/persist tests passed on an a/b device. Change-Id: Ie80adf0fa958ad3d7869d2d17f49489666b86c29
2016-10-18Create bootloader_message static library.Yabin Cui1-6/+8
bootloader_messages merges bootloader_message_writer and bootloader.cpp, so we can use the same library to manage bootloader_message in normal boot and recovery mode. Bug: 29582118 Change-Id: I9efdf776ef8f02b53911ff43a518e035e0c29618 (cherry picked from commit 2f272c0551f984e83bc5abaf240e0dddb38a3326)
2016-10-18Replace minzip with libziparchiveTianjie Xu1-2/+3
Clean up the duplicated codes that handle the zip files in bootable/recovery; and rename the library of the remaining utility functions to libotautil. Test: Update package installed successfully on angler. Bug: 19472796 Change-Id: Iea8962fcf3004473cb0322b6bb3a9ea3ca7f679e
2016-10-09Update the header path for ext4_utils.Tao Bao1-4/+0
Test: `mmma bootable/recovery` Change-Id: I70ccddb3ddf46bb012fdc5f632afc46ebdd5473e
2016-10-09Disable the meaningless parts of the UI for A/B.Elliott Hughes1-0/+4
Bug: http://b/28748484 Test: mmma bootable/recovery Change-Id: Ie86a265f4699503471e7c717d65677a916dbd25b (cherry picked from commit 01fcbe160bd49891c0680b80c5688cd4feb2adbc)
2016-10-07Update the header path for ext4_utils.Tao Bao1-4/+0
Test: `mmma bootable/recovery` Change-Id: I70ccddb3ddf46bb012fdc5f632afc46ebdd5473e (cherry picked from commit 3cbe1d20978dc488272e2b1ba10890a006fdfab9)
2016-09-30Turn on -Werror for recoveryTianjie Xu1-1/+2
Also remove the 0xff comparison when validating the bootloader message fields. As the fields won't be erased to 0xff after we remove the MTD support. Bug: 28202046 Test: The recovery folder compiles for aosp_x86-eng Change-Id: Ibb30ea1b2b28676fb08c7e92a1e5f7b6ef3247ab (cherry picked from commit 7aa88748f6ec4e53333d1a15747bc44826ccc410)
2016-09-30Turn on -Werror for recoveryTianjie Xu1-1/+2
Also remove the 0xff comparison when validating the bootloader message fields. As the fields won't be erased to 0xff after we remove the MTD support. Bug: 28202046 Test: The recovery folder compiles for aosp_x86-eng Change-Id: Ibb30ea1b2b28676fb08c7e92a1e5f7b6ef3247ab
2016-09-15Fix libcrypto dependency in 6.0 treesEthan Yonker1-1/+1
Change-Id: Ie230ed5f3db38a62305e03e4f9819e4aca816e16
2016-09-01Switch recovery to libbase loggingTianjie Xu1-1/+1
Clean up the recovery image and switch to libbase logging. Bug: 28191554 Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35 (cherry picked from commit 747781433fb01f745529c7e9dd97c5599070ad0d)
2016-09-01Switch recovery to libbase loggingTianjie Xu1-1/+1
Clean up the recovery image and switch to libbase logging. Bug: 28191554 Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35 Merged-In: Icd999c3cc832f0639f204b5c36cea8afe303ad35
2016-09-01Switch recovery to libbase loggingTianjie Xu1-1/+1
Clean up the recovery image and switch to libbase logging. Bug: 28191554 Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35
2016-08-31twrp: Use the correct lib nameHumberto Borba1-2/+2
Now ART uses LZ4 and the lib name should be liblz4. https://github.com/omnirom/android_external_lz4/blob/android-7.0/lib/Android.mk Signed-off-by: Humberto Borba <humberos@gmail.com> Change-Id: Ifce783ecb6af10d43bbeabd614d12e8e6b3b4270
2016-08-29Make naming scheme more meaningfulEthan Yonker1-1/+1
Change-Id: Ifcaf00c760ff452b0e85a88b54e91ca0f2f4644a
2016-08-26Fix compatibility across the boardEthan Yonker1-5/+14
Change-Id: I6376920775ddabb4d4af505fffd86e404403a64a
2016-08-25Fix compatibility with 5.1Ethan Yonker1-1/+1
Change-Id: I83704ce3a669239e0acb936e50e6eae080b28173
2016-08-25Make it backwards compatible with 4.4Ethan Yonker1-21/+55
Change-Id: I668604cddc8e8afbf78709f3f872bea4e9f4aa06
2016-08-22NTFS-3g: migrate to PLATFORM_SDK check insteadJason Riordan1-1/+1
android-6.0 branch of ntfs-3g matches the cm-13.0 version now, check platform version instead of CM_SDK version. Change-Id: Ic4aed613084d530c814611678f70d75260b9adc4
2016-08-22Add git revision to startup message in recovery.logthat1-0/+6
This should make it easier to find the exact source for a specific version of the binary. Change-Id: I7e04dd9a3205cc643150a588b69b4bd691212ecb
2016-08-06Fix references to libcrypto_utils_static.Josh Gao1-4/+4
Bug: http://b/30708454 Change-Id: I7a5048beff1d8b783a9683dcb4a79606a77f20ee
2016-08-01ADB: Add adb backup for TWRP.bigbiff1-2/+4
Functionality for client side to backup tar and image streams over adbd to the client under backup.ab. Using adb backup on the client side you can backup the partitions TWRP knows about. On the client side you can do the following: adb backup -f <filename> --twrp <options> where options are --compress: compress data system: backup system cache: backup cache data: backup data boot: backup boot etc for each partition. You can string multiple options, i.e. adb backup -f <filename> --twrp --compress cache system data adb backup in TWRP will take any option corresponding to TWRP fstab partitions, e.g. efs boot as well. If you do not specify the filename with the -f option, adb will backup your data to a filename backup.ab on the client. You can then rename the file and encrypt it with desktop tools. If you don't want to use command line arguments: adb backup --twrp will bring up the gui and allow you to choose partitions from the backup page. To restore the backup use the following convention: adb restore <filename> Structures are used to store metadata in binary inside of the file itself. If the metadata structure is modified, update the adb version so that it will invalidate older backups and not cause issues on restore. When restoring, we currently do not support picking specific partitions. It's all or nothing. Change-Id: Idb92c37fc9801dc8d89ed2a4570e9d12e76facf8
2016-06-30Create bootloader_message static library.Yabin Cui1-5/+7
bootloader_messages merges bootloader_message_writer and bootloader.cpp, so we can use the same library to manage bootloader_message in normal boot and recovery mode. Bug: 29582118 Change-Id: I9efdf776ef8f02b53911ff43a518e035e0c29618
2016-06-10Remove obsolete MTD support.Elliott Hughes1-9/+13
Bug: http://b/29250988 Change-Id: Ia97ba9082a165c37f74d6e1c3f71a367adc59945
2016-05-24Disable the meaningless parts of the UI for A/B.Elliott Hughes1-0/+4
Bug: http://b/28748484 Change-Id: Ie86a265f4699503471e7c717d65677a916dbd25b
2016-04-14Use BoringSSL instead of mincrypt to speed up package verification.Elliott Hughes1-2/+3
This changes the verification code in bootable/recovery to use BoringSSL instead of mincrypt. Cherry-pick of 452df6d99c81c4eeee3d2c7b2171901e8b7bc54a, with merge conflict resolution, extra logging in verifier.cpp, and an increase in the hash chunk size from 4KiB to 1MiB. Bug: http://b/28135231 Change-Id: I1ed7efd52223dd6f6a4629cad187cbc383d5aa84
2016-04-06Convert recovery to use BoringSSL instead of mincrypt.Mattias Nissler1-2/+4
This changes the verification code in bootable/recovery to use BoringSSL instead of mincrypt. Change-Id: I37b37d84b22e81c32ac180cd1240c02150ddf3a7
2016-04-02Really remove all old SP* flags and codeEthan Yonker1-18/+0
Change-Id: I5ece02a8721e1b7541fb5182366a55fd0f037a7a
2016-03-31recovery: use __android_log_pmsg_file_write for log filesMark Salyzyn1-0/+24
(cherry-pick from commit a4f701af93a5a739f34823cde0c493dfbc63537a) - Add call to __android_log_pmsg_file_write for recovery logging. - Add call to refresh pmsg if we reboot back into recovery and then allow overwrite of those logs. - Add a new one-time executable recovery-refresh that refreshes pmsg in post-fs phase of init. We rely on pmsg eventually scrolling off to age the content after recovery-persist has done its job. - Add a new one-time executable recovery-persist that transfers from pmsg to /data/misc/recovery/ directory if /cache is not mounted in post-fs-data phase of init. - Build and appropriately trigger the above two as required if BOARD_CACHEIMAGE_PARTITION_SIZE is undefined. - Add some simple unit tests NB: Test failure is expected on systems that do not deliver either the recovery-persist or recovery-refresh executables, e.g. systems with /cache. Tests also require a timely reboot sequence of test to truly verify, tests provide guidance on stderr to direct. Bug: 27176738 Change-Id: I17bb95980234984f6b2087fd5941b0a3126b706b
2016-03-31Improve progress bar handling for backup / restore / image flashEthan Yonker1-0/+1
The progress bar will now be updated during image backups, restores and during image flashing (except for sparse images which will require significant changes to libsparse, and except for mtd nand using flash_utils). The progress bar will now be updated mid-file for file systems (tar) so the user will see changes even during large file backup / restore. Add a new progress tracking class to simplify handling of progress bar updates. The class will only update the progress bar 5 times a second to reduce the CPU load from updating the GUI frequently which does affect backup times. Change-Id: Iff382faef3df1f86604af336c1a8ce8993cd12c5
2016-03-28recovery: use __android_log_pmsg_file_write for log filesMark Salyzyn1-0/+24
- Add call to __android_log_pmsg_file_write for recovery logging. - Add call to refresh pmsg if we reboot back into recovery and then allow overwrite of those logs. - Add a new one-time executable recovery-refresh that refreshes pmsg in post-fs phase of init. We rely on pmsg eventually scrolling off to age the content after recovery-persist has done its job. - Add a new one-time executable recovery-persist that transfers from pmsg to /data/misc/recovery/ directory if /cache is not mounted in post-fs-data phase of init. - Build and appropriately trigger the above two as required if BOARD_CACHEIMAGE_PARTITION_SIZE is undefined. - Add some simple unit tests NB: Test failure is expected on systems that do not deliver either the recovery-persist or recovery-refresh executables, e.g. systems with /cache. Tests also require a timely reboot sequence of test to truly verify, tests provide guidance on stderr to direct. Bug: 27176738 Change-Id: I17bb95980234984f6b2087fd5941b0a3126b706b
2016-03-18recovery: Move SwipeDetector into common locationPrashant Malani1-0/+1
The SwipeDetector class is used almost unchanged in all locations. This patch moves it into the recovery module, from which devices can reference it if required. The class is now renamed to WearSwipeDetector. Bug: 27407422 Change-Id: Ifd3c7069a287548b89b14ab5d6d2b90a298e0145
2016-03-03Fix the improper use of LOCAL_WHOLE_STATIC_LIBRARIES.Tao Bao1-3/+6
If two libraries both use LOCAL_WHOLE_STATIC_LIBRARIES and include a same library, there would be linking errors when generating a shared library (or executable) that depends on the two libraries both. Also clean up Android.mk files. Remove the "LOCAL_MODULE_TAGS := eng" line for the updater module. The module will then default to "optional" which won't be built until needed. Change-Id: I3ec227109b8aa744b7568e7f82f575aae3fe0e6f
2016-02-29Remove busybox modprobe to fix slow performance for some devicesEthan Yonker1-0/+10
bionic process initialization calls personality (specifically personality-8) personality wants to load a kernel module loading a kernel module calls /sbin/modprobe loading /sbin/modprobe is a bionic process initialization bionic process initialization calls personality personality wants to load a kernel module loading a kernel module calls /sbin/modprobe . . . Before you know it, it takes 0.5 seconds to do anything. Note: modprobe is still technically available, but the symlink has been removed, so you can still call it directly by running busybox modprobe if you like. From what I can tell, this issue only affects 32 bit devices with CONFIG_MODULES=y in the defconfig. The problem can be also patched out of the kernel by commenting or otherwise removing the block of code in kernel/exec_domain.c inside the CONFIG_MODULES ifdef block It is also possible to patch the problem in bionic libc by commenting out or otherwise removing the __initialize_personality in bionic/libc/ bionic/libc_init_common.cpp file. Change-Id: Iebac314616080ac18320d73b087980ac1b98b951
2016-02-23recovery: check battery level before installing package.Yabin Cui1-0/+4
Bug: 26879394 Change-Id: I63dce5bc50c2e104129f1bcab7d3cad5682bf45d (cherry picked from commit 53e7a0628f4acc95481f556ba51800df4a1de37d)
2016-02-20recovery: check battery level before installing package.Yabin Cui1-0/+4
Bug: 26879394 Change-Id: I63dce5bc50c2e104129f1bcab7d3cad5682bf45d
2016-02-15Fix up logd make file rulesEthan Yonker1-3/+3
logd, the init.recovery.logd.rc, and other related files were included by default if your device configs specified TARGET_USES_LOGD := true which would be the case for any device that has a full ROM tree instead of a minimal TWRP tree. Change-Id: Ia1e55703631f0f22beab2f4d4479599b88539e1a
2016-02-10IO fault injection for OTA packagesJed Estep1-0/+1
Bug: 25951086 Change-Id: I31c74c735eb7a975b7f41fe2b2eff042e5699c0c (cherry-picked from commit f1fc48c6e62cfee42d25ad12f443e22d50c15d0b)
2016-02-06Fix no exfat-fuse rulesEthan Yonker1-6/+6
If we set TW_NO_EXFAT then we should not try to build exfat-fuse Change-Id: I836ed6082cfbfb51bfb862b79c0182f36de88a9c
2016-02-04Refactor existing tests to use gtestJed Estep1-19/+1
Bug: 26962907 Change-Id: I5f80636af1740badeff7d08193f08e23f4e4fee1
2016-02-04Add TWRP flags to enable logd and/or logcat in recoveryCaptain Throwback1-0/+6
Developers and device maintainers may find it useful to have access to logcat in recovery. This patch set adds the following build flags: TARGET_USES_LOGD - This is an Android build flag that enables logd support. Devices that don't have built in kernel logging to dev/log/* will need this flag for logcat. We'll also use this to include the necessary support files for logd in TWRP. TWRP_INCLUDE_LOGCAT - This enables logcat support in recovery. I pulled the init entries from my HTC One M8 GPE boot.img, so I'm not certain whether these will work for all devices or if they're all necessary. Feedback is welcome. PS2: Use "TARGET_USES_LOGD" instead as this flag already exists, and previous flag was named incorrectly (logd isn't kernel logging) PS3: Start logd service on load_persist_props action, needed for 6.0+ PS4: More info on "TARGET_USES_LOGD" flag as related to liblog compilation can be found at the below links: https://android.googlesource.com/platform/system/core/+/android-6.0.1_r10/liblog/Android.mk#27 https://android.googlesource.com/platform/system/core/+/android-6.0.1_r10/liblog/Android.mk#50 Whether or not this flag is needed for logcat in TWRP is dependent on whether liblog was compiled with this flag. PS5: Update commit message to better describe "TARGET_USES_LOGD" flag PS6: Another commit message update Change-Id: Iaac6c6c822dc93fbe4b6eadcf24eef6995dd6b50
2016-02-03allow flashing sparse imagesHashBang1-1/+4
if the image has the right magic bytes to be a sparse image, use simg2img to flash the image create a rule to make a fully dynamic simg2img which results in a much smaller increase in gzip ramdisk size (2KB vs 40KB) Change-Id: I1b0f6bc127da46103888b1154a9bddd8ac02c01d
2016-01-29Replace fix permissions with fix contexts for emulated storageEthan Yonker1-2/+1
Fix permissions rarely fixed anything on more recent versions of Android and usually made things worse. Instead we will replace it with a more dumbed down option that should fix contexts on /data/media with a few improvements to ensure that contexts get fixed for multiple users and on adopted storage. Change-Id: If5523781936a0b04196e2ad871cae767ebae2583
2016-01-25Adopted Storage supportEthan Yonker1-1/+2
-Detects, decrypts, and mounts an adopted SD card if a secondary block device is defined (usually mmcblk1) -Handles unified storage -Displays the adopted storage in MTP along with internal -Factory Reset - wiped just like a data media device, we retain the keys folder and the storage.xml during a factory reset -Backup / Restore -Disable mass storage when adopted storage is present -Read storage nickname from storage.xml and apply it to display names in the GUI -Read storage.xml and determine what storage location is in use for /sdcard and remap accordingly libgpt_twrp is source code mostly kanged from an efimanager project. It is GPL v2 or higher, so we will opt for GPL v3. Change-Id: Ieda0030bec5155ba8d2b9167dc0016cebbf39d55
2016-01-22Add zip and unzip when using toyboxdianlujitao1-0/+6
Change-Id: I75500bfe4e7adf66c5538597d79ed0539e7bb551 Signed-off-by: dianlujitao <dianlujitao@gmail.com>
2016-01-20Fix SuperSU local dependenciesEthan Yonker1-1/+9
Change-Id: Ia5fadd8254340b21a54565e2c7d2b54aa70f19f3
2016-01-14Improve sdcard partitioning processEthan Yonker1-1/+5
-Improve code for partitioning sdcards -Allow user to select a device for partitioning (must be removable) -Use sgdisk to partition sdcards -Set default sizes for ext and swap to 0 -Change increments for ext to 256MB and swap to 64MB Note: sgdisk is included in 6.0. I have included a static prebuilt sgdisk for trees that do not have sgdisk, however the prebuilt sgdisk is a decent bit larger than the old parted binary. The old parted binary is quite old at this point and we only have it for armv7a. sgdisk should be maintained by AOSP and can be built from source so it should work across architectures. Change-Id: Ib80882d9b5776e5e9358b11340fba392e6f1ae09
2016-01-06IO fault injection for OTA packagesJed Estep1-0/+1
Bug: 25951086 Change-Id: I31c74c735eb7a975b7f41fe2b2eff042e5699c0c
2016-01-04ntfs-3g: Fix cm-13 compatibilityGreg Wallace1-0/+7
CM-13 tree completely changes the names of the binaries that are created for ntfs-3g. If we are using a CM-13 tree (CM SDK 4) make sure the dependencies and relinking are adjusted accordingly. Also, adapt partition code so it can make use of whichever set of binaries are present. Change-Id: I810caafa818f18281fd29dcf8f31b3053133b5ed
2016-01-04Remove no-opOlivier K.1-3/+0
Change-Id: I2bb2c44dd97974fa3cc19ccb6c6c7f0c3ef9bc58
2015-12-23do not include stlport headers unless link to itXing1-2/+5
Change-Id: I8344d270ddb601694b5fef0fa7b22ea437030728
2015-12-23Add default brightness controlGreg Wallace1-0/+3
This lets user set the default brightness so user doesn't cook their phone on first boot or loss of settings file, while still maintaining the ability to turn brightness to max if desired. Change-Id: Ia801fba46014335148ec573a0b0bbdf0a3ca60ae
2015-12-23exfat: Update to 1.2.2Matt Mower1-1/+1
Change-Id: I160389afa074270c398aeb771845500f2445838a
2015-12-22exfat: Build fsck and update path to mkfsMatt Mower1-1/+2
* Usage of fsck.exfat is already included in partition.cpp, but the tool is missing. * Update the path to mkexfatfs so the button is available when changing filesystem. Change-Id: I5f4e27357c6b5a8606043d1bdc2488cc83e55d90
2015-12-22selinux: Only union sepolicy in SDKs 21,22Matt Mower1-1/+1
Manual union is not needed in Android 6.0+. Change-Id: I7e321fb90b4333da349cc8ad8d2d78d990258b65
2015-12-22Remove unnecessary quoting from twres pathMatt Mower1-1/+1
The C flag defines already use -DVAR=\"..\", so stripping these extra quotes should not affect those defines. The makefile does not need the quoting at all. Makefile example output... before: mkdir -p (omitted)/recovery/root"/twres/" after: mkdir -p (omitted)/recovery/root/twres/ Change-Id: I8f557662eb18b5ea40b63bc055d12be4440251e6
2015-12-22f2fs: Update make rules for CM compatibilityMatt Mower1-0/+7
* Make sure fsck.f2fs and mkfs.f2fs are built for CM12.1/13.0 * Add CM13.0 rule for relinking mkfs.f2fs * Minor cleanup of nested if/else in prebuilts Note on CM SDKs: 3=cm-12.1, 4=cm-13.0 I'm not yet sure whether it is possible that the CMSDK increments within the same branch of CM. Change-Id: I7b521159a8b5d0e0ea639f5e0fdd885100612df0
2015-12-19Multiple Language SupportEthan Yonker1-0/+5
This is similar to https://gerrit.omnirom.org/#/c/14014 A lot of the features built in the older patch set have been split out into separate patches, most of which have already been merged. The remaining functionality here should all be directly related to language selection and loading. We always load English as a base before loading other languages over the top of the base. The idea is that if another language is missing a translation, then we will still display the English. Maybe still to do: read the /cache/recovery/last_locale file and load a language based on that. For me, this file contains just: en_US We probably won't bother with region specific translations so we would have to look at either trimming off the _US or using some other method like perhaps a symlink or a combination of the two. Thanks to _that for twmsg.cpp class Change-Id: I9647a22e47883a3ddd2de1da51f64aab7c328f74
2015-12-08Add update_verifier for A/B OTA update.Tao Bao1-0/+1
update_verifier checks the integrity of the updated system and vendor partitions on the first boot post an A/B OTA update. It marks the current slot as having booted successfully if it passes the verification. This CL doesn't perform any actual verification work which will be addressed in follow-up CLs. Bug: 26039641 Change-Id: Ia5504ed25b799b48b5886c2fc68073a360127f42 (cherry picked from commit 1171d3a12b13ca3f1d4301985cf068076e55ae26)
2015-12-07Add update_verifier for A/B OTA update.Tao Bao1-0/+1
update_verifier checks the integrity of the updated system and vendor partitions on the first boot post an A/B OTA update. It marks the current slot as having booted successfully if it passes the verification. This CL doesn't perform any actual verification work which will be addressed in follow-up CLs. Bug: 26039641 Change-Id: Ia5504ed25b799b48b5886c2fc68073a360127f42
2015-11-26Update dosfstoolsMatt Mower1-5/+4
* Version 3.0.28 * Update filenames in source * Remove unnecessary symlink to fsck * Commit "Recode short filenames from DOS codepage (default 437)." has been reverted since we do not have access to iconv * Commits cherry-picked on top of 3.0.28: - mkfs.fat: fix incorrect int type - Prevent out of bound array read in date_dos2unix() Change-Id: I50310235c62ec2e6bc90afcd10f2814d3afb5113
2015-11-16Stop using libstdc++.Dan Albert1-2/+0
These are already getting libc++, so it isn't necessary. If any of the other static libraries (such as adb) use new or delete from libc++, there will be symbol collisions. Change-Id: I55e43ec60006d3c2403122fa1174bde06f18e09f (cherry picked from commit e49a9e527a51f43db792263bb60bfc91293848da)
2015-11-16recovery: Switch to clangTao Bao1-2/+4
And a few trival fixes to suppress warnings. Change-Id: Id28e3581aaca4bda59826afa80c0c1cdfb0442fc (cherry picked from commit 80e46e08de5f65702fa7f7cd3ef83f905d919bbc)
2015-11-09Fix rules for libstlportEthan Yonker1-1/+1
Change-Id: I571e906173c9e70de97e3cfefd10da5137dba4d4
2015-11-05Fixup union sepolicyAndrea Mennillo1-1/+1
This change solve two issue: 1) Policies related to recovery should be only included in recovery policy 2) In CM trees the sepolicy dir was always bootable/recovery- twrp/sepolicy, even if recovery path was bootable/recovery Change-Id: I9466d22293074ba5f5240abe8b97a5d1bf30982d
2015-10-28recovery: Depend on mkfs.f2fs only if needed.Tao Bao1-0/+2
Don't build mkfs.f2fs unless device defines TARGET_USERIMAGES_USE_F2FS. Change-Id: Ifac592c30315bbe7590c8fbf3a0844e6a7a31a1a
2015-10-26Fix SELinux issues for some devicesEthan Yonker1-1/+2
Reinstate some SELinux stuff in the default init.rc (noticed by Kra1o5) Add permissive.sh script to dependencies list for CM trees. Change-Id: I36ade54378c413081d202002488309af35486d5f
2015-10-22fix build in Omni 4.4that1-1/+3
Change-Id: Ida3984a6b774c2da12342d48d8644cd18de7396c
2015-10-16Union sepolicy within TWRP to make SELinux permissiveEthan Yonker1-0/+5
This patch set should make it easier to build TWRP in non-Omni trees as it allows TWRP to modify the sepolicy instead of having to merge a patch in external/sepolicy to meet TWRP's needs. Change-Id: I73205343556abb0852ff4c5f8cbf293d840b95d9
2015-09-09Track usage of Vector / SortedVector from libutils DO NOT MERGENarayan Kamath1-0/+1
bug: 22953624 Change-Id: Ifcc17e39433ac91ca41da5d336fb3006dfbb65a8
2015-08-25recovery: Factor out wear_ui.{cpp,h} into bootable/recovery.Tao Bao1-0/+1
Every watch has a (mostly identical) copy of the wear_ui. Factor them out into a single copy for easier maintenance. Device-specific settings should be defined in recovery_ui.cpp that inherits WearRecoveryUI class. Bug: 22451422 Change-Id: Id07efca37d1b1d330e6327506c7b73ccf6ae9241
2015-07-24recovery: Switch fuse_* to C++.Tao Bao1-2/+2
Change-Id: Id50c3e6febd0ab61f10a654b9b265cf21a2d1701 (cherry picked from commit 71dc365f25676cfb3f62dbb7163697a8c3c5243d)
2015-07-20recovery: Switch fuse_* to C++.Tao Bao1-2/+2
Change-Id: I68770ad1a9e99caee292f8010cfd37dfea3acc64
2015-07-14Add ntfs-3g supportEthan Yonker1-0/+6
Add support for mounting ntfs via ntfs-3g and support for wiping and repairing ntfs partitions. Change-Id: I82dc4626f459bb93b86eb9ebba64ad3a6560781b
2015-07-14Allow devices to override USB initMatt Mower1-1/+8
This enables devices to provide their own USB configuration. The contents of init.recovery.usb.rc can most simply be modified and included in a device's init.recovery.${ro.hardware}.rc. Use option: TW_EXCLUDE_DEFAULT_USB_INIT := true Rationale: Some devices handle USB pid switching in the kernel. In this case, USB init provides switching functions which differ from the standard on property:sys.usb.config=xyz. Other devices should not see USB attempt mtp,adb mode when TW_EXCLUDE_MTP is set. Cherry-picked from android-5.0 Change-Id: Ief0fcaf46a1782102166fc1b733a34b1a1ba0802
2015-06-03recovery: Switch to clangTao Bao1-2/+4
And a few trival fixes to suppress warnings. Change-Id: I38734b5f4434643e85feab25f4807b46a45d8d65
2015-06-01Don't try to read temparature file if TW_NO_CPU_TEMP is set to true.Agontuk1-3/+0
Otherwise, recovery log gets filled up with "I:Cannot find file /sys/class/thermal/thermal_zone0/temp" This also fixes build warnings due to duplicate definition of TW_NO_CPU_TEMP. Change-Id: Ib7fdcd103d6684249c38c8b14ec85f2faba158f6
2015-05-19Only include uncrypt if not in system/coreMatt Mower1-1/+4
Some android trees have uncrypt in system/core (cm-11.0). This breaks building recovery since two modules of the same name conflict. Only include the local copy of uncrypt if it doesn't already exist in system/core. Change-Id: Ie2d7cdedf0d4c9ad148c43b317d1f22d1e50e1f7
2015-05-19recovery: Add lz4 libs if availableTom Marshall1-0/+6
* Required by transparent compresssion in make_ext4fs. Change-Id: I566c9e1281cc0dd725e96db32da0a1c3c000030e
2015-05-19Stop using libstdc++.Dan Albert1-2/+0
These are already getting libc++, so it isn't necessary. If any of the other static libraries (such as adb) use new or delete from libc++, there will be symbol collisions. Change-Id: I55e43ec60006d3c2403122fa1174bde06f18e09f
2015-04-14Move the menu header out of the menu.Elliott Hughes1-0/+1
This makes it easier for us to deal with arbitrary information at the top, and means that headers added by specific commands don't overwrite the default ones. Add the fingerprint back, but broken up so it fits even on sprout's display. Change-Id: Id71da79ab1aa455a611d72756a3100a97ceb4c1c
2015-04-10Move "Mount /system" to the main menu.Elliott Hughes1-1/+0
Everyone's adding secret key combinations for this anyway, and it's very useful when debugging. Change-Id: Iad549452b872a7af963dd649f283ebcd3ea24234
2015-04-09Move default implementations into Device.Elliott Hughes1-5/+6
The current abstract class was a nice idea but has led to a lot of copy & paste in practice. Right now, no one we know of has any extra menu items, so let's make the default menu available to everyone. (If we assume that someone somewhere really does need custom device-specific menu options, a better API would let them add to our menu rather than replacing it.) Change-Id: I59f6a92f3ecd830c2ce78ce9da19eaaf472c5dfa
2015-03-13Make TWRP compile for x86-64 CPU targetEthan Yonker1-1/+5
Also add a short while loop to wait for fb0 to be created as was needed on the x86-64 target for the Android emulator. Change-Id: Ib1b87bea028ac3eac0541283334a0157cdfbce11
2015-03-11Install the recovery binary directly to the recovery image.Ying Wang1-5/+1
This eliminated the previous hack, that doesn't work reliably with the "LOCAL_REQUIRED_MODULES := mkfs.f2fs". Bug: 19666886 Change-Id: I1f0a2d41129f402c0165f3b86b6fda077291f282
2015-03-10Install the recovery binary directly to the recovery image.Ying Wang1-5/+1
This eliminated the previous hack, that doesn't work reliably with the "LOCAL_REQUIRED_MODULES := mkfs.f2fs". Bug: 19666886 Change-Id: I1f0a2d41129f402c0165f3b86b6fda077291f282
2015-02-20Kill of most of the remainder of minadbd.Dan Albert1-1/+0
I think everything left now is here to stay (services.c might get massaged in to libadbd if it gets refactored). Bug: 17626262 Change-Id: I01faf8b277a601a40e3a0f4c3b8206c97f1d2ce6
2015-02-19Use headers from adb.Dan Albert1-3/+4
adb.h has diverged a bit, so that one will be more involved, but these three are all trivial, unimportant changes. Change-Id: Ief8474c1c2927d7e955adf04f887c76ab37077a6
2015-02-19Lose USB transport code to libadb.Dan Albert1-1/+1
Bug: 17626262 Change-Id: If41031ba20a3a75fa510f155c654a482b47e409d
2015-01-27Add cancel backup capability.bigbiff1-1/+1
This will stop the iteration of the partition objects, kill the current twrpTar thread and remove the backup directory. Implement TWAtomicInt class to give us a wrapper that automatically uses mutexes before the read and write to help ensure that the reads and writes will be atomic based on documentation. Change-Id: I645b22bc980a292e9c7202acb24ffd22ebe68c63
2015-01-23Remove superfluous OpenSSL include paths.Adam Langley1-1/+0
This include path was needed because system/vold/cryptfs.h included an OpenSSL header just to get the length of a SHA-256 hash. This has been fixed in https://android-review.googlesource.com/#/c/124477/1. Change-Id: I06a8ba0ee5b9efcc3260598f07d9819f065711de
2015-01-22Use /twres instead of /res for theme resourcesDees Troy1-0/+5
AOSP and other ROM trees now do a rm -rf of the res folder during the ramdisk creation process that removes the TWRP resources. Using /twres instead of /res works around this issue making TWRP more compatible with AOSP and other build trees. Change-Id: I0d4c7e06ca381ac5aa0069b6f2b8c47f7dec49e7
2015-01-05Remove mtdutils source from libaosprecoveryEthan Yonker1-1/+1
Change-Id: I836ae4491f8da75fd13e73193774677e26daf16d
2015-01-05Update blkid to 2.25.0bigbiff1-1/+2
Break libblkid into 4 libraries: libblkid, libuuid, libutil-linux and libfdisk. This should help in later patch updates. Change-Id: I680d9a7feb031e5c29a603e9c58aff4b65826262
2014-12-12Fix compiling of dosfstools for arm64Ethan Yonker1-11/+7
Change-Id: If99d0be4b73cdeb388c6cb1b35a215d3b8b3b58d
2014-12-12Attempt to set the proper uid/gid/contexts on new files and dirsEthan Yonker1-2/+2
Files and folders that we create during backups, copy log, or MTP operations often do not have the proper uid/gid/contexts assigned. We will attempt to read the proper contexts from the settings storage path and assign those same contexts to any files or dirs that we create. Change-Id: I769f9479854122b49b499de2175e6e2d026f8afd
2014-12-12Fix generating symlinks for older treesDees Troy1-0/+3
Symlinks for unpigz, toolbox, and busybox were not generating in older trees. Change-Id: I3ca2a2047510954e66fb3cf49eef6af713d3268e
2014-12-10Use one mizip for allEthan Yonker1-17/+3
The new minzip did not compile in older trees due to needing mmap64. For older trees we will just use mmap instead. Remove all files and code pertaining to minzipold. Updater should now build properly in older trees as well. Eliminate use of PLATFORM_VERSION in favor of PLATFORM_SDK_VERSION which should be more consistent and reliable. Change-Id: I38d2b604a73d1b17a2072c7d60e990b81ece0c10
2014-12-10Fix mkexfatfs exclusion when TW_NO_EXFAT enabledMatt Mower1-1/+3
Push to android-5.0 Conflicts: Android.mk Change-Id: I0b831a4e6e52e4b314751035b750e6a398cb4d2d
2014-12-09Use linker64 on AArch64Ethan Yonker1-2/+3
Patch Set 3: Combine into one sed - by bigbiff Change-Id: Ice3147fae76575f6e09c7df201bcd3f949aa24ea
2014-12-04Reduce libs needed for decrypt and clean up old decypt filesEthan Yonker1-51/+6
Trim cryptfs.c to remove functions that TWRP does not use for decrypt and remove the need for libfs_mgr from cryptfs.c by passing some items to cryptfs.c from the partition manager. Add support for new fstab flags: encryptable and forceencrypt=/path/to/cryptokey For example: flags=forceencrypt=/dev/block/platform/sdhci-tegra.3/by-name/MD1 Note that "footer" is the default, so you do not need to set this flag on devices that use the footer for the crypto key. Also add mounttodecrypt if you need to mount a partition during the decrypt cycle for firmware of proprietary libs. Clean up decrypt and only support one version Android 5.0 lollipop decrypt should be backwards compatible with older versions so we will only support one version, 1.3 that came with 5.0 lollipop. Remove support for Samsung TouchWiz decrypt. It does not work with the latest versions of Samsung encryption anyway and it has not been updated to work with any AOSP decryption higher than 1.1 Change-Id: I2d9c6e31df50268c91ee642c2fa090f901d9d5c9
2014-12-03bootable recovery: we upgraded to 5.0.1erikcas1-3/+3
Change-Id: I9e2f359dd7274e1ae885f6a3b392d5ab5ca99ac9
2014-12-02 Make the android-5.0 branch compile in 4.4 to 4.1Ethan Yonker1-6/+15
Migrate previous minzip to minzipold replacing the existing minzipold. This will break compatibility with trees that do not support selinux (ICS and older). Migrate former verifier files to verifierold. Add fuse.h to recovery source because older trees do not have it. Add LOCAL_MODULE_TAGS where needed for 4.1 tree. Change-Id: Iade57cb2b0115af7fce9f56aa98636b1744a1ef4
2014-11-25Start losing code to libadb.Dan Albert1-0/+1
Bug: 17626262 Change-Id: I8ce7cff2b7789f39f35a4211d7120d072c05a863
2014-11-17Make libmincrypttwrp a shared libraryEthan Yonker1-4/+2
Change-Id: I8c3f084fc34b00edb4cd1b652290df8bc80ea1db
2014-11-12Add lollipop decrypt supportEthan Yonker1-1/+9
Kang in cryptfs.c and cryptfs.h from vold. Use TW_INCLUDE_L_CRYPTO := true to enable. Ramdisk must contain the normal fstab file in the root in the usual format of: fstab.{ro.hardware} For examble for Nexus 5: fstab.hammerhead Or on many Qualcomm devices: fstab.qcom Tested against Android 5.0 lollipop on Nexus 7 2012 grouper. Not sure if or how this will work when we are dealing with a device with a hardware keystore. Long term we need to add a GUI element to allow entering a pattern. For now you can decrypt a pattern unlock by converting the dots to numbers in the following format: 123 456 789 So an upper-case L would translate to 14789 as a password entered on the keyboard. Change-Id: I02c29e1f1c2eb29bf002c9fe0fc118357300b5b3
2014-11-12Make TWRP compile for arm64Ethan Yonker1-8/+16
-Remove dosfstools for arm64 until we can make it compile -Fix TW_USE_TOOLBOX flag to work again -Fix symlinking and handling of sh when using mksh -Fix legacy properties to find futex_wake function -Fix libcrecovery to not use bsd_signal anymore -Fix rules for building with regards to libcrecovery -Update toolbox_recovery rules to compile tools in lollipop -Fix a few compile errors specific to arm64 Testers report that TWRP does not boot on Nexus 9 and we fail to get a shell for adb shell. At least it compiles without errors. Change-Id: I286be8628defb60cc527b8a548c0bdfcb0ebb574
2014-11-07Fix merge derp in main Android.mk fileEthan Yonker1-14/+0
Change-Id: Id6fcae7b7b8d9a03ff09711844e987084bd001ac
2014-11-07Fix build when TARGET_USERIMAGES_USE_EXT4 is not definedAdrien Grassein1-1/+3
The cryptfs.h files is always included, but its path is only included when TARGET_USERIMAGES_USE_EXT4 is defined. Change-Id: Iec6aa4601a56a1feac456a21a53a08557dc1d00d
2014-11-06Fix up libaosprecoveryEthan Yonker1-1/+1
Change-Id: I5a6d0c3c5f9a3a474464c0f06d6b09045459eebb
2014-11-06More make file tweaksEthan Yonker1-3/+4
Change-Id: I26fa571b151c50d133b550395576d4e0246e18bd
2014-11-06Fix some make file duplicatesEthan Yonker1-3/+0
Change-Id: Id226b2cde93cf0f81a6dd33fbdf70f8f954cade8
2014-11-04Fix some module tagsMatt Mower1-2/+1
There is no LOCAL_MODULES_TAGS. Fix by combining with LOCAL_MODULE_TAGS. Change-Id: I1cacef2f8123af3632ff6a52aa62c2f2e15ac37d
2014-11-03Remove dependence on build hax in makefilesMatt Mower1-2/+69
Update makefiles to no longer rely on INTERNAL_RECOVERY_FILES. Define LOCAL_ADDITIONAL_DEPENDENCIES instead. Set LOCAL_LDFLAGS to properly link recovery executable. Change-Id: I4542104c69399b5a19674b9772ab89c3709efa72
2014-10-14display cpu temperature in twrpJenkins1-0/+9
use TW_NO_CPU_TEMP := true to disable display use TW_CPU_CUSTOM_PATH := path to set custom path Change-Id: Id260ecbb4ec36a78442387329944f67003d0f6a0
2014-10-08Update RECOVERY_VARIANT blocking to use project-path-forMatt Mower1-5/+9
Using RECOVERY_VARIANT to allow recovery to reside at bootable/recovery-(variant) has changed at CM. project-path-for now handles all the path re-mapping. This is simply a compatibility update to be able to continue using RECOVERY_VARIANT with TWRP in a CM tree. Change-Id: I66769d85b2a111e837f206b1c9a5bc07d6ac0d86
2014-10-07Fixes for exfat-fuseCaptain Throwback1-2/+4
Change-Id: I46a1e7bf115c45616774b0571b17e38777ba87f8
2014-09-03Only use SELinux tools from toolbox if not in busyboxMatt Mower1-3/+9
If busybox has SELinux support, we don't need toolbox to provide SELinux specific tools. Check busybox for restorecon to see if SELinux support is present and then adjust the tools built by toolbox based on this. Change-Id: I30a2b036b97ac3e26510d5e0498c52d7a8af36e1
2014-09-03Build block TWRP with RECOVERY_VARIANTMatt Mower1-2/+14
Enable TWRP to reside alongside other recoveries with the naming convention: bootable/recovery(-flag). If TWRP resides at bootable/recovery and a device does not specify RECOVERY_VARIANT, then it will build like normal. If TWRP resides at bootable/recovery-twrp, then its makefiles will only be parsed if a device specifies 'RECOVERY_VARIANT := twrp'. This prevents TWRP specific makefile warnings/errors (notably, missing DEVICE_RESOLUTION) when another recovery is being built. Change-Id: I8f02fffcd79c309c7123b9428eedc69af02e126e
2014-09-03add mtp responder to TWRP.bigbiff bigbiff1-4/+9
Big thanks to Dees_Troy for helping with the implementation. Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
2014-08-10Support reading since_epoch and secondary brightness filesxNUTx1-0/+3
TWFunc::Fixup_Time_On_Boot: Will now try to read /sys/class/rtc/rtc0/since_epoch to correct time, if that fails it will try to use the ats files to correct time. TWFunc::Set_Brightness: One single function to set brightness from both the automated functions and the gui actions. It is able to set a second brightness path if present, it will set them both the same value. Many Sony devices have 2 brightness files in the sysfs that must be set to properly set the brightness. Change-Id: I7ca582109085dfbcb46b8de73ad031e4b7903fca
2014-08-09Add command line capabilitiesEthan Yonker1-0/+3
Allows sending openrecoveryscript commands to TWRP via shell. This may be handy for visually impaired users, for various one click utilities to drive TWRP commands from a computer, for using TWRP when a catastrophic hardware failure like a shattered screen prevents you from being able to use touch, or even on devices like a TV stick where touch and USB mouse input is unavailable. This patch also includes a few minor changes to openrecoveryscript including proper support for rebooting via the script and for decrypting the device via the command line. Change-Id: I796ad168efdd2da9c25334ac93d1079daaa7b0bc
2014-07-16Allow custom bootloader msg offset in block miscMatt Mower1-0/+4
Use board define BOARD_RECOVERY_BLDRMSG_OFFSET with a decimal integer to define a custom offset where the bootloader message should be read/written. Change-Id: Id13a23dd41bb7d907b96d657b8e21eb839dfeaa9
2014-07-10do sdcard sideloading through the fuse filesystemDoug Zongker1-1/+2
Make a fuse filesystem that sits on top of the selected package file on the sdcard, so we can verify that the file contents don't change while being read and avoid copying the file to /tmp (that is, RAM) before verifying and installing it. Change-Id: Ifd982aa68bfe469eda5f839042648654bf7386a1
2014-07-10refactor fuse sideloading codeDoug Zongker1-0/+13
Split the adb-specific portions (fetching a block from the adb host and closing the connections) out from the rest of the FUSE filesystem code, so that we can reuse the fuse stuff for installing off sdcards as well. Change-Id: I0ba385fd35999c5f5cad27842bc82024a264dd14
2014-07-09Track backup and restore progressEthan Yonker1-1/+2
Track backup and restore progress based on the sizes of the files as they are being added to the tar backup file. Update the progress bar based on the sizes of the files. Change-Id: Idf649efa1db3e91830b4b2add86203a3f30042ff
2014-06-30Add "include $(CLEAR_VARS)" for 4.4 ROMS (clears LOCAL_BUILT/LOCAL_INSTALLED error)Motorhead19911-0/+2
Change-Id: Ibbba0ce9c7ebadee40e42b740c83214fd1cd56ac
2014-06-18Use LOCAL_REQUIRED_MODULES for mkfs.f2fsJi-Hwan Lee1-5/+3
Instead of LOCAL_ADDITIONAL_DEPENDENCIES. Bug: 15702524 Change-Id: Ic152ae60354bf09eccdb9a85dcd04f0f076a6422
2014-06-17Support F2FS for the data partitionJP Abgrall1-0/+6
This adds F2FS support - for wiping a device - for the install "format" command. Note: crypto data in "footer" with a default/negative length is not supported, unlike with "ext4". Change-Id: I8d141a0d4d14df9fe84d3b131484e9696fcd8870 Signed-off-by: JP Abgrall <jpa@google.com>
2014-04-15Enable rk30xx hackJ. Carlos Romero1-6/+0
Fix problem with erase/restore mtd partitions on Rockchip SoC Change-Id: I3320f711446441cf79e38e9ffb5dfdb6b1717a55
2014-04-15Add find file class to search for filesEthan Yonker1-0/+1
Scan a folder for a file based on file name. First scan the files in the current path, then search real directories and finally search symlinks in that order. Goal is to locate important sysfs files for things like brightness, battery capacity, lun files, etc This implementation just scans for the brightness file for the LCD Change-Id: I8ed3e74a2e2851d58b443718b6e92b50a5491f08
2014-04-04Tweak OEM modeEthan Yonker1-3/+6
Change-Id: Ic440e33fa22aa7b082097366f10b333cc945362a
2014-04-04Add option to build TWRP with toolbox instead of busyboxEthan Yonker1-0/+2
Makes a smaller TWRP Uses mksh for shell Change-Id: If78d7745dda8919fcb2e9c9b60c6696063c14114
2014-04-04Allow building of an OEM friendly TWRPEthan Yonker1-0/+3
Disable theming Disable creating the TWRP folder for the settings file Change factory reset on data/media devices to a full wipe Change-Id: I3104282b5dd3f55dfff7c8cf39c72750af08563d
2014-03-27Allow disabling legacy propertiesMatt Mower1-0/+3
Introduce TW_NO_LEGACY_PROPS flag for users that build TWRP in non-kitkat trees and don't need the legacy prop environment. Change-Id: Iacb2d9af7d7069acb3d0a96bb34f32ded6317a20
2014-03-11remove pixelflinger from recoveryDoug Zongker1-1/+0
Recovery now draws directly to the framebuffer by rolling its own graphics code, rather than depending on libpixelflinger. The recovery UI is modified slightly to eliminate operations that are slow with the software implementation: when the text display / menu is turned on, it now appears on a black background instead of a dimmed version of the recovery icon. There's probably substantial room for optimization of the graphics operations. Bug: 12131110 Change-Id: Iab6520e0a7aaec39e2ce39377c10aef82ae0c595 Conflicts: minui/resources.c
2014-03-11allow CheckKey to request mounting /systemDoug Zongker1-0/+1
Also provide a default implementation of CheckKey that's reasonable for many devices (those that have power and volume keys). Change-Id: Icf6c7746ebd866152d402059dbd27fd16bd51ff8
2014-03-11remove pixelflinger from recoveryDoug Zongker1-1/+0
Recovery now draws directly to the framebuffer by rolling its own graphics code, rather than depending on libpixelflinger. The recovery UI is modified slightly to eliminate operations that are slow with the software implementation: when the text display / menu is turned on, it now appears on a black background instead of a dimmed version of the recovery icon. There's probably substantial room for optimization of the graphics operations. Bug: 12131110 Change-Id: Iab6520e0a7aaec39e2ce39377c10aef82ae0c595
2014-03-09Support pre-KitKat properties for update-binarythat1-1/+1
Google changed the in-memory format for storing properties in 4.4. Zips containing an older update-binary expect the old format, otherwise assertions on properties in the update script fail. This is just enough of the old property service to copy the properties to the legacy format before running the updater. Change-Id: I404680384bdc5e952609e295029ab0a0faf743a5
2014-03-03Fix build break caused by vold changePaul Lawrence1-0/+1
cryptfs.h now includes sha header from libcrypto folder Change-Id: Icd02c88971aedf96040c3bd9ca759e531546023b
2014-02-28Restore capabilities to run-as binaryDees Troy1-0/+3
Change-Id: I9e2b8e9b69c94b94c57143c04b950530490ec33e
2014-02-14clean up some warnings when building recoveryDoug Zongker1-0/+2
Change-Id: I1541534ee6978ddf8d548433986679ce9507d508
2014-02-14remove 'retouch' ASLR supportDoug Zongker1-1/+0
Older versions of android supported an ASLR system where binaries were randomly twiddled at OTA install time. Remove support for this; we now use the ASLR support in the linux kernel. Change-Id: I8348eb0d6424692668dc1a00e2416fbef6c158a2
2014-02-12Add twrpTar binaryEthan Yonker1-1/+2
Change-Id: I9db1aac350cd2ca02cceccc249ebd2f0b3c3c671
2014-02-04Load RTC offset on Qualcomm Krait chips, fixes the broken time & dateVojtech Bocek1-0/+7
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I04ad07f3e6be961003e063be8c648e191e2f9431
2014-01-28Fix make file flag name for minzipEthan Yonker1-1/+1
Change-Id: I53380ee203c1fe75d37f24f99e36f5c5a62e5b39
2014-01-16program to store unencrypted files in an encrypted filesystemDoug Zongker1-0/+1
uncrypt can read a file on an encrypted filesystem and rewrite it to the same blocks on the underlying (unencrypted) block device. This destroys the contents of the file as far as the encrypted filesystem is concerned, but allows the data to be read without the encryption key if you know which blocks of the raw device to access. uncrypt produces a "block map" file which lists the blocks that contain the file. For unencrypted filesystem, uncrypt will produce the block map without touching the data. Bug: 12188746 Change-Id: Ib7259b9e14dac8af406796b429d58378a00c7c63
2014-01-16do verification and extraction on memory, not filesDoug Zongker1-0/+1
Changes minzip and recovery's file signature verification to work on memory regions, rather than files. For packages which are regular files, install.cpp now mmap()s them into memory and then passes the mapped memory to the verifier and to the minzip library. Support for files which are raw block maps (which will be used when we have packages written to encrypted data partitions) is present but largely untested so far. Bug: 12188746 Change-Id: I12cc3e809834745a489dd9d4ceb558cbccdc3f71
2013-12-19Create a TWRP Disk Usage Class to retain state about a directory and whether we should skip it in other classes like twrpTar.bigbiff bigbiff1-0/+1
Moved Get_Folder_Size to this new class. Change-Id: If0a0220f900eb109581f2eeaf7b76e3f7d6886f1
2013-12-13recovery: wipe encryption metadata along with data partitionDoug Zongker1-1/+1
This assumes that the metadata is correctly defined in fstab. Which apparently some devices don't do. Bug: 8766487 Bug: 12112624 Change-Id: I1b14b9d4c888e9348527984be3dce04bdd9f4de0
2013-11-11Add getfooter tool for crypto debuggingDees Troy1-0/+1
Change-Id: I3b9e5f72f3c1c77e41a45d3c94a44f36cc5cbc3c
2013-11-10Update decrypt for 4.4Dees Troy1-0/+2
Change-Id: I8d5d7b6a49890e4707d70de8b429563de0d2ad99
2013-11-03Fix building of other utilitiesDees Troy1-1/+2
Fix building all applypatch items Fix building verifier_test (probably will not work right as-is) but at least it builds without errors. Change-Id: I7ab0c04d7d3d2c2e14b57480627e594f89a68b0b
2013-10-24Add toolbox_recovery rulesDees Troy1-1/+6
Build special limited toolbox with SELinux tools for recovery Change-Id: Ifc76a6bd0468a72081f15ede2a68adf48af8a0f2
2013-10-16Add toolbox_recovery rulesDees Troy1-1/+6
Build special limited toolbox with SELinux tools for recovery Change-Id: Ifc76a6bd0468a72081f15ede2a68adf48af8a0f2
2013-10-10Add support for ECDSA signaturesKenny Root1-1/+10
This adds support for key version 5 which is an EC key using the NIST P-256 curve parameters. OTAs may be signed with these keys using the ECDSA signature algorithm with SHA-256. Change-Id: Id88672a3deb70681c78d5ea0d739e10f839e4567
2013-09-12Make SELinux automatic if presentDees Troy1-3/+5
2013-09-10Kang in older minzip for building in CM9 & CM7Dees Troy1-1/+5
CM7 and CM9 do not have libselinux needed in the newer minzip.
2013-09-05allow CheckKey to request mounting /systemDoug Zongker1-0/+1
Also provide a default implementation of CheckKey that's reasonable for many devices (those that have power and volume keys). Change-Id: Icf6c7746ebd866152d402059dbd27fd16bd51ff8
2013-08-29Change to use HAVE_SELINUX build flagDees_Troy1-1/+1
2013-08-25Add a TW_NO_TIMEOUT optionRicardo Gomez1-0/+3
Change-Id: Ifb3a5bd9f1e6c2e9810c90b0aec198e91d5956fc
2013-08-24Add SELinux supportDees_Troy1-4/+9
Change-Id: I11e1a3d018d921d96ba08915925b14bf633be6ed
2013-08-11Add libselinux for CM10.2 treeDees_Troy1-0/+5
Change-Id: I94979806935546fa40a87611be5185c14b557377
2013-08-11Remove libjpegtwrp and use CM provided libjpegDees_Troy1-2/+1
2013-07-01Fix MTD MountingDees_Troy1-1/+1
Pulled part of change from kokotas in this patch set: http://review.teamw.in/#/c/586/ Change-Id: If1c5b1563df16f9c561c94f61010f6a99f36efa0
2013-07-01FB2PNG: Add fb2png source to TWRPTalustus1-0/+5
* Add Source of fb2png to TWRP tree * Android.mk by PhilZ-cwm6 * Makefile for CrossCompiling via external toolchan by me (Talustus) Change-Id: If9680688df6e4c9c567f74f46dfc303566b868ba
2013-06-22Support encrypted backup filesDees_Troy1-1/+7
Also includes features merged from: Update twrpTar by kokotas Revised function entryExists(). Added function to get archive's uncompressed size. Added option to exclude item(s) from the archive. Revised forks() http://review.teamw.in/#/c/590/ Change-Id: I01fa2c81643161984eff2625247af75990684bd9
2013-04-10Add liblogYing Wang1-0/+1
Bug: 8580410 Change-Id: Ie60dade81c06589cb0daee431611ded34adef8e6
2013-04-04Add new SliderValue GUI widgetVojtech Bocek1-1/+0
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Ic5d44314f501341140dd7059d1cb753341f5844c
2013-04-04Move all AOSP code out of recovery binaryDees_Troy1-26/+30
Improves license compatibility between GPL and Apache Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0
2013-03-11add no fb blankingbigbiff bigbiff1-0/+3
Change-Id: Iaf771257d8f904807ca6f6c1a6c3d7993abadb85
2013-03-07use md5.c for computation of md5sumsbigbiff bigbiff1-0/+1
create a framework for computing digests and reading digests in TWRP add space for backwards compatibility with bb md5sum Change-Id: Ia18e3f430eed5eba22e5052d39b9b8d88ecd4536
2013-03-01Add option for custom battery pathDees_Troy1-0/+3
2013-02-27Add fast scroll bar to fileselectorVojtech Bocek1-1/+3
Also fix build problems with libblkid in CM7 Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I1cd4573e25b247171e4bd8cc05b70543f897a454
2013-02-25use libblkid to get filesystem typebigbiff bigbiff1-2/+3
we can now use libblkid to detect exfat
2013-02-20Configurable timeout and brightness settingsDees_Troy1-0/+6
Change-Id: I924297ab0dcf920cd4b4b617949c3b16cbc68e43
2013-02-20Move to using the new unified fstab in recovery.Ken Sumrall1-0/+2
Instead of reading it's own fstab, have recovery invoke fs_mgr to read the unified fstab. Change-Id: I80c75d2c53b809ac60a4a69f0ef7ebfa707c39e9
2013-02-19support devices without bootpartitionChampionSwimmer1-0/+3
if device has no /boot partition, then add the following flag in BoardConfig.mk TW_HAS_NO_BOOT_PARTITION Signed-off-by: ChampionSwimmer <android@championswimmer.tk> Change-Id: I92b36b2e6ca690e2422b36004ae9bb315d24a7c2
2013-02-19Add TW_USE_MODEL_HADWARE_ID_FOR_DEVICE_ID parameter for correct model identificationAnatoly Smaznov1-2/+4
Change-Id: Ic6440c624b5cfbdb0f24681461748a0da16bf95e
2013-02-07Add write buffer for tar writesDees_Troy1-1/+2
update fuse to 2.9.2 catch return from unlink so that we don't print error messages when things work Change-Id: I1115039a0fa5d9d73f78ef1abd79755d7ffd9d96
2013-02-01Fix fail over to vfat from exfatDees_Troy1-0/+3
Fix issues with MD5 checking using chdir and leaving the working dir in a subfolder that prevented unmounting sometimes. Change-Id: I01a563d722f474297ed3f7a30064c3a61748ade3
2013-01-28exFAT improvements, fixesDees_Troy1-7/+7
Move Exec_Cmd to libcrecovery __popen Provide opt out build flag for exFAT Default fstype to exfat on external storage if exfat support is present and fstype is vfat or auto Fix invalid unmount errors Improve handling of unencrypted sdcards on Samsung devices
2013-01-22move libexfat and fuse to be compiled with mkexfatfsbigbiff bigbiff1-3/+3
2013-01-19change fuse to be compiled with TW_INCLUDE_FUSE_EXFATbigbiff bigbiff1-2/+2
update exfat_fuse to newest updates Always compile mkexfatfs
2013-01-10Add libsparse if it existsDees_Troy1-0/+4
2013-01-09Add libtar to TWRP instead of using busybox tarbigbiff bigbiff1-5/+14
Add proper mkdosfs tool Add fuse to TWRP Add experimental exfat-fuse to TWRP Convert all system() functions to use new Exec_Cmd function
2013-01-08Add Samsung TouchWiz decryptiona39552691-2/+14
Change-Id: I418680e59372160dabfe3e2d5f0208229aa151ae
2013-01-05Work around MEMERASE ioctl for rk3066 compatibilitySergey 'Jin' Bostandzhyan1-0/+4
Due to a kernel bug and no available sources we have to work around the MEMERASE ioctl - if used, it hangs and never returns. I straced the original recovery executable and could see that it is simply calling write() with a bunch of zeroes instead of using MEMERASE. Added a hack that does the same and now the resulting TWRP recovery image works. Change-Id: I1b1c1c9e870e350776346bdca5d442c7ef565aa0
2012-10-16Remove HAVE_SELINUX guardsKenny Root1-12/+1
Change-Id: Ia96201f20f7838d7d9e8926208977d3f8318ced4
2012-10-10redo fix permissions in c++ for faster changesbigbiff bigbiff1-0/+1
2012-10-02Create busybox symlinks during compileDees_Troy1-0/+14
2012-09-28Revert busybox for CM7 compatibility, add exclamation point to format dataDees_Troy1-14/+0
2012-09-27Create symlinks at compile time for busyboxDees_Troy1-0/+11
2012-09-27Update sdcard partitioning to C++Dees_Troy1-1/+0
2012-09-27Port reboot functions to C++Dees_Troy1-3/+1
2012-09-26Add backup size checkingDees_Troy1-1/+1
Converted bootloader.cpp to TWRP and removed AOSP fstab parsing from startup
2012-09-26Convert makelist to C++Dees_Troy1-1/+1
2012-09-20Add and improve OpenRecoveryScript supportDees_Troy1-1/+2
Improve zip finding in ORS engine Add support for restoring with just a backup name
2012-09-18Cleanup extra-functionsDees_Troy1-1/+0
2012-09-17Update backup and restore code, adb sideloadDees_Troy1-3/+3
Fixed a problem with using make_ext4fs by making its lib a dynamic lib. Added ADB sideload zip install feature - no way to cancel it yet. Improve backup and restore code.
2012-09-14Move to shared libmincryptDees_Troy1-4/+4
Remove mincrypt source from TWRP and add rule to make libmincrypt as a shared library. No more crashes during zip signature verification and less code to maintain in TWRP.
2012-09-14Add wipe functions, compiles in CM7, text shows in UI, zips installDees_Troy1-1/+2
Zip install works, had to move mincrypt code into TWRP to prevent a crash when checking the zip signature. Added wipe functions Made it compile in CM7 Made text show up in console and logging
2012-09-12Make text appear in GUI console, Zip install works.Dees_Troy1-2/+5
Move TW zip install code to C++ so that it can use the ui->functions. Bring in mincrypt code to fix a crash during signature checking.
2012-09-11Move device ID code to data managerDees_Troy1-0/+3
2012-09-06Hax to make it bootDees_Troy1-1/+1
2012-09-05TWRP-ify AOSP codeDees_Troy1-24/+168
Pull in most TWRP sources Stub out partition management code Make it compile -- probably will not boot Kind of a mess but have to start somewhere
2012-08-24Add libm due to libpng dependency.Stephen Hines1-0/+1
Change-Id: I0bdc2df5ef358813587f613a1b50eaa850e95782
2012-08-14Use the static version of libsparseJoe Onorato1-1/+1
Change-Id: I664f8dc7939f8f902e4775eaaf6476fcd4ab8ed2
2012-08-14Multiple modules with the same name are going away.Joe Onorato1-35/+59
Change-Id: I4154db066865d6031caa3c2c3b94064b2f28076e
2012-07-24Use the static version of libsparseJoe Onorato1-1/+1
Change-Id: I664f8dc7939f8f902e4775eaaf6476fcd4ab8ed2
2012-07-22Multiple modules with the same name are going away.Joe Onorato1-35/+59
Change-Id: I4154db066865d6031caa3c2c3b94064b2f28076e
2012-07-18Link against libsparseColin Cross1-2/+2
libext4_utils requires libsparse, link against it as well. Change-Id: I4d6aec0e5edcf1ed42118b7b77adcded2858d3dd
2012-03-30Extend recovery and updater to support setting file security contexts.Stephen Smalley1-1/+2
Extend minzip, recovery, and updater to set the security context on files based on the file_contexts configuration included in the package. Change-Id: Ied379f266a16c64f2b4dca15dc39b98fcce16f29
2012-01-31libz is a superset of libunz, so we don't need both.Elliott Hughes1-2/+2
Change-Id: I082995c338feaf5d11288300768624cd51b027a4
2012-01-24Add libselinux to LOCAL_STATIC_LIBRARIES wherever libext4_utils is used.Stephen Smalley1-0/+11
libext4_utils now calls libselinux in order to determine the file security context to set on files when creating ext4 images. Change-Id: I09fb9d563d22ee106bf100eacd4cd9c6300b1152
2012-01-18support "sideload over ADB" modeDoug Zongker1-2/+4
Rather than depending on the existence of some place to store a file that is accessible to users on an an unbootable device (eg, a physical sdcard, external USB drive, etc.), add support for sideloading packages sent to the device with adb. This change adds a "minimal adbd" which supports nothing but receiving a package over adb (with the "adb sideload" command) and storing it to a fixed filename in the /tmp ramdisk, from where it can be verified and sideloaded in the usual way. This should be leave available even on locked user-build devices. The user can select "apply package from ADB" from the recovery menu, which starts minimal-adb mode (shutting down any real adbd that may be running). Once minimal-adb has received a package it exits (restarting real adbd if appropriate) and then verification and installation of the received package proceeds. always initialize usb product, vendor, etc. for adb in recovery Set these values even on non-debuggable builds, so that the mini-adb now in recovery can work.
2012-01-10support "sideload over ADB" modeDoug Zongker1-2/+4
Rather than depending on the existence of some place to store a file that is accessible to users on an an unbootable device (eg, a physical sdcard, external USB drive, etc.), add support for sideloading packages sent to the device with adb. This change adds a "minimal adbd" which supports nothing but receiving a package over adb (with the "adb sideload" command) and storing it to a fixed filename in the /tmp ramdisk, from where it can be verified and sideloaded in the usual way. This should be leave available even on locked user-build devices. The user can select "apply package from ADB" from the recovery menu, which starts minimal-adb mode (shutting down any real adbd that may be running). Once minimal-adb has received a package it exits (restarting real adbd if appropriate) and then verification and installation of the received package proceeds. Change-Id: I6fe13161ca064a98d06fa32104e1f432826582f5
2011-11-04move key processing to RecoveryUIDoug Zongker1-2/+3
Move the key for handling keys from ScreenRecoveryUI to RecoveryUI, so it can be used by devices without screens. Remove the UIParameters struct and replace it with some new member variables in ScreenRecoveryUI. Change-Id: I70094ecbc4acbf76ce44d5b5ec2036c36bdc3414
2011-11-01fix verifier testDoug Zongker1-2/+2
Needs to link with libminui and ui.cpp now. Change-Id: I5005e12cf8adb13d320921e3f9174e8c7304d7bf
2011-11-01move key processing to RecoveryUIDoug Zongker1-0/+1
Move the key for handling keys from ScreenRecoveryUI to RecoveryUI, so it can be used by devices without screens. Remove the UIParameters struct and replace it with some new member variables in ScreenRecoveryUI. Change-Id: I4c0e659edcbedc0b9e86ed261ae4dbb3c6097414
2011-10-31C++ class for device-specific codeDoug Zongker1-7/+7
Replace the device-specific functions with a class. Move some of the key handling (for log visibility toggling and rebooting) into the UI class. Fix up the key handling so there is less crosstalk between the immediate keys and the queued keys (an increasing annoyance on button-limited devices). Change-Id: I698f6fd21c67a1e55429312a0484b6c393cad46f
2011-10-31temporarily remove verifier_test binaryDoug Zongker1-6/+6
Change-Id: I61f249861b27180225fb786901275d2da611531b
2011-10-31refactor ui functions into a classDoug Zongker1-1/+1
Move all the functions in ui.c to be members of a ScreenRecoveryUI class, which is a subclass of an abstract RecoveryUI class. Recovery then creates a global singleton instance of this class and then invoke the methods to drive the UI. We use this to allow substitution of a different RecoveryUI implementation for devices with radically different form factors (eg, that don't have a screen). Change-Id: I76bdd34eca506149f4cc07685df6a4890473f3d9
2011-10-31C++ class for device-specific codeDoug Zongker1-1/+1
Replace the device-specific functions with a class. Move some of the key handling (for log visibility toggling and rebooting) into the UI class. Fix up the key handling so there is less crosstalk between the immediate keys and the queued keys (an increasing annoyance on button-limited devices). Change-Id: I8bdea6505da7974631bf3d9ac3ee308f8c0f76e1
2011-10-31turn recovery into a C++ binaryDoug Zongker1-7/+7
Change-Id: I423a23581048d451d53eef46e5f5eac485b77555
2011-10-29refactor ui functions into a classDoug Zongker1-1/+1
Move all the functions in ui.c to be members of a ScreenRecoveryUI class, which is a subclass of an abstract RecoveryUI class. Recovery then creates a global singleton instance of this class and then invoke the methods to drive the UI. We use this to allow substitution of a different RecoveryUI implementation for devices with radically different form factors (eg, that don't have a screen). Change-Id: I7fd8b2949d0db5a3f47c52978bca183966c86f33
2011-10-28turn recovery into a C++ binaryDoug Zongker1-7/+7
Change-Id: I68a67a4c8edec9a74463b3d4766005ce27b51316
2011-07-12Remove the simulator target from all makefiles.Jeff Brown1-4/+0
Bug: 5010576 Change-Id: Ib465fdb42c8621899bea15c04a427d7ab1641a8c
2011-02-09Fix x86 build.Ying Wang1-3/+0
Change-Id: Iada6268b0a72ee832113ea397334cc7950a37051
2011-01-18remove encrypted filesystem code from recoveryDoug Zongker1-2/+1
This was never used; encrypted filesystems are being done a different way now. Change-Id: I519c57b9be44d001f0b81516af7bfc252069892b
2010-09-21remove the notion of "root path"; support mixed flash typesDoug Zongker1-2/+3
Remove the wacky notion of "roots" and "root paths" (those things that look like "FOO:some/path" instead of just "/foo/some/path"). Let each device specify its own table of available partitions and how to mount them (needed for devices that use both MTD/yaffs2 and EMMC/ext4 partitions). (Cherrypicked from gingerbread w/slight edits.) Change-Id: I2479ce76b13e73f1d12035c89386c3a82b3edf51
2010-09-21remove the notion of "root path"; support mixed flash types (do not merge)Doug Zongker1-2/+3
Remove the wacky notion of "roots" and "root paths" (those things that look like "FOO:some/path" instead of just "/foo/some/path"). Let each device specify its own table of available partitions and how to mount them (needed for devices that use both MTD/yaffs2 and EMMC/ext4 partitions). Change-Id: I18b0a572a71c5e087e0b7ae11b1774388339bfd1
2010-08-02Working ASLR implementationHristo Bojinov1-0/+1
Separate files for retouch functionality are in minelf/* ASLR for shared libraries is controlled by "-a" in ota_from_target_files. Binary files are self-contained. Retouch logic can recover from crashes. Signed-off-by: Hristo Bojinov <hristo@google.com> Change-Id: I76c596abf4febd68c14f9d807ac62e8751e0b1bd
2010-06-30support userdata and cache partitions using emmc/ext4 instead of mtd/yaffsDoug Zongker1-1/+8
Change-Id: I827af624c9ec7c64decb702de8c0310cf19b4141
2010-04-02DO NOT MERGEOscar Montemayor1-1/+1
Encrypted File Systems integration. Recovery changes. Change-Id: I932f73a6f937aac061128e1134eab08c30f0471d
2010-03-27DO NOT MERGEOscar Montemayor1-2/+1
Removing unused recovey options. Please refer to Bug#2502219 for more info. Change-Id: I2fe3cdb0c8b93ed7e1cc4093824fbe181f5f0aea
2010-03-15Encrypted File Systems part 3. Recovery changes.Oscar Montemayor1-1/+1
Change-Id: I932f73a6f937aac061128e1134eab08c30f0471d
2010-02-18relocate applypatch; add type system and new functions to edifyDoug Zongker1-0/+1
- Move applypatch to this package (from build). - Add a rudimentary type system to edify: instead of just returning a char*, functions now return a Value*, which is a struct that can carry different types of value (currently just STRING and BLOB). Convert all functions to this new scheme. - Change the one-argument form of package_extract_file to return a Value of the new BLOB type. - Add read_file() to load a local file and return a blob, and sha1_check() to test a blob (or string) against a set of possible sha1s. read_file() uses the file-loading code from applypatch so it can read MTD partitions as well. This is the start of better integration between applypatch and the rest of edify. b/2361316 - VZW Issue PP628: Continuous reset to Droid logo: framework-res.apk update failed (CR LIBtt59130) Change-Id: Ibd038074749a4d515de1f115c498c6c589ee91e5
2010-02-03bump updater API version to 3; deprecate firmware update commandDoug Zongker1-2/+1
Remove support for the HTC-specific "firmware" update command and the corresponding edify function write_firmware_update(). This functionality is now done by an edify extension library that lives in vendor/htc. Change-Id: I80858951ff10ed8dfff98aefb796bef009e05efb
2009-12-10Recovery changes for Encrypted File Systems.Oscar Montemayor1-8/+9
This change enables/disables the Encrypted file systems feature. It reads some properties form the data partition, wipes the partition out, and then rewrites the proper properties again into the data partition to signal that encrypted FS are enabled.
2009-12-10add a simple unit test for the OTA package verifierDoug Zongker1-0/+16
2009-11-13eclair snapshotJean-Baptiste Queru1-4/+10
2009-07-15remove amendDoug Zongker1-3/+1
Yank all the code to install OTA packages out of the recovery binary itself. Now packages are installed by a binary included in the package (run as a child of recovery), so we can make improvements in the installation process without waiting for a new release to use them.
2009-06-18let the "firmware" command take the file straight from the packageDoug Zongker1-0/+3
To do a firmware-install-on-reboot, the update binary tells recovery what file to install before rebooting. Let this file be specified as "PACKAGE:<foo>" to indicate taking the file out of the OTA package, avoiding an extra copy to /tmp. Bump the API version number to reflect this change.
2009-06-12fix sim build in donut, tooDoug Zongker1-4/+4
2009-06-12fix simulator build by excluding more of recoveryDoug Zongker1-3/+4
2009-06-12edify extensions for OTA package installation, part 1Doug Zongker1-0/+2
Adds the following edify functions: mount unmount format show_progress delete delete_recursive package_extract symlink set_perm set_perm_recursive This set is enough to extract and install the system part of a (full) OTA package. Adds the updater binary that extracts an edify script from the OTA package and then executes it. Minor changes to the edify core (adds a sleep() builtin for debugging, adds "." to the set of characters that can appear in an unquoted string).
2009-06-11split out device-specific recovery UI code into vendor directoriesDoug Zongker1-6/+11
Take some device-specific details of the recovery UI (eg, what keys to press to bring up the interface and perform actions, exact text of the menu, etc.) and split them out into separate C functions. Arrange to take implementations of those functions from the appropriate vendor directory at build time. Provide a default implementation in case no vendor-specific one is available.
2009-04-02AI 144132: am: CL 144130 Don't build OTA package keys into the recovery binary; readDoug Zongker1-13/+0
them from an external file in the recovery image. Use the test-keys for all builds. Original author: dougz Merged from: //branches/donutburger/... Automated import of CL 144132
2009-04-02AI 144130: Don't build OTA package keys into the recovery binary; readDoug Zongker1-13/+0
them from an external file in the recovery image. Use the test-keys for all builds. Automated import of CL 144130
2009-03-28AI 143289: am: CL 143128 Use PNG instead of BMP for recovery image icons. This savesDoug Zongker1-1/+1
about 60k from the recovery and system images. Original author: dougz Merged from: //branches/donutburger/... Automated import of CL 143289
2009-03-27AI 143128: Use PNG instead of BMP for recovery image icons. This savesDoug Zongker1-1/+1
about 60k from the recovery and system images. Automated import of CL 143128
2009-03-04auto import from //depot/cupcake/@135843The Android Open Source Project1-0/+60
2009-03-04auto import from //depot/cupcake/@135843The Android Open Source Project1-60/+0
2008-12-18Code drop from //branches/cupcake/...@124589The Android Open Source Project1-0/+3