| Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
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
|
|
* 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
|
|
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
|
|
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: I6e063fba8d58c8c53da6bca6292c84e3392aee50
|
|
Change-Id: I30b67787b1d529d6bdf462c8e0bf2338a9961eff
|
|
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
|
|
- ifdef around set_metadata
- Set tags as optional
Change-Id: I438e370c3bf6b590dc80ba372724c47cead6cbe5
|
|
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
|
|
-Remove dosfstools for arm64 until we can make it compile
-Fix TW_USE_TOOLBOX flag to work again
-Fix symlinking and handling of sh when using mksh
-Fix legacy properties to find futex_wake function
-Fix libcrecovery to not use bsd_signal anymore
-Fix rules for building with regards to libcrecovery
-Update toolbox_recovery rules to compile tools in lollipop
-Fix a few compile errors specific to arm64
Testers report that TWRP does not boot on Nexus 9 and we fail to
get a shell for adb shell. At least it compiles without errors.
Change-Id: I286be8628defb60cc527b8a548c0bdfcb0ebb574
|
|
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
|
|
* Remove unused parent variable from twruDU constructor
* Replace manual checks for /data/media with DU's check_skip_dirs()
function
* Remove check_skip_dirs(A,B) function which duplicates the
functionality of check_skip_dirs(A)
* Remove redundant trailing slash removal from
check_absolute_skip_dirs(); this function is only accessed through
check_skip_dirs()
Change-Id: Icfe8d71de36e33db6749fc5896dd3eafbcf7c9a4
|
|
In some cases, statfs used on partitions like /system does not
report a size that would trigger a split archive, but using stat
on the individual files shows a larger size that statfs that
would trigger a split. This patch prevents us from trying to split
an archive unless we explicitly decided to split in advance.
Change-Id: I67f5cd343f12333e1189100cf0ec1c20c15b7cc2
|
|
If the file could not be opened, the process would log an error
to the log file but the GUI would report success. Rearrange the
process so that the GUI shows an error.
Change-Id: I96af0b934c8f6f463d56656647b16accd1d40654
|
|
After removing the DataManager code to support twrpTar separate
binary we were failing to pass / set the password for the various
separate threads used for openaes.
Change-Id: Ifff634777fe122e0195d84f67932177ca8879c2f
|
|
twrpDU::check_skip_dirs() handles skipped folders now. Everywhere
twrpTar::setexcl() is being used to exclude files eventually calls
createTarFork(), which in turn calls Generate_TarList(), which checks
check_skip_dirs().
Change-Id: Ibbc4eb2eb89863ccb2a15f5a3b5092fb10fcbcc0
|
|
of the tar archive size. Big thanks to Tassadar for pointing out the
fix.
Change-Id: I8894ffef54c93939b5b455634169d9c14d8ed7af
|
|
Change-Id: Ib79029fd6237502338b041a6bc2f9e539536d6ad
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Change-Id: I10211f2a20da119ae6a4a1bb2f768a3fa2ab87da
|
|
Change-Id: I3230412e6aad7aab0f2fd034cc7b289cd4cd6a97
|
|
Change-Id: I943318afe787ff4ede724fa0bc77ebc6a3ba0c8b
|
|
Eliminate the use of tarDirs and Generate_MultipleArcives in
favor of Generate_TarList so that we have one method for backup
creation instead of three.
Change-Id: I267937b6e40b32d43fbac8b4cca82f7468d4f94c
|
|
Change-Id: I60e2e2a880c3bd5fff3f485f7c8e4ac9ab6fd3bd
|
|
Moved Get_Folder_Size to this new class.
Change-Id: If0a0220f900eb109581f2eeaf7b76e3f7d6886f1
|
|
Make sure that we add the root folder itself to get the perms and
SELinux contexts before splitting to a second archive.
Change-Id: Id93a9f9b4767b61bba38eb0cf7306c81a8540a3c
|
|
recreate lost+found with selinux contexts
Change-Id: I19e8696d47319dfb641520956c8a27c2a796a0c3
|
|
recreate lost+found with selinux contexts
Change-Id: I19e8696d47319dfb641520956c8a27c2a796a0c3
|
|
Make sure that we add the root folder itself to get the perms and
SELinux contexts before splitting to a second archive.
Change-Id: Id93a9f9b4767b61bba38eb0cf7306c81a8540a3c
|
|
* Using RedHat's "RHT.security.selinux=" tag in extended
tar header (type 'x')
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Change-Id: I102e492e4fa5b8a08fae4d34eb36386862509b4d
|
|
skip google music cache
Change-Id: I75d6fd0e17140d12cb2c6d335e8ff73a6f871aa2
|
|
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
In some cases compressed backups would not wait for pigz to finish
leading to backup files that were 0 bytes or MD5 mismatches.
|
|
|
|
Change-Id: Ib0098542599283787592ba08caa070dc818d6111
|
|
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
|
|
Function entryExists() can be called in order
to check if an entry exists inside an archive.
Change-Id: Id3d13d20dfb74a1779dbd8ba6f0ab08c3ca46319
|
|
Change-Id: Icbb3be817b8a8fe693f6ee015152f780c40b3f7a
|
|
Error conditions were always showing successful in the TWRP GUI
making it much more difficult to determine if a backup or restore
was actually successful.
|
|
Change-Id: I116982ceed722364406b99fb08bc6943afa0390a
|
|
Change-Id: I9fb8b927f81a8cded651e42026beb3d5c252d1e8
|
|
|
|
Conflicts:
twrpTar.cpp
|
|
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
|
|
Change-Id: I921b0647b1f63dd348b059eb630ebe9bf5ec570d
|
|
update fuse to 2.9.2
catch return from unlink so that we don't print error messages when things work
Change-Id: I1115039a0fa5d9d73f78ef1abd79755d7ffd9d96
|
|
Change-Id: I5a33d207ec6683de20da37e6f4f174c67785fc52
|
|
Add proper mkdosfs tool
Add fuse to TWRP
Add experimental exfat-fuse to TWRP
Convert all system() functions to use new Exec_Cmd function
|