| Commit message (Collapse) | Author | Files | Lines |
|
AMLogic based device uses paths like /dev/block/recovery and the
stock init binary either deletes or does not create mmcblk0p12
which breaks TWRP because TWRP cannot match up the path / name.
The ioctl method is probably more reliable anyway and certainly
should be faster.
Change-Id: I73f981dcec637cdf5b189bdefa00ea15b924b500
|
|
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
|
|
Process_FS_Flags Flags parameter is just a copy not a reference,
not get updated, Mount_Flags always 0 - fix it now.
Thanks to SHM @ XDA-Developers
Change-Id: Ib044db905febfedefee493cfc04fd1cad6f61f8e
|
|
* 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
|
|
Change-Id: Ifb6c186e43e1eb068e8075def16924ced04bb23d
|
|
The vendor partition is verity checked just like system so we
should treat vendor as read only same as system.
Change-Id: Ida65c9f44d8610e52fcdcef0b4a50faf5c7110d2
|
|
Mostly adding __unused where needed.
Change-Id: Ia4f675b9b360782728c361ed1699db0cc277c3a5
|
|
Change-Id: I032fabb383b4063e3b31b6044ce39966b8c617d0
|
|
Add support for mounting ntfs via ntfs-3g and support for wiping
and repairing ntfs partitions.
Change-Id: I82dc4626f459bb93b86eb9ebba64ad3a6560781b
|
|
Change-Id: I60755ca66f048d1484c3d55dc60099679ba987f6
|
|
Change-Id: I3671d7a5759260a4e74952168483a6816eb28f5d
|
|
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
|
|
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
|
|
Change-Id: I21d0498fc16fdb29d09d6e6fe715e57d1f35e72b
|
|
Restore: improve image restoration speed
* Workaround for devices that need to backup partition as image, eg: dm-verity
* Increased block size used for partition restore, now using 8M instead of 4K
Change-Id: Ie7e7ff3283d71a7e459d76f72caea9f57e71c628
|
|
Change-Id: I121ef0f5da209be48f6d87559d539c7fc6d85336
|
|
* ONLY Applicable when building with 'TW_USE_TOOLBOX := true'
* toolbox's 'mount' expects the first argument to be a block device, but /data/media is a dir.
* Technically we don't 'mount' a dir to another, we 'bind' it instead.
* So we define the mount option explicitly with '-o bind'. (supported by busybox 'mount' too)
Change-Id: If97c9096167fb723150b949f4336005b3313a174
|
|
Change-Id: Ia2d3268a96423e9ca3846500c57e674c4f8fa60b
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Change-Id: I6e063fba8d58c8c53da6bca6292c84e3392aee50
|
|
We will convert a -16384 to 16384 if needed because mkfs.f2fs
does not like negative numbers like make_ext4fs does. Also enable
trim by default on f2fs.
Change-Id: I8b41e65d1ff894433665c65d0569a51803c67891
|
|
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
|
|
Change-Id: I843ddf7a5bca3ca7670dd6f19644b37cf017e5b1
|
|
- 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
|
|
Break libblkid into 4 libraries: libblkid, libuuid, libutil-linux and libfdisk.
This should help in later patch updates.
Change-Id: I680d9a7feb031e5c29a603e9c58aff4b65826262
|
|
Change-Id: Iac7852a4fb2add5744d5ea424d6ad5a82828f102
|
|
- avoid parsing permission strings
- fix memory leaks, a fix new/free mismatch and a compiler warning
- fix that only first updated-package was processed
- fix a potential stack overflow if packages.xml is huge
- minor refactoring for reducing duplicated code
- don't process packages without codePath
- fix path for deleting app data (currently unused anyway)
- fix file ownership on libs
- try not to mess up Android 5.0 app permissions
Patch set 4
- make fixing SELinux contexts an option with a check box
- add some notes / text to the themes
Patch set 6
- decouple "fix permissions" from "fix contexts"
Change-Id: Icc77ecc581befc5ce6e419b1f3b8ca189208c234
|
|
With 5.0 L, we decrypt automatically if the default_password is
used. Non datamedia devices do not get the format data button so
they cannot wipe encryption off the device. This patch add a wipe
encryption button where the format data button would normally be
located on the Wipe page.
This patch also attempts to remove / delete the dm-crypt block
device before formatting.
Change-Id: I100d5d154d6c49254fd48e23279df973db5f23ae
|
|
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
|
|
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
|
|
This is mostly kang from AOSP resources.c for loading png files
into RAM, but for ease of compatibility we retained the older
gr_surface data types throughout and ensured that we retain
support for alpha blended png files.
Change-Id: Ieea552173d3bfe885460407be73088bbad75663f
|
|
Change-Id: If8114b5eac741db6c512fb35cb48e3825c2ff098
|
|
Trim cryptfs.c to remove functions that TWRP does not use for
decrypt and remove the need for libfs_mgr from cryptfs.c by
passing some items to cryptfs.c from the partition manager.
Add support for new fstab flags:
encryptable and forceencrypt=/path/to/cryptokey
For example:
flags=forceencrypt=/dev/block/platform/sdhci-tegra.3/by-name/MD1
Note that "footer" is the default, so you do not need to set this
flag on devices that use the footer for the crypto key.
Also add mounttodecrypt if you need to mount a partition during
the decrypt cycle for firmware of proprietary libs.
Clean up decrypt and only support one version
Android 5.0 lollipop decrypt should be backwards compatible with
older versions so we will only support one version, 1.3 that came
with 5.0 lollipop.
Remove support for Samsung TouchWiz decrypt. It does not work with
the latest versions of Samsung encryption anyway and it has not
been updated to work with any AOSP decryption higher than 1.1
Change-Id: I2d9c6e31df50268c91ee642c2fa090f901d9d5c9
|
|
Mount the vendor partition if it exists so we can use any
proprietary files we may need.
Relocate auto decrypt when default_password is in use to after all
partitions are added so that we can mount the vendor partition.
Change-Id: I93455a35695779f53ef57a82d3d45c7216c13639
|
|
Kang in cryptfs.c and cryptfs.h from vold.
Use TW_INCLUDE_L_CRYPTO := true to enable.
Ramdisk must contain the normal fstab file in the root in the
usual format of:
fstab.{ro.hardware}
For examble for Nexus 5:
fstab.hammerhead
Or on many Qualcomm devices:
fstab.qcom
Tested against Android 5.0 lollipop on Nexus 7 2012 grouper. Not
sure if or how this will work when we are dealing with a device
with a hardware keystore. Long term we need to add a GUI element
to allow entering a pattern. For now you can decrypt a pattern
unlock by converting the dots to numbers in the following format:
123
456
789
So an upper-case L would translate to 14789 as a password entered
on the keyboard.
Change-Id: I02c29e1f1c2eb29bf002c9fe0fc118357300b5b3
|
|
Change-Id: I23c490e6228b0fcf656c76ac314c69508ba2329d
|
|
We should not need to set or change the contexts of the media
folder when doing a factory reset. We should only do this when
we need to recreate the media folder.
Change-Id: I9f9918743d687b0aa0eb1e50747677f883037047
|
|
Especially with /sd-ext, trying to wipe when the device is not
present causes a seg fault in the make_ext4fs function. Check to
make sure that the block device is present before trying to wipe.
Change-Id: I91973b5b832c9edbce81d61a271e84363c19e6c5
|
|
- use std::map instead of linked list
- read directories on demand
- fix writing zip files to storage root
- fix creating directories
- lots of minor fixes
- simplify generation of storage IDs and make them spec compliant
Change-Id: I2137c27549ddbdc58466f2e3aeda464fac70a3c5
|
|
thanks @bigbiff for the suggestion
Change-Id: Ie9b55537b7fa300461b015d2b9523d4250e755a9
|
|
Change-Id: Ia3007fbced9ce3bc94efdb3dacc582a5e68a49a4
|
|
Big thanks to Dees_Troy for helping with the implementation.
Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
|
|
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
|
|
Change-Id: I600e7e9ce89621400531bceb472387aafc0d6ed8
|
|
This is by no means comprehensive, but is quite a bit better already.
Change-Id: Ibc8654a5dfb0eec39cbd0b64bdb52bb4fbfe2f7e
|
|
Change-Id: I9043e98e1e1ed4722f05c13a60b43d2d0bf739f6
|
|
Some devices (jewel, m8) have .android_secure at a non-standard
location. Allow a different partition to be specified as the home of
.android_secure using the fstab flag 'andsec'.
Using the /data/media variant of jewel as an example, recovery.fstab or
twrp.fstab could be edited like follows:
/external_sd vfat /dev/block/mmcblk1p1 flags=display="MicroSD";andsec
Note, this is NOT a method to move .android_secure in your ROM. Your ROM
must already write to this alternative location.
Change-Id: I3a6e4e63aaddb35870b79e80938b0f9c2c902443
|
|
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
|
|
recovery.log
Change-Id: I19e3df2e977e09e222733f13324051334982b05d
|
|
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
|
|
/data/*/media directories are mistakenly being excluded from the size
calculation. Change to absolute dir exclude so that only /data/media is
excluded.
Change-Id: I6e97604d44e6ea2bdf7dfd8c68a2f90ba6d44415
|
|
Change-Id: I6de4c5db3e3183229d7029fc72b957c7ef61f23a
|
|
Change-Id: I9e2b8e9b69c94b94c57143c04b950530490ec33e
|
|
Verify that we have a valid footer with proper magic before
setting things up for decryption to help prevent user confusion
when dealing with data partitions that fail to mount. Also check
to make sure that the block device for /data is present.
Change-Id: Ie87818fe4505a8bf71df7d3934c114e7328ef3ca
|
|
Change-Id: I5c7d104689ed2b578b463a6be55b3688dcc4c01a
|
|
Change-Id: I943318afe787ff4ede724fa0bc77ebc6a3ba0c8b
|
|
Change-Id: I900f42892d47f54b573cc1dbfb551ed2a8f9e8b9
|
|
Example: f2fs on Moto G needs fsflags="inline_xattr" in the stock
ROM but the Google Edition uses ext4 which fails to mount with that
option.
Change-Id: I01bce214e7f15e43e66ac35729fd3521609ffad3
|
|
Do a restore of loaded file contexts to /data/media directory. This will help denials to be prevented when internal storage is wiped.
Change-Id: Ie49bbfa48d2f3ee4f08376d9c1877b92c051017c
|
|
Change-Id: I9effd57c2b4d28c3bd9ca1045a0bb0ac8c958245
|
|
Change-Id: I9e1c7f4a8353b7be51e1a54bf5d506c9dce70da2
|
|
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: Ib62af6ad8596aa18bf48cb750e2ecf442dadc627
|
|
Change-Id: I46b94d55fc649a2abf27569ccf99aabb2822d663
|
|
Change-Id: I11a7e441f7fe4e556a5349822150493de90095f1
|
|
Moved Get_Folder_Size to this new class.
Change-Id: If0a0220f900eb109581f2eeaf7b76e3f7d6886f1
|
|
example userdata line (as needed by MotoX):
/data f2fs /dev/block/platform/msm_sdcc.1/by-name/userdata flags=fsflags="inline_xattr"
Code for parsing flags/options originally based on AOSP fs_mgr sources.
Change-Id: I5fb2b5d5cdd08137e6bf71f0085a3f8aebd889a8
|
|
Change-Id: I3be70a897e563658736b2dec3a9ea2697b69b225
|
|
Change-Id: Id932ce1b99dee85feb788c513acad3384af6459e
|
|
recreate lost+found with selinux contexts
Change-Id: I19e8696d47319dfb641520956c8a27c2a796a0c3
|
|
|
|
|
|
recreate lost+found with selinux contexts
Change-Id: I19e8696d47319dfb641520956c8a27c2a796a0c3
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Change-Id: Id8acff1ac9b3c7e4b562c80562a8ff42a1d132b9
|
|
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Change-Id: I58f4a8cedf31e6b6efd88f96a43ed525603ae311
|
|
|
|
Need to add this to your source tree:
https://github.com/razrqcom-dev-team/android_external_f2fs-tools
Change-Id: I3ee9ebbb617259655518f8ea356ce7b8c246cd4d
|
|
skip google music cache
Change-Id: I75d6fd0e17140d12cb2c6d335e8ff73a6f871aa2
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Change-Id: I11e1a3d018d921d96ba08915925b14bf633be6ed
|
|
|
|
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
|
|
Pulled part of change from kokotas in this patch set:
http://review.teamw.in/#/c/586/
Change-Id: If1c5b1563df16f9c561c94f61010f6a99f36efa0
|
|
Change-Id: Ie7d5878faf86b8fa824b72211be7fd3596b471d7
|
|
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
|
|
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
|
|
Change-Id: I4ec037f76aa965bc818afe924942adbe9a080b36
|
|
create a framework for computing digests and reading digests in TWRP
add space for backwards compatibility with bb md5sum
Change-Id: Ia18e3f430eed5eba22e5052d39b9b8d88ecd4536
|
|
we can now use libblkid to detect exfat
|
|
taken from https://github.com/mrjavum/Team-Win-Recovery-Project/commit/140ff0cde8ad2236caf7bcd480d257d74d8b85bc
"sorocean.gor@gmail.com"
Change-Id: I1a97160c73c7a0bab0535e938d6b35dc09585037
|
|
Conflicts:
twrpTar.cpp
|
|
update fuse to 2.9.2
catch return from unlink so that we don't print error messages when things work
Change-Id: I1115039a0fa5d9d73f78ef1abd79755d7ffd9d96
|
|
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: I5a33d207ec6683de20da37e6f4f174c67785fc52
|
|
|
|
Fixed handling of blkid output when the output spans multiple
lines and the TYPE field ended up on next line.
|
|
|
|
Fix backup to not error when a non-existant partition is given.
Fix restore to run when no partition parameters are given.
Ensure that ORS runs after decryption and that zips install.
Fix a problem with the fake internal sdcard not mounting to
/sdcard on data media devices.
|
|
Needed on Sony mint (Xperia T) as the /data/media folder is a
separate partition and normal data media wiping is not appropriate
for this device but the layout version file needs to be retained
for Android 4.2 multi-user.
|
|
|
|
|
|
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
|
|
- Until the encrypted partition is decrypted, treat it as a disk image
instead of a filesystem so that it is properly backed up using dd.
- Make Partition::Wipe() use the filesystem from fstab for disk images
so that wiping an undecrypted /data makes it a plain unencrypted
partition again.
Change-Id: I78db977d6348cfa66b0cfbc492fb5776f84db48d
|
|
Change-Id: I6c4cee5b038fd0c39c8723412dd8f421f7794a00
|
|
Change-Id: I206d34936388c1b072eaaec50e0492710cb80f2e
|
|
|
|
Change-Id: I8f2b5b68a8c3ede74858d53002efab997174ee65
|
|
|
|
Change-Id: Ie44958a148d00cadd2ba3c51255f7fd9d8a651e7
|
|
Also fixed inability to delete backups with a space in the name.
Change-Id: I2f6639d33caa3c4542960f76adbd59b25ab64f5d
|
|
|
|
|
|
|
|
|
|
and leave it mounted or unmount based on prior mounting status
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also improve handling of MTD names
|
|
Converted bootloader.cpp to TWRP and removed AOSP fstab parsing
from startup
|
|
|
|
|
|
|
|
|
|
|
|
Modify AOSP mount and wipe functions to use Partition Manager.
Update wipe code to reset the log file index when wiping cache.
Add ADB sideload to 540x960 theme.
|
|
|
|
Add in archive splitting support
|
|
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
|
|
|
|
|
|
Add flag parsing from recovery.fstab
|
|
|
|
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
|