| Commit message (Collapse) | Author | Files | Lines |
|
This patch is to refactor twrpDigest using polymorphism
and inheritance to use the same call patterns for creating and
reading a digest. Now a library.
Use SHA2 from libcrypto. SHA2 is default if device has libcrypto.
Change string MD5 everywhere to use digest or Digest instead. Updated
string tags to digest. Translation will be required.
Switch out digest code into a driver class from partitionmanager.
SHA2 is better for digest creation due to decreased collision space
compared to MD5 and SHA1.
See https://en.wikipedia.org/wiki/SHA-2
Change-Id: I74b5546789990b12aa4ce2e389d25f80a3fe213f
|
|
Sometimes, usually because of proprietary binaries related to keymaster,
decrypt will hang waiting for the keymaster to initialize forever. This patch
enables a timeout so that we don't get stuck trying to decrypt forever.
A timeout is especially important when dealing with the default password
because the user has no option to cancel when TWRP tries to decrypt.
NOTE: This patch only adds a timeout for FDE. FBE will require some special
handling because we need access to some static data and that data is not
available across a fork.
Special thanks to nkk71 for cleaning up some issues in my patch set.
Change-Id: Iccf2fe769ac27a7dcd6bfebfe7d2e9eddd034308
|
|
Change-Id: I2397d0bd221dcf5c9d0f971ba157519bcf014a70
|
|
Change-Id: I93c65973679894bb8587da4b38b410d38036b8bd
|
|
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
|
|
Change-Id: Ia9b97ed19eb3d400d9d399255108cac79361bca4
|
|
Give user option to copy kernel logs to current storage
Change-Id: I0c61122fb34826ddb08977e6cbf98e3adf477acd
|
|
Change-Id: I668604cddc8e8afbf78709f3f872bea4e9f4aa06
|
|
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
|
|
* 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
|
|
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
|
|
The goal of this change is to make DataManager use InfoManager to reduce
code duplication.
Change-Id: Ia4f4c4324453a192995e0f442db0a03628c13e46
|
|
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
|
|
* 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
|
|
-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
|
|
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
|
|
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
|
|
Change-Id: Ifb6c186e43e1eb068e8075def16924ced04bb23d
|
|
Mostly adding __unused where needed.
Change-Id: Ia4f675b9b360782728c361ed1699db0cc277c3a5
|
|
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
|
|
- 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
|
|
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
|
|
Change-Id: I06caac2e80bd7eb311778796f974846e9ce844fa
|
|
Change-Id: Ic17624b32ca4aea43c72aea0c3d6dec0441ddee4
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Change-Id: Ibc38940833f9d8eb584690ef767561d22f71a64d
|
|
-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
|
|
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
|
|
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
|
|
Change-Id: I3d072be9ef28f21ade466bc4c42caca8848f7c2a
|
|
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
|
|
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
|
|
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
|
|
Change-Id: I53d329e493f4bcb3fe9ed177e7b2dede30ccf490
|
|
Change-Id: I23c490e6228b0fcf656c76ac314c69508ba2329d
|
|
use TW_NO_CPU_TEMP := true to disable display
use TW_CPU_CUSTOM_PATH := path to set custom path
Change-Id: Id260ecbb4ec36a78442387329944f67003d0f6a0
|
|
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
|
|
Big thanks to Dees_Troy for helping with the implementation.
Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
|
|
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
|
|
* 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>
|
|
* Some devices (Sony) have RTC counting up from year 2009,
Change-Id: I2cf1928e1b05c7e8b184963f8130582e0319ddc4
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
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
|
|
This is by no means comprehensive, but is quite a bit better already.
Change-Id: Ibc8654a5dfb0eec39cbd0b64bdb52bb4fbfe2f7e
|
|
Change-Id: I9dfa7de40229f00412d63fc9c1eb3a809a6eb2e6
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Change-Id: Ib79029fd6237502338b041a6bc2f9e539536d6ad
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Change-Id: I5a22b2df87920333974d8d18fb29f4ff1627a405
|
|
Change name to date/time only if the auto generated backup name
contains any invalid characters.
Change-Id: I73e9e546373088ee7852fa31015060ce95a1d020
|
|
add fixing contexts of Android directory for apps that store stuff here
fix data/data contexts to be recursive
Change-Id: I1122559c83845c3af0a351a4034cd7ad6da83fa5
|
|
End goal is to create a twrpTar binary that can run from the
command line.
Change-Id: I14f07a425b7755bd09dbce95a5918da1430964fc
|
|
Change-Id: I0f450357595e7f5f56a7c120b899101faf7f6360
|
|
Change-Id: I9e398aa3f4f5be0728435ffdab333d4090cdab22
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Change-Id: Id158a6375fbadf4cdf0a8c7d143759e602419e7f
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Change-Id: I04ad07f3e6be961003e063be8c648e191e2f9431
|
|
Moved Get_Folder_Size to this new class.
Change-Id: If0a0220f900eb109581f2eeaf7b76e3f7d6886f1
|
|
Change-Id: I3be70a897e563658736b2dec3a9ea2697b69b225
|
|
|
|
Trailing spaces sometimes cause folder creation depending on what
file system is in use (e.g. vfat).
|
|
Change-Id: I5596759b0cb39e4448b6be382f9224feed70a5ea
|
|
* 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>
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Change-Id: Id8acff1ac9b3c7e4b562c80562a8ff42a1d132b9
|
|
Change-Id: I7847fca22b5d4f0a35da41625b15bd677a1e9768
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Change-Id: I8f03d46235e1c71e8ee510309c9418cde802f50b
|
|
Change-Id: Ib7f882db8a8c61d1156c03468208205124132b6c
|
|
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
|
|
This reverts commit c5754cf9355056ee5f2aebaa15a47b62c5cbeb42.
popen already uses fork and pipe and __popen works on more devices.
|
|
* popen causes crashes on some devices
|
|
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
|
|
Improves license compatibility between GPL and Apache
Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0
|
|
create a framework for computing digests and reading digests in TWRP
add space for backwards compatibility with bb md5sum
Change-Id: Ia18e3f430eed5eba22e5052d39b9b8d88ecd4536
|
|
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
|
|
|
|
Also fix sort order for file selector by date and file sizes
Change-Id: Idff9fe4232c19d4ed1082e78fabe6f921aa0a114
|
|
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
|
|
update fuse to 2.9.2
catch return from unlink so that we don't print error messages when things work
Change-Id: I1115039a0fa5d9d73f78ef1abd79755d7ffd9d96
|
|
* Fixes crash which could occur with too deep path because
of too much memory allocated on stack
|
|
Fix issues with MD5 checking using chdir and leaving the working
dir in a subfolder that prevented unmounting sometimes.
Change-Id: I01a563d722f474297ed3f7a30064c3a61748ade3
|
|
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
|
|
Change-Id: I06fa6120a975cbc3d4eef9bc2ca034ec716740ee
|
|
|
|
Fix problems with the wiping of data/media devices
Save and restore the ecryptfs key for external sdcard on Samsung
encrypted devices.
|
|
Add proper mkdosfs tool
Add fuse to TWRP
Add experimental exfat-fuse to TWRP
Convert all system() functions to use new Exec_Cmd function
|
|
|
|
|
|
|
|
|
|
|
|
Converted bootloader.cpp to TWRP and removed AOSP fstab parsing
from startup
|
|
|
|
Fix a problem parsing some recovery.fstab files.
Fixed a problem with MD5 checking that prevented unmounting
after md5 checking.
|
|
|
|
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.
|
|
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
|