summaryrefslogtreecommitdiffstats
path: root/gui/action.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-11-28Support v2 fstab formatEthan Yonker1-1/+1
Auto detect and support both the v1 and v2 fstab formats Support putting TWRP style flags in a separate /etc/twrp.flags file twrp.flags format is the same as twrp.fstab (v1 with TWRP flags) Support using a wildcard in a block device and find all partitions: /usb-otg vfat /dev/block/sda* Support using sysfs entries (voldmanaged) and read uevents and scan for wildcard partitions from uevent data. (twvold?) May not be complete for some of the newer flags found in fstabs in newer build trees and there is a slim chance of a crash if the user removes a removable device while TWRP is performing actions. May need to add some kind of mutex to prevent the 2 threads from causing this crash. We need to start somewhere though and this change is pretty innocuous when not using a v2 fstab. Change-Id: I617d97c7db332cbe671a9d2b8ad98b3d9c4f03cc
2017-11-27ADB Backup: add ability for TWRP GUI to restorebigbiff bigbiff1-15/+31
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-03-06Add TWRP app install to landscape and watch themesEthan Yonker1-3/+6
Change-Id: Id48245218dc3ee3c6506521ce0134e6a579b6f4a
2017-02-06Fix crash during check for TWRP appEthan Yonker1-10/+10
Make sure that opendir succeeds before continuing. Change-Id: I3c96002ab830f4df2041044d411a7bac42a5b8f4
2017-02-03Fill uid/gid for screenshots at compile timeMatt Mower1-9/+3
It's not necessary to rely on the success of a call to getpwnam() for the uid/gid of a file stored to sdcard (or external storage). Use the definitions in system/core/include/private/android_filesystem_config.h Change-Id: I979cfa0c74ecc927b88b0967cc56a66da237cc60
2017-01-18Fix detection of TWRP app in /dataEthan Yonker1-1/+2
Change-Id: Icab9db0ceb63edba021cc190eea2ebbc87cf3442
2017-01-18gui: Actions: Toggle backlight on power keyMatt Mower1-0/+7
Create GUIAction to handle KEY_POWER with a screen backlight toggle. Change-Id: Iad0a7923b4a776e0336722db74d6fc46cd0107a2
2017-01-18Unused variable cleanupMatt Mower1-8/+2
Change-Id: I2397d0bd221dcf5c9d0f971ba157519bcf014a70
2017-01-18Very minor code cleanupMatt Mower1-2/+1
Change-Id: Ie0b97da2cce7bb93307ed49b1138bc2f36df34d0
2017-01-18Whitespace cleanupMatt Mower1-18/+18
Change-Id: I93c65973679894bb8587da4b38b410d38036b8bd
2017-01-11Fix compile error on 4.4 treeEthan Yonker1-6/+6
Change-Id: Id85fdf0f4dee02f8ee3ae50ec42423c6a154a3eb
2016-12-16Add TWRP app install via TWRP recoveryEthan Yonker1-0/+156
Note: I will have to add a build flag for excluding the app later for watches and maybe Android TV. I will also have to add support in the tablet and watch layouts later. I will merge this for the initial roll out to select devices and finish up later. Change-Id: Ia4ce5522fae542afa1539b10c0691315392a19ab
2016-12-13Add boot slot supportEthan Yonker1-0/+13
Change-Id: I7eaf80e327985f53791f90fbdebad022a9650d31
2016-12-02Copy Kernel Logsbigbiff bigbiff1-3/+9
Give user option to copy kernel logs to current storage Change-Id: I0c61122fb34826ddb08977e6cbf98e3adf477acd
2016-11-30Fix image flashingEthan Yonker1-8/+1
PS2: full_filename is not a dir PS3: use a consistent format of always assuming directory is missing the trailing / + fix whitespace alignment Change-Id: Ib963473ae10571b3d069b326d024ca04c7224dda (cherry picked from commit fa4ff144374474c541351d153549ad11d4396614)
2016-09-13Clean up PartitionSettingsEthan Yonker1-3/+5
The PartitionSettings struct contains some data elements that are duplicates of data elements in the TWPartition class that is contained within the PartitionsSettings.Part element. We will eliminate this duplication to help reduce the chances for programming bugs. Specifically, this fixes problems where the current file system does not match the backed up file system. Change-Id: I02f236e72093362050556a2e53a09d1dbb9a269d
2016-08-25Make it backwards compatible with 4.4Ethan Yonker1-1/+1
Change-Id: I668604cddc8e8afbf78709f3f872bea4e9f4aa06
2016-08-19GUI: Add countdown & cancel to install auto-rebootMatt Mower1-6/+18
Provide a countdown from 5 sec for the automated reboot after install. Include a cancel button to interrupt the process. Change-Id: Ib5e1447918adfde45eba361c088800812b690890
2016-08-01Remove curtainClose() remnantsMatt Mower1-4/+0
Change-Id: I6ae96b60d34fa4e4b23cd1e5a4fffff3d00451c7
2016-08-01Remove unused identifier from NotifyTouchMatt Mower1-1/+1
The 'state' parameter in GUIAction::NotifyTouch() is used in the function. Change-Id: I0744c7aa1542d771dbd2916638fbdd53e9681f86
2016-08-01Move cursor after appending date to backup nameMatt Mower1-0/+2
* Send the cursor to the end of the input text Change-Id: Id4f20717134cd38188cc1107f73dcd6bb995f377
2016-08-01ADB: Add adb backup for TWRP.bigbiff1-8/+11
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-03-31TWRP Install Reboot Optionbigbiff1-0/+7
This is a simple patch to allow users to reboot after installation of zip queue. Current timeout is 5 seconds before reboot. Change-Id: I1a18cbf7025086e35031ab7241b330babebb8343
2016-01-29Replace fix permissions with fix contexts for emulated storageEthan Yonker1-4/+10
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-27Update minuitwrp graphics in line with latest minuiEthan Yonker1-1/+2
Note: events.cpp is still old code renamed to cpp to make it easier to call functions like gr_fb_width(). I had to modify AOSP fbdev code to provide a separate memory surface for drawing to as drawing directly to the framebuffer resulted in rendering taking about 5 times longer. I also modified AOSP adf code to provide a separate memory surface for drawing for the same performance reasons. The Nexus 9 supports adf graphics. Overlay graphics work on at least one device. Overlay provides a separate memory buffer already so performance is good. I do not have a drm device yet that I know of. I made some attempt to update the drm code to determine the correct pixel format based on the drm graphics format, but what is available in pixel flinger and what is available in drm do not line up all that well. Reports are that the Pixel C is using drm graphics, but performance is slow, likely due to the use of a mmap instead of a memory buffyer. Change-Id: Ibd45bccca6ac2cb826037aa9b2aa5065cf683eed
2016-01-25Adopted Storage supportEthan Yonker1-0/+1
-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-22Fix (Auto Generate) handling for backup namesEthan Yonker1-3/+2
Change-Id: I29f3823d03c005fb55a0e0a98818d40bd1eb039d
2016-01-22Android 6.0 needs permission +x to create screenshot filesXuefer1-1/+1
Change-Id: Id4a6c04712238b86787696337874239591082d39 Signed-off-by: Xuefer <xuefer@gmail.com>
2016-01-22Fix a bunch of messagesMatt Mower1-2/+2
* Find and rename/remove duplicate string variable names * Add missing string variables to en language file * Fix display of some strings missing @ in front of variable name * Fix several %s --> {1} * Be consistent in usage of cancelled vs. canceled (both spellings acceptable) Tip for finding strings missing from language files: 1) Find all messages: egrep -hr "gui_msg.+=" > /tmp/msgs.txt 2) Regex replace to trim them down WHAT: ^\s+gui_msg(?:[^"]+)"([a-zA-Z0-9_]+)=([^"]+).+ WITH: $1 Note that $2 can be used to retain the message 3) Find missing strings: for i in $(cat /tmp/msgs.txt); do if ! grep -q $i gui/theme/common/languages/en.xml; then echo $i; fi done Change-Id: Ic193162e4b5468bf027472928a370be39840ea1d
2016-01-19gui: fix return value of NotifyKeythat1-2/+5
Only the last action got its keys and ate all of them (om nom nom). This fixes the power button action that activates the lock screen. Change-Id: Ia724568b159090c2c14a282cf3927915b2dc70e7
2016-01-18Do not require mounting during zip flashing if path existsEthan Yonker1-2/+9
Change-Id: Ideb4bb39b5e864a43b62e807c38b6395c56a8466
2016-01-14Improve sdcard partitioning processEthan Yonker1-26/+33
-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-07gui: add keyboard support for Ctrl layer and more special keysthat1-6/+3
- rename NotifyKeyboard to NotifyCharInput - input: handle arrow keys in NotifyKey with standard KEY_* codes - fix page handler to return 0 from NotifyKey if key was handled - fix GUIAction::NotifyKey to not swallow all keys - change home button code from KEY_HOME to KEY_HOMEPAGE (to avoid collision with Home/End, conforms to Android 3.0+) Change-Id: Ib138afa492df8d0c1975415e8b5334c8778ccc90
2015-12-29gui: fix screenshot_saved messagethat1-1/+1
Change-Id: I7d047fe3436100dbe7c7515860a143a97f7ef0d4
2015-12-29get rid of console thread for OpenRecoveryScriptthat1-31/+13
- CLI commands run in a threaded action "twcmd" - Console is displayed via "singleaction_page" - move ORS execution code from GUI action to OpenRecoveryScript class - remove unused function gui_changePackage - don't change PageManager package in home action - fix that /tmp/openrecoveryscript was not deleted after execution Change-Id: Ic688c0b04647ce09e9db979b0bc5123f47cf4f70
2015-12-23Set twrp.action_complete after completing actionLuK13371-0/+2
Change-Id: I078f0659696cc57564b5db0076a0ed9aaea822d4
2015-12-22exfat: Build fsck and update path to mkfsMatt Mower1-1/+1
* 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-19Multiple Language SupportEthan Yonker1-35/+49
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-11-26Update dosfstoolsMatt Mower1-1/+1
* 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-09Move reloading of theme outside of the action threadEthan Yonker1-20/+7
Reloading the GUI while the GUI is running and rendering is very dangerous as we may be deleting GUI resources before or while we are trying to render those same items. This change will allow us to safely load new resources and delete the old ones. Fixed a double free situation that was causing a crash on every other theme reload. Clear parsed xml documents when we are done loading the theme instead of keeping them in memory for the life of the theme to help save a little memory. Store starting page so that if we request a reload, we can enter the theme at the same starting point, which may come in handy if we allow for language selection on alternate starting pages such as the decrypt prompt or the system read only prompt. Change-Id: I45a7e3fb3daeefac56d70f8d4936938eb1244b99
2015-11-05Treat /vendor like /system for read onlyEthan Yonker1-0/+15
The vendor partition is verity checked just like system so we should treat vendor as read only same as system. Change-Id: Ida65c9f44d8610e52fcdcef0b4a50faf5c7110d2
2015-10-25Fix a bunch of warningsEthan Yonker1-38/+38
Mostly adding __unused where needed. Change-Id: Ia4f675b9b360782728c361ed1699db0cc277c3a5
2015-08-09ORS: Report success if AOSP script succeedsMatt Mower1-0/+1
When AOSP recovery commands are processed, the GUI reports a failure just before reboot even when all commands succeeded. Set op_status before reboot to indicate success. Change-Id: I09e9357b04cd81f418264bf00a75311f48357414
2015-06-17Make sure that adbd restarts after sideloadDees Troy1-1/+1
Change-Id: I7d82b95cd8749c6f8569739162708705faa6f1f7
2015-06-17Fix ORS scripts displaying an error after completingEthan Yonker1-2/+5
Change-Id: I1329705fca870b4e3017607ad7c7875aa00d664b
2015-06-01gui: set tw_file to the currently flashed file name without paththat1-3/+7
To allow themes to show more of the file name on narrow displays. Change-Id: I4962eed5e4a01f73a3cde126f2ba56428209fccc
2015-05-30Fix unable to uncheck the mount read only check boxEthan Yonker1-1/+1
Change-Id: I1bbc25df6f35f79549f1eb06feb4db9ec0475aa5
2015-05-29remove useless memset and \nXuefer1-1/+0
fgets reads up to one byte less than size then with \0 at the end adding \n after \0 is useless too Change-Id: I7758d7a8f885bdde2b491a9cb75800f831d77c1f
2015-05-28Add resize2fs and ability to run resize2fs via GUIEthan Yonker1-0/+27
Note: Only works on ext2/3/4 partitions. Only tested on ext4. We can use this in some cases to resize the data partition if an incorrect fstab caused recovery to not reserve the 16KB for a crypto footer. Sometimes the BoardConfig for a custom ROM does not have the correct size for the system partition and if the ROM flashes a raw system image, that image will not take up the full block device. Running resize2fs can fix the size and may allow more room in the system partition for customizations like busybox or a larger gapps package. Sometimes flashing a factory image may flash userdata with an image with a file system that does not take up the full size of the block device (e.g. factory images for the Nexus 6 will flash userdata with a ~24GB userdata image, wasting ~30GB of space). Using resize2fs we can easily fix this issue without having to do a full format data. Change-Id: I631f5c6f567bbc6a9241e5dd95f1e435820a1b13
2015-05-27Mount system as read-only by defaultEthan Yonker1-0/+54
Mounting system as rw can prevent future OTA updates. The purpose of this patch set is to prevent TWRP from mounting sytem as rw on the first boot. Device maintainers should update their twrp.fstab files on these devices to include an additional line: /system_image emmc /dev/block/../system This line will allow TWRP to create a raw system image backup to ensure that the user can return to an original state for future OTA updates. Change-Id: I8929d85bc3a5b96cc564bc7f734b58d5612ec833
2015-03-05minuitwrp: fix crash issue, when the console use TTF font to display unicode font.xiaolu1-2/+1
gui: fix terminal command unusual line breaks and missing characters at the end of a read buf. Change-Id: I8d3d740b6066b1594c5148b2012f0e7bcbecc22b
2015-03-05GUI: Terminal command: minor improvementsMatt Mower1-0/+4
* Use mono font for terminal command input * Recognize 'exit' command (go to main page) Change-Id: I5f383cd8d19959a49d2ae0b18f839b86e4145693
2015-02-21GUI: Support styles in xml to reduce xml file sizeEthan Yonker1-4/+4
Also allow sliders to have their own text label instead of requiring a whole separate text object for the label in the xml. Change-Id: I6e314efb4bb454d496555ff7e003d743063a1308
2015-02-02Disable stock recovery replacing TWRP during ORSEthan Yonker1-0/+2
-Create a separate function to disable stock recovery flashing -Add a call to that function to the reboot section of the ORS action so that an OTA update will not inadvertantly replace TWRP Change-Id: I43eae81e0e76971b6e8d34c38785dc73772242d2
2015-01-30gui: run cancel action in another threadthat1-32/+76
Some actions did not have an operation_end where needed especially when dealing with cancel actions. Cancel actions now do not run operation_start or operation_end and let the original action handle the operation_end so that the GUI waits until the original action acutally cancels. Change-Id: I28e6260abb058acb982cecd108c09fc89e0ffeed
2015-01-29Use macro to add actions to the action mapVojtech Bocek1-56/+58
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I283b33087817eb87dae916a3183a9024dd35effd
2015-01-27Add cancel backup capability.bigbiff1-9/+43
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-22Use /twres instead of /res for theme resourcesDees Troy1-1/+1
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-22Hide some non critical error messagesEthan Yonker1-1/+1
Change-Id: I6e43242e44ce63cea9472c75a9f7fedf1b34fbbe
2015-01-13Fix handling of custom themes after decryptEthan Yonker1-34/+8
Loading a custom theme from the decrypt action was preventing the runPage function from exiting. This moves the loading of a custom theme out of the action. Change-Id: I86904b63a67a25ded56e3e1e569fe906264dc055
2015-01-12Fix some crashes during theme (re)loadingVojtech Bocek1-4/+3
Change-Id: I01405fbe86a48ae79f2cbe633b89f2dcfb1ef266 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2015-01-12Fix some actions being incorrectly threadedVojtech Bocek1-1/+1
Change-Id: Ic8406344994ef2a9972207f9281b52e64e22826b Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2015-01-11gui: simplify blanktimerthat1-8/+0
- get rid of separate thread, check timer in rendering thread instead - use an enum for the blanking state instead of magic integers - move #ifdefs for TW_NO_SCREEN_TIMEOUT inside blanktimer class - move some #includes and enum TOUCH_STATE to pages.hpp Change-Id: Id4b104e3680dc5db41d8ba85e32d722cf4086299
2015-01-09Improve GUI handling of zip flashingEthan Yonker1-11/+9
- change the page sooner so that users cannot activate the slider twice - improve GUI messaging if a zip requests a cache wipe - move update of the file count to the end so it is less visible to the user (e.g. during a cache wipe the counter should not read 0) Change-Id: I5d478f07effe61ca37f3521a77c9e9243a9cb692
2015-01-09Allow flashing of images via the GUIEthan Yonker1-0/+19
- Use the Images... button in the lower right of the zip install page - Unify image flashing functions between restore and image flash - boot and recovery partitions are flashable by default - use fstab flag flashimg=1 or 0 to override defaults - file system partitions are currently not flashable Change-Id: I822dc446030543c55d2153e219d67a1292374ffc
2015-01-09gui: fix action threading if background thread is busythat1-9/+15
When the background thread is already running and we have at least one threaded action in the list, we should not run any non-threaded actions before ignoring the threaded action and following ones - it might cause invalid state variables to be set. Run or ignore the whole list in the background thread instead. Change-Id: Ie634105b80f038893898a21539886bd757eb47ce
2015-01-09Run some actions in a separate threadthat1-154/+192
Some actions need to be threaded so we will run those in a separate thread and deny requests to thread more actions if new requests come in while a thread is already running. Change-Id: I966c538e67860a6d8fe556e5a2eb7f7d1a987e74 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2015-01-05Thread openrecoveryscript action to properly display action pageEthan Yonker1-22/+38
The action page fails to display properly during ORS processing unless we thread the ORS action. Based upon the work done in this patch set by _that: https://gerrit.omnirom.org/#/c/11226 Change-Id: I6dac790ac26d9b3a02df778516fea011d67aea70
2015-01-04fix adb sideloadthat1-82/+87
- "Cancel" button handling requires another thread - simplify handling of child pid - merge duplicated code for reinjecting TWRP after installation - fix error that showed on host PC after sideload finished - fix problem where adbd sometimes does not stop correctly Change-Id: I536877f024b606756c6a3289c6ddfdba423a60d6
2015-01-03Fix GUIAction::operation_startEthan Yonker1-1/+1
We need to set the value of tw_operation_state a little sooner to make the decrypt page work correctly. Without this change, decrypt would incorrectly display the main page during the first decrypt cycle. This fix may also fix ORS and possibly other things that use the runPage function. Change-Id: I85ad6e4add6726a2746eeb7116f3eab3f7ff5d84
2014-12-30gui: Move action functions to function pointer map.that1-1055/+1081
This allows the functions to be more readable and make doActions readable. Patch set 5: gui: remove threading in GUIAction Multiple actions were started in another thread that was joined immediately after starting it, so the input thread was blocked anyway. Selected single actions were started in their own thread, but this caused bugs like being able to install the same package twice in parallel by quickly swiping the slider twice. Change-Id: I28adadaedd032efc7bff3aaa48e659627aa3a3b3
2014-12-19MTP add/remove storage instead of disabling MTPEthan Yonker1-0/+1
Implement a pipe between TWRP and MTP to allow TWRP to tell MTP to remove storage partitions as they become unavailable (e.g. during a wipe, unmount, etc) instead of disabling MTP completely. This includes some fixes and improvements in destructors to properly remove / delete various items. This also means that we will not be toggling adb off and on quite as often. I do not like that we had to add another thread, but we were unable to use select() on the mtp_usb character device because this device does not support polling. Select always returned indicating that the mtp file descriptor was ready to be read and the resulting read would block. The read block prevented us from being able to include reading of the pipe between TWRP and MTP in the main MTP thread. We might want to add a return pipe letting TWRP know if the removal of the storage device was successful, but I am not sure how we want to implement this. It would invovle timeouts in both TWRP and MTP to ensure that we returned a failure indicator in a timely manner to TWRP and prevent deleting the storage device in the case of a failure. Right now we make no attempt to ensure that an MTP operation is underway like a large file transfer, but we were not doing anything like this in the past. In some respects we have limited control over what happens. If the user installs a zip that unmounts a storage partition, we will not know about the change in storage status anyway. Regular Android does not have these troubles because partitions rarely get unmounted like in recovery. At some point, we have to hold the user accountable for performing actions that may remove a storage partition while they are using MTP anyway. Ideally we do not want to toggle the USB IDs and thus toggle adb off and on during early boot, but I am not sure what the best way to handle that at this time. Change-Id: I9343e5396bf6023d3b994de1bf01ed91d129bc14
2014-12-18Toggle MTP during ADB sideloadEthan Yonker1-0/+2
Windows does not do very well if you try to sideload while MTP is enabled due to drivers. This will toggle MTP off and back on if MTP is currently enabled before and after a sideload operation. Change-Id: I022dbedecc97565b50b6ae1fda8922b822f63440
2014-12-12Attempt to set the proper uid/gid/contexts on new files and dirsEthan Yonker1-0/+8
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-11-08Update adb sideload featureEthan Yonker1-22/+36
Change-Id: Ib503d0e87434e1a28430779302d6565211c26592
2014-11-07Fix zip installEthan Yonker1-26/+1
We never used the feature for running a custom theme during zip install. We can re-implement this later if we like. For now, we will remove this feature until we are ready to make it work. Change-Id: Ice71b0b863c7ef17376e3f973d48b810be567c33
2014-10-08performance profile supportTom Hite1-0/+4
Many device trees support the recovery.perf.mode property to set various core frequencies and online/offline mode. TWRP is highly threaded, and support for multiple cores on many operations dramatically recudes the time, e.g., backups, zip flashes, etc. p2: removed user notifications Change-Id: I957b8ca40b241c0af0471327eeb329cce1816017
2014-09-03add mtp responder to TWRP.bigbiff bigbiff1-1/+26
Big thanks to Dees_Troy for helping with the implementation. Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
2014-08-10Support reading since_epoch and secondary brightness filesxNUTx1-0/+5
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-07-09Implement "take a screenshot" featureVojtech Bocek1-0/+49
* Like in android - press power+volume down, screenshots are saved in /sdcard/Pictures/Screenshots (if /sdcard is mounted) or /tmp Change-Id: Iaefa15b11a1d5fdfac57d77388db1621f378a8d4 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-07-07Refresh after partition changesjrior0011-2/+2
Change-Id: Id16c84f815b1c4b8e95da142648a5a759116ee6e
2014-06-04Whitespace and minor code cleanupMatt Mower1-11/+11
This is by no means comprehensive, but is quite a bit better already. Change-Id: Ibc8654a5dfb0eec39cbd0b64bdb52bb4fbfe2f7e
2014-06-04Add options to repair or change file systemEthan Yonker1-0/+133
Change-Id: I9043e98e1e1ed4722f05c13a60b43d2d0bf739f6
2014-04-16Add support for actions triggered by key combinationVojtech Bocek1-11/+43
Change-Id: I9dfa7de40229f00412d63fc9c1eb3a809a6eb2e6 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-04-04Allow building of an OEM friendly TWRPEthan Yonker1-1/+2
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-02-26Allow sideloading from /tmpEthan Yonker1-4/+5
Change-Id: I7ba9a8a496536ed55241e45e18297bd824d7e28c
2014-02-16Remove some unneeded codeEthan Yonker1-79/+8
Change-Id: I52b34a316950e92a3aa4c1675475fca8dc08d2c8
2014-02-12Cache results of GUIObject::isConditionTrue()Vojtech Bocek1-7/+4
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Ia50f7c365b2dc0a65ee046bb42972e3594264878
2014-02-12Conditional -> GUIObject and make all gui objects children of GUIObjectVojtech Bocek1-1/+1
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Ic0a7d6354dabe5919b83942f2f1aa0715625e522
2014-02-07Expansion of vibrate optionsEthan Yonker1-1/+1
Improve location / timing of vibration Split out vibrate settings for buttons, keyboard, and long actions Change-Id: I282825cc5f3e44ed6dcabe65dc1f4cb21b407b67
2014-02-06Add haptic feedbackSamer Diab (S.a.M.e.R_d)1-0/+6
Change-Id: I15d723f73c0b0bb4a40645d1c3f4c1c616f36998
2013-11-26Update partition sizes after sideloadDees Troy1-0/+1
Change-Id: I4dbb4677f1c3bcfa0b0a9248ae0b411c155f927e
2013-09-12Add TWFunc::Exec_Cmd() with no 'result' agrumentVojtech Bocek1-14/+10
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Id8acff1ac9b3c7e4b562c80562a8ff42a1d132b9
2013-09-12Make fixing su perms automaticDees Troy1-2/+3
In 4.3+ with SELinux, su perms will be lost on every reboot so users will get the prompt to fix su perms in TWRP every time. Make fixing the su perms automatic instead of nagging the user. Change-Id: Ia8a2652018db5e1f6ffc5fec2a4ac0db3a8f32bb
2013-09-12Pull ROM info from build.prop for backup namesDees Troy1-2/+23
Change-Id: I7847fca22b5d4f0a35da41625b15bd677a1e9768
2013-08-25Add a TW_NO_TIMEOUT optionRicardo Gomez1-1/+6
Change-Id: Ifb3a5bd9f1e6c2e9810c90b0aec198e91d5956fc
2013-08-24Unify indentation and little clean-up in TWRP filesVojtech Bocek1-249/+249
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2013-07-01Fix some issues with wipe partition listDees_Troy1-0/+7
Change-Id: Ie7d5878faf86b8fa824b72211be7fd3596b471d7
2013-06-22Support encrypted backup filesDees_Troy1-4/+33
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-04Add new SliderValue GUI widgetVojtech Bocek1-0/+27
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Ic5d44314f501341140dd7059d1cb753341f5844c
2013-04-04Move all AOSP code out of recovery binaryDees_Troy1-61/+67
Improves license compatibility between GPL and Apache Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0
2013-03-30Add partition list GUI elementDees_Troy1-1/+62
Add partition list GUI element and update backup, restore, mount, storage selection, and wipe sections of GUI and partition manager code to reflect the new GUI element. Update ORS engine to handle new backup and restore setup. Fix a bug with decrypt. Add 1080x1920 layout. Change-Id: Iaa2f44cb707167e66f935452f076ba00e68a2aa4
2013-02-21Check for root and root perms and offer to install/fixDees_Troy1-19/+39
Also fix sort order for file selector by date and file sizes Change-Id: Idff9fe4232c19d4ed1082e78fabe6f921aa0a114
2013-02-13This adds a 60 second screen timeout for TWRP. Might consider making this configurable in the future.bigbiff bigbiff1-0/+3
Will also set overlay to lockscreen so we don't have inadvetent screen selections. Touching the screen will bring the display back up. add back check script for poweroff move diff time function to twrp-functions.cpp make sure we chmod after copy_file add read_file and write_file functions to twrp-functions.cpp make single thread try to force update screen add forceRender drop caches after tar processing Change-Id: I3c5c509dd39dbb05451bbfe5d8b56d53c90d8d1b
2013-01-28Remove thread logging from actions.cppDees_Troy1-3/+0
Change-Id: I2d2af963f4d6990191d91a336f682516af61d734
2013-01-25adding sideload page with wipe cache and dalvikbigbiff bigbiff1-3/+9
fix variable Change-Id: I72eed7b4d709a184e53cc94165a1817a7dcf041e
2013-01-25Use GUI for ORS instead of console onlyDees_Troy1-23/+30
2013-01-24Convert AOSP commands to ORS for encrypted devicesDees_Troy1-0/+12
Change-Id: I6a76a51cd9efd7db67d7abeeb26f9bdd0eebf5a9
2013-01-24change tar create to pthreadbigbiff bigbiff1-1/+2
Change-Id: I5a33d207ec6683de20da37e6f4f174c67785fc52
2013-01-18Improve ORS sideload to display GUI with cancel buttonDees_Troy1-2/+4
2013-01-16Fix problems with thread creation on some devicesDees_Troy1-1/+35
This fixes a problem with not reaching the backup completed page after a backup is complete on certain devices (GNex, Note2). Changing the stack size to 512KB seems to be the actual fix but leaving the other changes in place as they may be helpful or are better practices.
2013-01-09Add libtar to TWRP instead of using busybox tarbigbiff bigbiff1-28/+29
Add proper mkdosfs tool Add fuse to TWRP Add experimental exfat-fuse to TWRP Convert all system() functions to use new Exec_Cmd function
2012-10-16Update injecttwrp for Epic 4G TouchDees_Troy1-1/+23
2012-10-10Finalize 2.3.0.0Dees_Troy1-14/+4
Fix permission setting for other Add new fix permissions to GUI actions Update version number
2012-10-01Fix output of version numberDees_Troy1-1/+0
2012-09-27Save version number to storageDees_Troy1-0/+1
2012-09-27Update sdcard partitioning to C++Dees_Troy1-68/+4
2012-09-27Port backup name checking to Partition ManagerDees_Troy1-3/+2
2012-09-27Port reboot functions to C++Dees_Troy1-12/+11
2012-09-26Add option to wipe android secureDees_Troy1-0/+2
2012-09-26Fix permissions updatesDees_Troy1-8/+17
Also redirect stderr output on terminal commands for display in GUI console
2012-09-26Fix SDCard partitioningDees_Troy1-3/+11
2012-09-20Add and improve OpenRecoveryScript supportDees_Troy1-3/+3
Improve zip finding in ORS engine Add support for restoring with just a backup name
2012-09-19Fix ext storage and zip pathsDees_Troy1-0/+26
Fix a bug with handling external storage during boot. Check zip root path when switching storage and ensure that the path is in the new storage path to prevent user confusion.
2012-09-19Improve adb sideload - use storage vs tmpDees_Troy1-11/+8
2012-09-19Improve adb sideload -- add cancelDees_Troy1-4/+30
Also copy zip from /tmp to storage and remove from /tmp to prevent running out of RAM.
2012-09-18Cleanup extra-functionsDees_Troy1-27/+13
2012-09-17Update backup and restore code, adb sideloadDees_Troy1-5/+38
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-14Add wipe functions, compiles in CM7, text shows in UI, zips installDees_Troy1-39/+34
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-0/+3
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-11Zip install works againDees_Troy1-9/+14
2012-09-10Improve storage size code, mount, unmountDees_Troy1-15/+7
Add flag parsing from recovery.fstab
2012-09-07Add processing of fstab, mounting, and decryptDees_Troy1-20/+20
2012-09-06Hax to make it bootDees_Troy1-4/+4
2012-09-05TWRP-ify AOSP codeDees_Troy1-0/+1134
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