summaryrefslogtreecommitdiffstats
path: root/etc/init.rc (follow)
Commit message (Collapse)AuthorAgeFilesLines
* mksh: add mkshrc when using TW_USE_TOOLBOXCaptain Throwback2019-03-071-0/+1
| | | | | | | | | | | | | | | Fixes broken shell prompt in Terminal and adb shell Before: https://del.dog/7vphlkc After: https://del.dog/vhkjgo8 Add as prebuilt with suffix "_twrp" to avoid conflict with original mkshrc and rename via POST_INSTALL_CMD Prebuilt version adjusts TMPDIR variable from "/data/local/tmp" to "/tmp" for TWRP Change-Id: I42a1b2a8c114f66dbe659c07485f1dfae8a5d314
* Merge AOSP android-9.0.0_r3Ethan Yonker2018-08-241-2/+3
|\ | | | | | | | | | | Fix conflicts and make it build in 5.1, 6.0, 7.1, 8.1, and 9.0 Change-Id: Ida0a64c29ff27d339b7f42a18d820930964ac6e4
| * Add a /bin symlink for consistency.Elliott Hughes2017-12-061-0/+1
| | | | | | | | | | | | Bug: http://b/63142920 Test: builds Change-Id: I1f96935daca4d79f753e172067e07f8e27ea819e
| * Merge "init.rc: Remove sys.powerctl action" am: 9848209088 am: 9fcc7c8253Tom Cherry2017-04-181-3/+0
| |\ | | | | | | | | | | | | | | | am: 6e575ccd0f Change-Id: Iec1eb05ea5ec85c035d6ae7e232699ab3a6f6878
| | * init.rc: Remove sys.powerctl actionTom Cherry2017-04-181-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Init now handles this property change directly. Bug: 37209359 Bug: 37415192 Test: Init reboots normally. Change-Id: I9a4925897fb83bed180d12c871d9a71126fa4aa8
| | * Write aliases before ffs mount in recoveryJerry Zhang2017-01-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary to support kernel changes that allow for multiple ffs functions. Some kernels require aliases in order to name function instances before mount time. Test: Reboot into recovery, verify adb works Bug: 34070894 Change-Id: I8376304d92af9b3e8c734fdb8cc77f0dc8bc4850
* | | Update to AOSP 8.0 baseEthan Yonker2017-09-081-6/+0
|\ \ \ | | | | | | | | | | | | Change-Id: I29fe722b4eb9718765327902779046840a01433e
| * | | init.rc: Remove sys.powerctl actionTom Cherry2017-04-181-3/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Init now handles this property change directly. Bug: 37209359 Bug: 37415192 Test: Init reboots normally. Change-Id: I9a4925897fb83bed180d12c871d9a71126fa4aa8 (cherry picked from commit 4608daf0fe6b5feb11afbfb6ae613d7a5161c95d)
| * | Write aliases before ffs mount in recoveryJerry Zhang2017-01-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary to support kernel changes that allow for multiple ffs functions. Some kernels require aliases in order to name function instances before mount time. Test: Reboot into recovery, verify adb works Bug: 34070894 Change-Id: I8376304d92af9b3e8c734fdb8cc77f0dc8bc4850
| * | healthd: change how charger is launched in recovery.Sandeep Patil2016-11-011-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | This is triggered by changes in healthd which spits out 2 binaries. Recovery needs to use static binary which is now renamed to 'charger'. So, change the .rc file to match the rename. Update the seclable according to new healthd-charger split Test: Tested recovery on angler using 'reboot recovery' to ensure healthd is working as before Change-Id: I9e6018156e677e7224dd2e5894941ed2a7cac1d0 Signed-off-by: Sandeep Patil <sspatil@google.com>
| * init: move healthd to late-initAndriy Naborskyy2016-10-111-1/+0
| | | | | | | | | | | | | | | | | | | | Starting healthd in early-init is not needed and can delay coldboot done Now healthd is starting at boot as usual service. Test: check kmsg that healthd starting after /dev/.coldboot_done Bug: 30292927 Change-Id: I367d022f5885122da49181db3db536012e83f564
| * init now uses libprocessgroup, so set up /acct.Elliott Hughes2016-06-161-0/+3
| | | | | | | | Change-Id: Iec1492dfaf2ceae6f4d8618dd725d07316ee960b
| * Restore labels on /postinstall during recovery.Alex Deymo2016-03-021-0/+3
| | | | | | | | | | | | | | | | | | This patch mirrors what was done in the main init.rc to relabel /postinstall. Bug: 27178350 Bug: 27177071 Change-Id: I39cd03f3c55a42c03367957e8c259c9a3155203c
* | etc: remove "." from LD_LIBRARY_PATHthat2017-05-161-1/+1
| | | | | | | | | | | | | | We shouldn't load libraries from some random working directory. For example it breaks busybox when you're in /system/lib. Change-Id: Ia1f8f4fda9e6182c0cd8c5ac727c2b1eb09c84a2
* | crypto: Use system's vold for decryptionnkk712017-03-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | init: Remove duplicate trigger of load_system_props_actionMatt Mower2017-01-181-3/+0
| | | | | | | | Change-Id: I29ba5c4d78be24de3dabc0083fe291fb2b65fa54
* | Make it backwards compatible with 4.4Ethan Yonker2016-08-251-3/+1
| | | | | | | | Change-Id: I668604cddc8e8afbf78709f3f872bea4e9f4aa06
* | Update to 7.0Ethan Yonker2016-08-241-0/+10
|\ \ | | | | | | | | | Change-Id: I621cc47352f7ac552d9602485825ae3a6f9ae516
| * | Restore labels on /postinstall during recovery.Alex Deymo2016-03-051-0/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | This patch mirrors what was done in the main init.rc to relabel /postinstall. Bug: 27178350 Bug: 27177071 (cherry picked from commit 6bcc8af6e5a5bf9cc0987305cdfa24d4f6e4afa9) Change-Id: I8320559f014cfb14216dcc350e016fc1db05cb14
| * am 90c75b0b: Change init sequence to support file level encryptionPaul Lawrence2015-07-131-3/+3
| |\ | | | | | | | | | | | | * commit '90c75b0beb375b8d261e2df92292e9b542470f6e': Change init sequence to support file level encryption
| | * Change init sequence to support file level encryptionPaul Lawrence2015-07-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | File level encryption must get the key between mounting userdata and calling post_fs_data when the directories are created. This requires access to keymaster, which in turn is found from a system property. Split property loaded into system and data, and load in right order. Bug: 22233063 Change-Id: I409c12e3f4a8cef474eb48818e96760fe292cc49
| * | am 10cf0942: Merge "Revert "Change init sequence to support file level encryption"" into mnc-devPaul Lawrence2015-07-071-3/+3
| |\| | | | | | | | | | | | | * commit '10cf0942a7f4b2bfd539416e4767aaaf866a6527': Revert "Change init sequence to support file level encryption"
| * | am d6b2b65d: Merge "Change init sequence to support file level encryption" into mnc-devPaul Lawrence2015-07-061-3/+3
| |\ \ | | | | | | | | | | | | | | | | * commit 'd6b2b65dc40c5af7feecf634b8ae55bf14fe8e6c': Change init sequence to support file level encryption
| * | | init sets the default PATH itself, better.Elliott Hughes2015-05-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | This fixes 'su' and 'strace' in the recovery image. Change-Id: I83c2664d32a15da92bb6092fbdfc772184013c88
* | | | Add TWRP flags to enable logd and/or logcat in recoveryCaptain Throwback2016-02-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | init: Add new props triggersMatt Mower2015-12-231-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both Omni and CM split props loading into load_system_props_action and load_persist_props_actions in Android 6.0 instead of all_props action. Add these triggers. Unrecognized triggers do not cause failures in init for versions of Android which do not have these. Change-Id: I9682690ff7d378dc0d5e1598754f7a29600c1c2d
* | | | Fix SELinux issues for some devicesEthan Yonker2015-10-261-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge up to AOSP marshmallow-releaseEthan Yonker2015-10-091-8/+1
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to maintain compatibility with older trees, we now have minadbd.old and minui.old. I had to use a TARGET_GLOBAL_CFLAG to handle ifdef issues in minui/minui.d because healthd includes minui/minui.h and there was no other alternative to make minui.h compatible with older trees without having to modify healthd rules which is outside of TWRP. Note that the new minui does not currently have support for qcom overlay graphics. Support for this graphics mode will likely be added in a later patch set. If you are building in a 6.0 tree and have a device that needs qcom overlay graphics, be warned, as off mode charging may not work properly. A dead battery in this case could potentially brick your device if it is unable to charge as healthd handles charging duties. Update rules for building toolbox and add rules for making toybox Use permissive.sh in init.rc which will follow symlinks so we do not have to worry about what binary is supplying the setenforce functionality (toolbox, toybox, or busybox). Fix a few warnings in the main recovery binary source code. Fix a few includes that were missing that prevented compiling in 6.0 Change-Id: Ia67aa2107d260883da5e365475a19bea538e8b97
| * | | Revert "Change init sequence to support file level encryption"Paul Lawrence2015-07-071-3/+3
| | |/ | |/| | | | | | | | | | | | | This reverts commit 98c1a3de23ae8b589c36e74939193c44d25cac65. Change-Id: I524060418de18f97c3865ebc4435f501015e92ee
| * | Change init sequence to support file level encryptionPaul Lawrence2015-07-061-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | File level encryption must get the key between mounting userdata and calling post_fs_data when the directories are created. This requires access to keymaster, which in turn is found from a system property. Split property loaded into system and data, and load in right order. Bug: 22233063 Change-Id: I409c12e3f4a8cef474eb48818e96760fe292cc49
| * Revert "Revert "init re-execs to set its security context now.""Elliott Hughes2015-04-241-7/+0
| | | | | | | | | | | | | | This reverts commit c819dbe95bf80645178b0180f519ab2983da01a0. Bug: http://b/19702273 Change-Id: I5c75b148a12e644dd247a4df4f67dc9b4b9ff8cf
| * Revert "init re-execs to set its security context now."Nick Kralevich2015-04-241-0/+7
| | | | | | | | | | | | | | | | shamu isn't booting now This reverts commit c57453d5377a13445c4b1d3f73c0e0ab19aa0c1e. Change-Id: I8efbf6260f5fcf983e5056fac6d03916415b944e
| * init re-execs to set its security context now.Elliott Hughes2015-04-241-7/+0
| | | | | | | | Change-Id: I0a014f8dddfe775159903b5d6fa632733fef692c
* | Allow devices to override USB initMatt Mower2015-07-141-38/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix mass storage in recoveryramsudharsan2015-06-181-1/+1
| | | | | | | | | | | | | | | | | | The proper order is mass_storage,adb. Some systems cannot recognize the mass storage otherwise. Change-Id: I2a79ac6dfd7247032f774125c75586e45fea7633 Signed-off-by: ramsudharsan <ramsudharsanm@gmail.com>
* | Merge tag 'android-5.1.0_r1' of https://android.googlesource.com/platform/bootable/recovery into aospEthan Yonker2015-03-131-1/+7
|\| | | | | | | | | | | | | | | | | | | Android 5.1.0 release 1 Conflicts: minui/graphics_fbdev.c recovery.cpp Change-Id: Iff8a34fa59d93fb1165e06fef1fafd50292324f0
| * Bump up max_map_count value.Jesse Zhao2015-01-091-0/+1
| | | | | | | | | | Change-Id: Id3e2c0795b817db9a85bc84cba2aa05d20179d39 Bug: 18503789
| * init.rc: Inidicate that booting is complete wrt firwmare requestsJP Abgrall2014-10-211-1/+6
| | | | | | | | | | | | | | | | | | | | ueventd will wait for /dev/.booting to go away before giving up on loading firmware. The issue was introduced in Ifdd5dd1e95d7e064dde5c80b70198882d949a710 which forgot to update recovery's init.rc Bug: 17993625 Change-Id: I91205fe6eea50aaef9b401d650ec8d6843a92a57
* | Mount pstore filesystem while in recoveryVojtech Bocek2015-03-111-0/+2
| | | | | | | | | | | | | | | | | | | | * pstore filesystem is evolution of ram_console and contains kmsg from previous boot (previously in /proc/last_kmsg). * Lollipop init.rc does this. If device doesn't have pstore fs, it will simply be ignored Change-Id: Id3bf8763ccde54f87fde5cdf2db511649c376aa4 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
* | Do not toggle USB ID during MTP startup if not neededEthan Yonker2015-01-021-3/+3
| | | | | | | | | | | | | | | | In most cases MTP is enabled so it is better to start our init.rc with MTP enabled and try not to toggle USB IDs during TWRP boot so that we can keep adb running to make debugging easier. Change-Id: Idf122c5ad4deeef7e1ed775d495989c502ddfb19
* | Recovery init.rc setenforce 0 to make SELinux permissiveEthan Yonker2014-12-191-0/+4
| | | | | | | | | | | | | | | | This will only work if the sepolicy is changed by also applying: https://gerrit.omnirom.org/10924 Otherwise the sepolicy will deny the request. Change-Id: I8a52cdfdd38bda19aa89686ff0ad31b90e1aa3b7
* | Make the android-5.0 branch compile in 4.4 to 4.1Ethan Yonker2014-12-021-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge in lollipop and attempt to fix merge conflictsEthan Yonker2014-11-061-3/+35
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will probably not compile and may need additional work. For tracking purposes so we know what might still need looking at as none of this has been compiled and tested, here is a list of the merge conflicts that I attempted to fix before pushing this set of changes: git pull aosp lollipop-release remote: Finding sources: 100% (992/992) remote: Total 992 (delta 473), reused 992 (delta 473) Receiving objects: 100% (992/992), 1.51 MiB | 516.00 KiB/s, done. Resolving deltas: 100% (473/473), completed with 42 local objects. From https://android.googlesource.com/platform/bootable/recovery * branch lollipop-release -> FETCH_HEAD * [new branch] lollipop-release -> aosp/lollipop-release Auto-merging verifier_test.cpp CONFLICT (content): Merge conflict in verifier_test.cpp Auto-merging verifier.h CONFLICT (content): Merge conflict in verifier.h Auto-merging verifier.cpp CONFLICT (content): Merge conflict in verifier.cpp Auto-merging updater/updater.c Auto-merging updater/install.c CONFLICT (content): Merge conflict in updater/install.c Auto-merging updater/Android.mk CONFLICT (content): Merge conflict in updater/Android.mk Auto-merging uncrypt/Android.mk CONFLICT (content): Merge conflict in uncrypt/Android.mk Auto-merging ui.cpp CONFLICT (content): Merge conflict in ui.cpp Auto-merging screen_ui.cpp Auto-merging roots.cpp CONFLICT (content): Merge conflict in roots.cpp CONFLICT (rename/delete): res-hdpi/images/progress_fill.png deleted in HEAD and renamed in cddb68b5eafbeba696d5276bda1f1a9f70bbde42. Version cddb68b5eafbeba696d5276bda1f1a9f70bbde42 of res-hdpi/images/progress_fill.png left in tree. CONFLICT (rename/delete): res-hdpi/images/progress_empty.png deleted in HEAD and renamed in cddb68b5eafbeba696d5276bda1f1a9f70bbde42. Version cddb68b5eafbeba696d5276bda1f1a9f70bbde42 of res-hdpi/images/progress_empty.png left in tree. CONFLICT (rename/delete): res-hdpi/images/icon_error.png deleted in HEAD and renamed in cddb68b5eafbeba696d5276bda1f1a9f70bbde42. Version cddb68b5eafbeba696d5276bda1f1a9f70bbde42 of res-hdpi/images/icon_error.png left in tree. Auto-merging recovery.cpp CONFLICT (content): Merge conflict in recovery.cpp Auto-merging minui/resources.c CONFLICT (content): Merge conflict in minui/resources.c Auto-merging minui/minui.h CONFLICT (content): Merge conflict in minui/minui.h Auto-merging minui/graphics.c CONFLICT (content): Merge conflict in minui/graphics.c Auto-merging minui/Android.mk CONFLICT (content): Merge conflict in minui/Android.mk Removing minelf/Retouch.h Removing minelf/Retouch.c Auto-merging minadbd/usb_linux_client.c CONFLICT (content): Merge conflict in minadbd/usb_linux_client.c Auto-merging minadbd/adb.h CONFLICT (content): Merge conflict in minadbd/adb.h Auto-merging minadbd/adb.c CONFLICT (content): Merge conflict in minadbd/adb.c Auto-merging minadbd/Android.mk CONFLICT (content): Merge conflict in minadbd/Android.mk Removing make-overlay.py Auto-merging install.h CONFLICT (content): Merge conflict in install.h Auto-merging etc/init.rc CONFLICT (content): Merge conflict in etc/init.rc Auto-merging bootloader.h Auto-merging applypatch/applypatch.c Auto-merging applypatch/Android.mk CONFLICT (content): Merge conflict in applypatch/Android.mk Auto-merging adb_install.cpp CONFLICT (content): Merge conflict in adb_install.cpp Auto-merging Android.mk CONFLICT (content): Merge conflict in Android.mk Automatic merge failed; fix conflicts and then commit the result. Change-Id: I3e0e03e48ad8550912111c7a5c9a140ed0267e2c
| * sideload without holding the whole package in RAMDoug Zongker2014-07-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a new method of sideloading over ADB that does not require the entire package to be held in RAM (useful for low-RAM devices and devices using block OTA where we'd rather have more RAM available for binary patching). We communicate with the host using a new adb service called "sideload-host", which makes the host act as a server, sending us different parts of the package file on request. We create a FUSE filesystem that creates a virtual file "/sideload/package.zip" that is backed by the ADB connection -- users see a normal file, but when they read from the file we're actually fetching the data from the adb host. This file is then passed to the verification and installation systems like any other. To prevent a malicious adb host implementation from serving different data to the verification and installation phases of sideloading, the FUSE filesystem verifies that the contents of the file don't change between reads -- every time we fetch a block from the host we compare its hash to the previous hash for that block (if it was read before) and cause the read to fail if it changes. One necessary change is that the minadbd started by recovery in sideload mode no longer drops its root privileges (they're needed to mount the FUSE filesystem). We rely on SELinux enforcement to restrict the set of things that can be accessed. Change-Id: Ida7dbd3b04c1d4e27a2779d88c1da0c7c81fb114
| * am 3e0fc39e: am 974fe112: Merge "Fix recovery mode."Riley Andrews2014-06-251-1/+19
| |\ | | | | | | | | | | | | * commit '3e0fc39ec27c0ed96ffd2a617f1841fe3bf3c8f6': Fix recovery mode.
| | * Fix recovery mode.Riley Andrews2014-06-251-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | Duplicate changes made to init.rc for https://android-review.googlesource.com/98852 in the init.rc used for recovery mode. Bug 15849856 Change-Id: Ia376ddf6373a28718653f7fb1435bf7ecb33d813
| * | recovery: enable panic_on_oopsColin Cross2014-06-241-0/+2
| | | | | | | | | | | | | | | | | | Set panic_on_oops=1 to reboot if the kernel panics. Change-Id: Id9e8689a570229db2ea2a3d72b52784f8a1ed107
| * | am ed75be6d: am ac189bf6: Merge "recovery: Fix adb with linux 3.10"Benoit Goby2014-02-211-0/+6
| |\| | | | | | | | | | | | | * commit 'ed75be6de9d883a2524065940d732593fa26ac19': recovery: Fix adb with linux 3.10
| | * recovery: Fix adb with linux 3.10Benoit Goby2014-02-201-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | In kernel 3.10, f_adb has been removed and adbd can use functionfs instead. Mount functionfs on boot for adbd. On older kernels, mount will fail silently and adbd will revert to f_adb. Change-Id: I5db57aaf35b35859ea88c7d0e0661d8c553e5811
| * | am f4641299: am 295e74aa: Merge "adbd: switch to su domain when running as root"Nick Kralevich2014-01-241-1/+1
| |\| | | | | | | | | | | | | * commit 'f464129950eaea49b1234fdcfd04ec8723e3c672': adbd: switch to su domain when running as root
| | * adbd: switch to su domain when running as rootNick Kralevich2014-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When adbd runs as root, it should transition into the su domain. This is needed to run the adbd and shell domains in enforcing on userdebug / eng devices without breaking developer workflows. Use the new device_banner command line option. Change-Id: Ib33c0dd2dd6172035230514ac84fcaed2ecf44d6
| * | am a01b6467: am 772f6e2a: Merge "correctly mount tmpfs as /tmp in recovery"Doug Zongker2014-01-141-2/+2
| |\| | | | | | | | | | | | | * commit 'a01b646794fc207da657d7b8ef779c9d842acfde': correctly mount tmpfs as /tmp in recovery
| | * correctly mount tmpfs as /tmp in recoveryDoug Zongker2014-01-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The syntax of init's mount command changed in April 2008 but recovery's init.rc was never updated, so recovery's /tmp has been on the root fs all this time. Fix. Also add /system/bin to the PATH in recovery, which is handy for debugging. Change-Id: I39f7ae435a8ce3bad691e4b7c307db0bd8de1302
| * | am 7e0d3066: am fc729512: Merge "Set SELinux security contexts correctly for init and services."Nick Kralevich2014-01-131-0/+11
| |\| | | | | | | | | | | | | * commit '7e0d30667cf53a182525f87dd0c8cb0e2628a1ed': Set SELinux security contexts correctly for init and services.
| | * Set SELinux security contexts correctly for init and services.Stephen Smalley2014-01-131-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | Otherwise everything is left running in the kernel domain when booting recovery. Change-Id: Ie3d86547d5be0b68dd1875a97afe1e00fc3e4da1 Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
| * | start healthd in recovery modeTodd Poynor2013-09-141-1/+1
| |/ | | | | | | Change-Id: I431ece69b6856fd1ea6079c38cdeb593c15d7385
* | recovery: Fix adb with linux 3.10Benoit Goby2014-10-071-1/+7
| | | | | | | | | | | | | | | | In kernel 3.10, f_adb has been removed and adbd can use functionfs instead. Mount functionfs on boot for adbd. On older kernels, mount will fail silently and adbd will revert to f_adb. Change-Id: I5db57aaf35b35859ea88c7d0e0661d8c553e5811
* | add mtp responder to TWRP.bigbiff bigbiff2014-09-031-2/+21
| | | | | | | | | | | | Big thanks to Dees_Troy for helping with the implementation. Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
* | correctly mount tmpfs as /tmp in recoveryDoug Zongker2014-03-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | The syntax of init's mount command changed in April 2008 but recovery's init.rc was never updated, so recovery's /tmp has been on the root fs all this time. Fix. Also add /system/bin to the PATH in recovery, which is handy for debugging. Change-Id: I9e60d18803906bc75c263f12c8863cfd6a14147b
* | Enable UMS mounting of storage drivesJason Riordan2014-01-211-0/+10
| | | | | | | | Change-Id: I4c369222cf16cb5bd87f007c3b172cd787d20fb1
* | Fix merge conflicts and update for 4.4 kitkatDees Troy2013-11-021-0/+8
|\| | | | | | | | | | | | | | | Make a copy of libmincrypt in TWRP source so we do not have to ifdef verifier.cpp for various versions of mincrypt. Remove reboot tool from toolbox (it was removed from 4.4 and did not compile properly on some devices in older trees)
| * fix secure adb in recoveryDoug Zongker2013-09-111-0/+1
| | | | | | | | | | | | | | | | Recovery's init.rc was missing a line (added to the main system's init.rc in change Ic97fd464440ff4a29fc9da7ad15949ac5215ade3) is required for secure adb to work. Change-Id: Id79b94d2abb4cbe3cca7cabeb4bc5faf7205e56b
| * recovery: fix rebootingDoug Zongker2013-08-301-0/+3
| | | | | | | | | | | | | | | | Change I84c0513acb549720cb0e8c9fcbda0050f5c396f5 moved reboot functionality into init but did not update the recovery partition; so "adb reboot" and /system/bin/reboot in recovery are both broken. Change-Id: Ie2d14627a686ffb5064256b6c399723636dff116
| * start healthd in recoveryTodd Poynor2013-06-191-0/+4
| | | | | | | | Change-Id: I16e3e0ddb8ca062431deb4be83c5be5eb786d76f
| * recovery: import init.recovery.${ro.hardware}.rcColin Cross2012-08-081-0/+2
| | | | | | | | | | | | | | | | | | Some devices need hardware specific services started in recovery, for example watchdogd. Import init.recovery.${ro.hardware}.rc from the recovery init.rc. Bug: 6953625 Change-Id: I4a4cee210238150ffaabe774a44340ec3c8ff78c
* | Clean up init.rcDees Troy2013-10-181-8/+0
| |
* | Update init.rc to fix sideloadDees_Troy2013-06-091-2/+2
| |
* | Allow init.rc inheritance and bring init.rc closer to CM recovery sourceMatt Mower2013-02-171-10/+24
| |
* | Improve storage size code, mount, unmountDees_Troy2012-09-101-1/+0
| | | | | | | | Add flag parsing from recovery.fstab
* | TWRP-ify AOSP codeDees_Troy2012-09-051-15/+13
|/ | | | | | | 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
* run minadbd as shell userDoug Zongker2012-03-201-0/+3
| | | | | | | | Make minadbd drop its root privileges after initializing. We need to make the /tmp directory writable by the shell group so that it can drop the sideloaded file there. Change-Id: I67b292cf769383f0f67fb934e5a80d408a4c131d
* always initialize usb product, vendor, etc. for adb in recoveryDoug Zongker2012-01-101-7/+9
| | | | | | | Set these values even on non-debuggable builds, so that the mini-adb now in recovery can work. Change-Id: If4c915403e6f43bfe922aa347e350a8982443106
* recovery: convert all usages of $prop to ${prop}Dima Zavin2012-01-101-3/+3
| | | | | Change-Id: I9451b8350d33806097598fb9e575b28fd8b292ad Signed-off-by: Dima Zavin <dima@android.com>
* Add missing commands to recovery init.rcMichael Ward2011-07-071-0/+3
| | | | | | Wrote some missing items in recovery, most notably the serial number so that it shows up correctly on adb. Change-Id: If430c0b78191c8d77f781aa605b5081571451775
* init.rc: Simplify logic for starting adbd in recoveryMike Lockwood2011-06-291-25/+6
| | | | | | | | | | Always start adbd if ro.debuggable=1 rather than basing it on user preference in persistent system properties. Use new D001 product ID, which I just allocated for "android recovery mode" Change-Id: I6f1eac5257eaad2e538c0a8dd549ad89219efa3e Signed-off-by: Mike Lockwood <lockwood@android.com>
* fix adb root in recoveryDoug Zongker2011-06-241-0/+4
| | | | | | recovery's init.rc was missing lines that made adb root work. Change-Id: I300e6997e3b5cb9c7b542b2012eed61deb2550f1
* Fix starting adb in recovery modeMike Lockwood2011-06-191-3/+27
| | | | | Change-Id: I8444f44d3194ff16ce54121633d5b255231393f5 Signed-off-by: Mike Lockwood <lockwood@android.com>
* am ecc76ba5: Set adbd to be disabled by default in recoveryKenny Root2010-06-281-0/+1
|\ | | | | | | | | | | | | Merge commit 'ecc76ba5516d62a886f9c290906e0ca50702c9ab' into gingerbread * commit 'ecc76ba5516d62a886f9c290906e0ca50702c9ab': Set adbd to be disabled by default in recovery
| * Set adbd to be disabled by default in recoveryKenny Root2010-06-281-0/+1
| | | | | | | | Change-Id: I74fa6edc4b001247b20be52e8301d18407fede2c
* | recovery: Add ueventd serviceColin Cross2010-05-141-0/+4
|/ | | | Change-Id: Iad448bc1608f88c5db2108475f35b88ea2877b07
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-041-0/+33
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-041-33/+0
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+33