summaryrefslogtreecommitdiffstats
path: root/twrp-functions.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-01-18Unused variable cleanupMatt Mower1-2/+1
Change-Id: I2397d0bd221dcf5c9d0f971ba157519bcf014a70
2017-01-18Whitespace cleanupMatt Mower1-28/+28
Change-Id: I93c65973679894bb8587da4b38b410d38036b8bd
2016-12-16Add TWRP app install via TWRP recoveryEthan Yonker1-1/+4
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-13Change handling of /cache due to AB devices not having cacheEthan Yonker1-2/+8
Change-Id: Ia9b97ed19eb3d400d9d399255108cac79361bca4
2016-12-02Copy Kernel Logsbigbiff bigbiff1-0/+10
Give user option to copy kernel logs to current storage Change-Id: I0c61122fb34826ddb08977e6cbf98e3adf477acd
2016-08-25Make it backwards compatible with 4.4Ethan Yonker1-1/+1
Change-Id: I668604cddc8e8afbf78709f3f872bea4e9f4aa06
2016-08-01ADB: Add adb backup for TWRP.bigbiff1-8/+5
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-05-03Rewrite TWRP fstab flag processingMatt Mower1-0/+7
* Do not flip/flop between std::string and char* when no std::string specific functions are applied. * Remove the need to manually count flag string lengths * Move checks for Display_Name, Storage_Name, and Backup_Display_Name out of flag processing Change-Id: I24d432c222124012b2a98d27598e42d0944f7da2
2016-03-31Improve progress bar handling for backup / restore / image flashEthan Yonker1-21/+21
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-31DataManager UpdatesEthan Yonker1-1/+2
The goal of this change is to make DataManager use InfoManager to reduce code duplication. Change-Id: Ia4f4c4324453a192995e0f442db0a03628c13e46
2016-01-22Improve max brightness handlingTatsuyuki Ishi1-9/+8
If we can detect the directory, why don't we detect maximum as well? Additional patch by: Matt Mower Replace clunky /nobrightness handling Cleanup TWFunc::Set_Brightness() and blanktimer::getBrightness() a bit, primarily for the purpose of relying on the value in tw_has_brightnesss_file instead of checking for a phony brightness path. Change-Id: Ib22595df53cefa8db7a1172a581984c42ad461c6
2016-01-22Fix a bunch of messagesMatt Mower1-1/+1
* 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-14Improve sdcard partitioning processEthan Yonker1-0/+19
-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-04Fix Recursive_Mkdir if path doesn't end with "/"that1-15/+8
Somewhat surprisingly, Recursive_Mkdir(TWRES "customlanguages") did not create the "customlanguages" directory because it expected a trailing slash. Fixed by rewriting the loop to be more like Create_Dir_Recursive. Also fixed error handling for the final directory, and fixed incorrect return value handling for "mkdir" ORS command. Change-Id: I1ab418ddda695cbb595a9db2817f00fc7b171f51
2015-12-19Multiple Language SupportEthan Yonker1-22/+23
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-12Free some memory allocationsMatt Mower1-0/+6
Change-Id: Ifb6c186e43e1eb068e8075def16924ced04bb23d
2015-10-25Fix a bunch of warningsEthan Yonker1-1/+1
Mostly adding __unused where needed. Change-Id: Ia4f675b9b360782728c361ed1699db0cc277c3a5
2015-05-29remove useless memset and \nXuefer1-3/+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-18bootloader: align with AOSP codethat1-9/+2
- Define a minimal Volume structure so that AOSP code for handling /misc works in TWRP without major changes. - Remove set/get_bootloader_message_*_name Change-Id: Ifcee59568141a184adebb94b8ef8beca072a7942
2015-04-03twrpTar: fix segfault after encrypted backupsthat1-4/+4
also use unsigned int for core_count instead of unsigned long long. I'll change it back when 4-billion-core devices are common. PS2 - cast return value via intptr_t (may be important for 64 bit platforms) - output errors from TWFunc::Wait_For_Child to console Change-Id: I04158daa0b64e44d68e179d626a83d81cf5d49f7
2015-03-25Fix reboot for some devicesEthan Yonker1-17/+18
Change-Id: I06caac2e80bd7eb311778796f974846e9ce844fa
2015-03-20Fix TWFunc::Wait_For_Child reporting success when child segfaultsVojtech Bocek1-4/+4
Change-Id: Ic17624b32ca4aea43c72aea0c3d6dec0441ddee4 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2015-02-21Replace Auto_Generated name spaces with underscores.bigbiff1-1/+3
Change-Id: Ibc38940833f9d8eb584690ef767561d22f71a64d
2015-02-02Disable stock recovery replacing TWRP during ORSEthan Yonker1-1/+13
-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-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-22Use /twres instead of /res for theme resourcesDees Troy1-8/+8
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
2014-12-29twrp-functions: remove unused functionsthat1-124/+0
Change-Id: I3d072be9ef28f21ade466bc4c42caca8848f7c2a
2014-12-18Update SuperSU to 2.40Ethan Yonker1-158/+1
The SuperSU install process is getting rather complicated, so we will modify the install script slightly and use it to install all the things and stop trying to check to see if root permissions have been lost like we used to do. Change-Id: Ibdb64c909d2bd16e12bb35b4f31f572cc29add47
2014-12-12Attempt to set the proper uid/gid/contexts on new files and dirsEthan Yonker1-3/+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-12-02 Make the android-5.0 branch compile in 4.4 to 4.1Ethan Yonker1-0/+12
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-07Fix up tw_reboot functionEthan Yonker1-3/+10
Change-Id: I53d329e493f4bcb3fe9ed177e7b2dede30ccf490
2014-11-04fix some compiler warningsthat1-1/+1
Change-Id: I23c490e6228b0fcf656c76ac314c69508ba2329d
2014-10-14display cpu temperature in twrpJenkins1-0/+6
use TW_NO_CPU_TEMP := true to disable display use TW_CPU_CUSTOM_PATH := path to set custom path Change-Id: Id260ecbb4ec36a78442387329944f67003d0f6a0
2014-10-08performance profile supportTom Hite1-0/+11
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-0/+18
Big thanks to Dees_Troy for helping with the implementation. Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
2014-08-10Support reading since_epoch and secondary brightness filesxNUTx1-4/+70
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/+18
* 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-09Check the crash counter instead of date in TWFunc::Fixup_Time_On_Boot()Vojtech Bocek1-10/+0
* Some devices (Sony) have RTC counting up from year 2009, Change-Id: I2cf1928e1b05c7e8b184963f8130582e0319ddc4 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-07-09Track backup and restore progressEthan Yonker1-0/+24
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-04Whitespace and minor code cleanupMatt Mower1-2/+2
This is by no means comprehensive, but is quite a bit better already. Change-Id: Ibc8654a5dfb0eec39cbd0b64bdb52bb4fbfe2f7e
2014-04-16Add support for actions triggered by key combinationVojtech Bocek1-0/+20
Change-Id: I9dfa7de40229f00412d63fc9c1eb3a809a6eb2e6 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-03-13Fix skipping of relative paths and lost+found in twrpDUVojtech Bocek1-0/+25
Change-Id: Ib79029fd6237502338b041a6bc2f9e539536d6ad Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-03-06Change qcom time error messages to infoDees Troy1-3/+3
Change-Id: I5a22b2df87920333974d8d18fb29f4ff1627a405
2014-02-26Check auto generated backup names for invalid charactersEthan Yonker1-0/+4
Change name to date/time only if the auto generated backup name contains any invalid characters. Change-Id: I73e9e546373088ee7852fa31015060ce95a1d020
2014-02-23fix slash between directoriesbigbiff bigbiff1-1/+1
add fixing contexts of Android directory for apps that store stuff here fix data/data contexts to be recursive Change-Id: I1122559c83845c3af0a351a4034cd7ad6da83fa5
2014-02-12ifdef some functions that depend on other TWRP partsEthan Yonker1-186/+168
End goal is to create a twrpTar binary that can run from the command line. Change-Id: I14f07a425b7755bd09dbce95a5918da1430964fc
2014-02-08Update SuperSUEthan Yonker1-4/+12
Change-Id: I0f450357595e7f5f56a7c120b899101faf7f6360
2014-02-08Separate out function for reading /system/build.prop valuesEthan Yonker1-25/+31
Change-Id: I9e398aa3f4f5be0728435ffdab333d4090cdab22
2014-02-06Add option to print render time of each frame to log fileVojtech Bocek1-0/+6
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Id158a6375fbadf4cdf0a8c7d143759e602419e7f
2014-02-04Load RTC offset on Qualcomm Krait chips, fixes the broken time & dateVojtech Bocek1-0/+93
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I04ad07f3e6be961003e063be8c648e191e2f9431
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-33/+0
Moved Get_Folder_Size to this new class. Change-Id: If0a0220f900eb109581f2eeaf7b76e3f7d6886f1
2013-10-24Update licenses to all matchDees Troy1-0/+18
Change-Id: I3be70a897e563658736b2dec3a9ea2697b69b225
2013-10-22Update licenses to all matchDees Troy1-0/+18
2013-10-17Remove trailing spaces on auto generated backup namesDees Troy1-0/+7
Trailing spaces sometimes cause folder creation depending on what file system is in use (e.g. vfat).
2013-09-19Improvements to Update_Log_FileDees Troy1-8/+19
Change-Id: I5596759b0cb39e4448b6be382f9224feed70a5ea
2013-09-17Never generate empty backup nameVojtech Bocek1-1/+2
* Backup would then go to /sdcard/TWRP/*serial_num*/ (without any subfolder) and restore would not be able to find it. Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2013-09-12Add TWFunc::Exec_Cmd() with no 'result' agrumentVojtech Bocek1-15/+32
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Id8acff1ac9b3c7e4b562c80562a8ff42a1d132b9
2013-09-12Pull ROM info from build.prop for backup namesDees Troy1-0/+48
Change-Id: I7847fca22b5d4f0a35da41625b15bd677a1e9768
2013-08-30Really fix TWFunc::tw_chmod() for 3-character mode stringVojtech Bocek1-32/+41
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I8f03d46235e1c71e8ee510309c9418cde802f50b
2013-08-30Update SuperSU for 4.3 SELinux, 2.6.1.0Dees_Troy1-0/+62
Change-Id: Ib7f882db8a8c61d1156c03468208205124132b6c
2013-08-28ignore lost+found in all the placesbigbiff bigbiff1-1/+1
2013-08-24Unify indentation and little clean-up in TWRP filesVojtech Bocek1-14/+15
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2013-08-24Fix TWFunc::tw_chmod() for 3-character mode stringVojtech Bocek1-1/+2
2013-08-24Revert "Rewrite TWFunc::Exec_Cmd() to use pipe() instead of popen()"Dees_Troy1-43/+12
This reverts commit c5754cf9355056ee5f2aebaa15a47b62c5cbeb42. popen already uses fork and pipe and __popen works on more devices.
2013-07-03Rewrite TWFunc::Exec_Cmd() to use pipe() instead of popen()Vojtech Bocek1-12/+43
* popen causes crashes on some devices
2013-06-22Support encrypted backup filesDees_Troy1-0/+199
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-04Move all AOSP code out of recovery binaryDees_Troy1-128/+106
Improves license compatibility between GPL and Apache Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0
2013-03-07use md5.c for computation of md5sumsbigbiff bigbiff1-43/+15
create a framework for computing digests and reading digests in TWRP add space for backwards compatibility with bb md5sum Change-Id: Ia18e3f430eed5eba22e5052d39b9b8d88ecd4536
2013-02-27fixes for fakeflash zipsjt11341-2/+2
For some reason fakeflash doesn't like to have superuser/su in /res, move it to its own subdir in /supersu. This allows a fakeflash zip built with 'make recoveryzip' to work correctly. Change-Id: I32e2e0f6dba55281d5c917e931c3ef0034964bcb
2013-02-22Fix compiling on CM7Dees_Troy1-1/+5
2013-02-21Check for root and root perms and offer to install/fixDees_Troy1-62/+265
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/+49
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-02-07Add write buffer for tar writesDees_Troy1-4/+4
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-02Use only std::string in TWFunc::Get_Folder_SizeVojtech Bocek1-14/+5
* Fixes crash which could occur with too deep path because of too much memory allocated on stack
2013-02-01Fix fail over to vfat from exfatDees_Troy1-2/+1
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-4/+12
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-28file manager updates for exFATDees_Troy1-0/+21
Change-Id: I06fa6120a975cbc3d4eef9bc2ca034ec716740ee
2013-01-20Remove sockets and FIFOS when removing filesbigbiff bigbiff1-1/+1
2013-01-09Fix wiping problems and save ecrypt keyDees_Troy1-26/+26
Fix problems with the wiping of data/media devices Save and restore the ecryptfs key for external sdcard on Samsung encrypted devices.
2013-01-09Add libtar to TWRP instead of using busybox tarbigbiff bigbiff1-70/+136
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-12-20Increase array size to fix crashes on some devicesDees_Troy1-1/+1
2012-10-01Fix output of version numberDees_Troy1-25/+0
2012-09-28Fix compiler warningsDees_Troy1-1/+1
2012-09-27Save version number to storageDees_Troy1-0/+26
2012-09-27Port reboot functions to C++Dees_Troy1-0/+128
2012-09-26Add backup size checkingDees_Troy1-2/+10
Converted bootloader.cpp to TWRP and removed AOSP fstab parsing from startup
2012-09-26Unify portrait layouts againDees_Troy1-0/+23
2012-09-20Fix fstab and unmount problemsDees_Troy1-4/+3
Fix a problem parsing some recovery.fstab files. Fixed a problem with MD5 checking that prevented unmounting after md5 checking.
2012-09-18Cleanup extra-functionsDees_Troy1-19/+14
2012-09-17Update backup and restore code, adb sideloadDees_Troy1-0/+71
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-0/+164
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