Commit Graph

9637 Commits

Author SHA1 Message Date
bigbiff 6411e0832d apex: handle flattened apex directories
Change-Id: I4eb9934721ded959690d8da84a4305d15e448edf
2020-09-14 20:13:12 -04:00
bigbiff c2cb385d5d wiping: this will fix wipe with devices that don't use the
/dev/block/mapper/userdata symlink to the setup device mapper.

Change-Id: I1d5a1ed59f7c445ce86ccd52dae1e2e729e06815
2020-09-13 18:05:41 +00:00
bigbiff fdca6b8a5a truetype: fix truetype font key map
Change-Id: I09dc6798c219ae9d3f1a3745947b28e19fd0f527
2020-09-12 14:25:32 -04:00
bigbiff 8da46fa939 Revert "Implement autodetection for SAR, based on the installed system"
Change-Id: I9e6c549013c1d5564d0a2e369510535e3869dff6
2020-09-09 20:13:12 -04:00
Captain Throwback dc0823c96e TW_OVERRIDE_SYSTEM_PROPS: move up to just after fstab processing
Change-Id: I9428222fd885c2afea0a5598cc4c3a52cd729ff8
2020-09-09 19:03:30 -04:00
Mohd Faraz e3948ece83 Fix up issue during decryption
* Since some devices are unable to decrypt after processing of the fstab,
   because of the partition details updation, and after intro of dynamic partitioning
   here decryption process was going on after complete processing of the dynamic volumes.

 * This patch fix these issue, it process the logical volumes at their time not after all processing fstabs.
   This fixes the decryption issue.
   Translate more partitions i.e., ODM, Product.
   Added more partitions in unmount partitions.

Change-Id: I977c0cf0c40e5311f54a78c98f1fd89f71c6ac57
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
2020-09-09 22:49:37 +00:00
Captain Throwback 57db2cc8ac f2fs: add back fsck.f2fs to recovery build
- Fixes issue of rebooting device when data filesystem
  is set to f2fs

Change-Id: I9de815e12be57773712d4acfa0b634ce909ea820
2020-09-09 15:40:13 -04:00
bigbiff 20edca8f34 minui: fix bad merge from aosp10.
Tested charger on flame and graphics show properly when device is
powered off.

Change-Id: Ic1a46497a6bce88992b2d1a9052cba2a1a6af8b7
2020-09-08 15:08:53 +00:00
bigbiff ad58e1bfae repack: move sbin to /system ramdisk and update repacking
for android-10

This will support updating the ramdisk to a different
compression format and co-exist with magisk.

We are also cleaning up and removing non android-10
api makefile actions.

We are also moving twrp repacking to its own class. We
check the new ramdisk format and if it's different
we have magisk compress using the new ramdisk format.

Change-Id: I770030aae7797e75817178b2f0fccd9f39dc23af
2020-09-08 10:08:33 -04:00
bigbiff 3db1ffc89f Merge "persist logs: remove persist from available log directories in partitions." into android-10.0 2020-09-05 23:41:22 +00:00
Captain Throwback b7cefd105e TW_OVERRIDE_SYSTEM_PROPS: move to after super partition is set up
Change-Id: I288ef00752be0cf59977e80007a9d2e0a059b41d
2020-09-05 17:12:47 -04:00
4ndyZ af1e585f3a lang: Updated German language strings
* Added all missing strings
* Translated some English strings in the German language file
* Changed ZIP notation to "ZIP" to be consistent in the translation

Change-Id: I27812c7f79c95258363772481f71253b8b505e28
(cherry picked from commit 6c70991a72820b390185b6de923a3694dce3cf44)
2020-09-05 20:26:33 +00:00
bigbiff aac58612ea persist logs: remove persist from available log directories in
partitions.

Too many problems have been reported for TWRP attempting to store
logs in the persist partition. Selinux denials have caused issues
booting Android, and filling up persist has caused IMEI issues.

This patchset will remove persist from the list of available log
directories by default in order to avoid these and other possible
issues.

Change-Id: I29889d69f76270a8fbb764a79be3523821d8579c
2020-08-30 18:16:35 -04:00
DarthJabba9 43d70f4bc7 Exclude the dumpsys dumps from backups, to avoid error 255 when restoring data backups
Change-Id: I7a83b3789828c1400e31007e868263c54d8eb38c
(cherry picked from commit 13b07f8dbe27d85254e0a04f689a9ed6bde7673e)
2020-08-04 23:03:14 +00:00
bigbiff 5b911ca621 persist: contexts for lost+found not found when running e2fsdroid
When running e2fsdroid on persist, lost+found doesn't have any
entries in file_contexts. We are removing the lost+found directory
after a wipe now, and before the restore of the tar.
Change-Id: If5db0971884e296fae0211ff4806f3e16e394632

Change-Id: I9fa51dc9ef558cd82445df9a8fa377b1feda11aa
2020-07-19 09:32:13 -04:00
Mohd Faraz e1d72623b7 Fix up cache wipe issue in A-Only device
* missed in https://github.com/TeamWin/android_bootable_recovery/commit/3754fabbea2eefeb7c1a0c5bc804f1e14a686855

Change-Id: I8fc3719e7f98c3d9b5fd96a9820b84773d4f5d7d
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
(cherry picked from commit 25371a7e1f7f7d690755e3b12140b39567456a98)
2020-07-06 20:56:57 -04:00
bigbiff 25d25b9e67 log storage: change AB device log storage to /data/recovery
This patchset is now exlcuding /data/cache from backup, and removing it
from the wipe exclusion list to prevent errors on restore and wiping
/data.

This patchset changes the directory from /data/cache to /data/recovery for TWRP
to store logs and other file information. This will help with AB
devices that don't want recovery to mess with /data/cache.

This patchset will make ORS use /data/cache for AB devices.

Remove policy code because we don't need to set a policy for the
recovery directory.

Change-Id: I1d140276314fd34804a72297d6e25a52e58210a0
2020-07-07 00:55:42 +00:00
bigbiff 7124009f9d fastbootd: relink for startup
Change-Id: Ica7dfbfd46c06618240fb06fce9c4b31103ec506
2020-07-03 18:55:21 +00:00
bigbiff 1f780663cf minuitwrp ev_init: delay start if specified in board
This setting in the board will help if it takes longer
for the touchscreen driver to initialize.

Use TW_DELAY_TOUCH_INIT_MS := nnnn where nnnn is in MS.

Change-Id: I0a5c602edfe1214d64adadc980921a7bc0aa2bc5
(cherry picked from commit c6e2cfecce019d70ed5de74611761a2546e34828)
2020-06-29 15:50:54 +00:00
mauronofrio matarrese e50fde5c78 Set proper filesystem during decryption
Change-Id: I0bb9d4ceab83feff19571004f7dccd360ddceac0
2020-06-23 14:46:23 +00:00
mauronofrio 539597deed Rework is_metadata_wrappedkey_is_supported
Change-Id: Ia3c266bb32e31354375b633c4801e486f664539a
2020-06-23 14:45:20 +00:00
mauronofrio matarrese f1079ed67b fscrypt: : Use wrapped key for metadata encryption
Importing of this commit:
https://github.com/LineageOS/android_system_vold/commit/944c48d5a4c6df1eb751b04f52c06adac35ebab6

Change-Id: I048a6c2aeff2591135f47223a99af5ddd215703c
2020-06-23 14:44:34 +00:00
mauronofrio matarrese bd79db4d6d fscrypt: change to upgrade key if export fails
Importing this commit:
https://github.com/mauronofrio/android_bootable_recovery/commit/f999d65b23f0cd36ee85995ac1601d1b2ab690e5

Change-Id: If73dc534ddf6c8b96ce2789789f25ce432428aa5
2020-06-23 14:44:12 +00:00
mauronofrio matarrese 17fb1210a9 Rework is_wrapped_key_supported_common
Importing is_wrapped_key_supported_common from android-9.0 branch

Change-Id: I7a13b40e365a984a90a661e6c2c71cfa5b725a11
2020-06-23 14:43:47 +00:00
mauronofrio matarrese 7982032fcd fscrypt: Wrapped key support for FBE
Commit imported from:

https: //github.com/LineageOS/android_system_vold/commit/ce024f07c23d0649635a336fff389332b9806f48
Change-Id: I924a9fcbac7d790609fbafcf8c12654fdb267e32
2020-06-23 14:43:17 +00:00
bigbiff 86fabbe4d0 vendor partition: mount if found in super
Change-Id: I6348511087aca6fc722dc48677794e0d8b4a63fa
2020-06-22 17:07:27 -04:00
bigbiff 7ba7500953 decrypt: AOSP 10 requires the use of fscrypt
fscrypt aosp doc: https://source.android.com/security/encryption/file-based
kernel fscrypt doc: https://www.kernel.org/doc/html/v4.18/filesystems/fscrypt.html

This commit implements the ability for TWRP to use fscrypt to decrypt
files on the fscrypt implementation. It has been implemented mostly
in a new successor library to e4crypt called libtwrpfscrypt. Most of the
code was ported from AOSP vold.

Notable updates include:
 - updated policy storage by libtar
 - lookup of fbe policies by libtwrpfscrypt
 - threaded keystore operations

Big thanks to Dees_Troy for the initial trailblazing
of encryption in TWRP.

Change-Id: I69cd2eba3693a9914e00213d4943229635d0cdae
2020-06-22 12:17:22 +02:00
Simon Shi f4c1553789 super: emmc shouldn't be mount-only.
Bugs:
E:Cannot restore super -- mounted read only.

Change-Id: I07891b3f45a8601c1cafa45f9dd2a7a94482ac06
2020-06-18 02:38:24 +08:00
Simon Shi 407437ed39 super: Don't mount while prepare
Some of the partitions will not be unmount automatically. They shouldn't
be mounted by default.

Bugs:
DM_DEV_REMOVE failed for [product]: Device or resource busy
Cannot unmap product before removing group qti_dynamic_partitions.
script aborted: assert failed: update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list"))
assert failed: update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list"))error: 25
Updater process ended with ERROR: 7

Change-Id: I7cbd5c29456ca2731b94a69bbf9ad77058cef09c
2020-06-16 00:06:48 +08:00
mauronofrio 6d3bf891c4 Add ozip decryption for Oppo/Realme device
This function will automatically decrypt .ozip file in a .zip and it will
save the .zip in the same folder of the .ozip and with the same name.
After the decryption, the flash will start.

To enable this function you have to set a Boardconfig flag with the
decryption key like i did here:

https://github.com/mauronofrio/android_device_realme_RMX1901/commit/a30625f80a31b9b85e4948fc9f9beeb61d5bcb8a

Original projects:
https://github.com/sabpprook/ozip2zip
https://github.com/bkerler/oppo_ozip_decrypt

Change-Id: Ic93243a565008c442bcf2992069b2801532ac7c1
(cherry picked from commit 0ff59845f2f8dddedb4cee9a9faf86a6294cce66)
2020-06-10 22:31:49 +00:00
Captain Throwback 87d73d6620 FBE: set TW_IS_FBE based on whether key version path exists
- Should not be determined by whether support exists in TWRP
- Set to 0 by default if FBE is not detected

This also prevents the wrappedkey check from running
on FDE devices

Change-Id: I85d1952facdfafdaa1571fc1b11d4b4b7d9ba48e
(cherry picked from commit cf0dffce3413261f149a3565d8f27cb32490ae54)
2020-06-10 16:33:52 -04:00
mauronofrio 38ed6a7e82 Allow Gui File Selector filter to check among more extensions
For example now in Install menu we are seeing all files with .zip
extension, after this commit we can see also files with .ZIP extension.
Just add the extension between ";" separator.

Change-Id: I6ddd2a812a182570af3d76711b1e3e13740a466b
(cherry picked from commit 27020944c2472c28b12ceccf676d58c2709af890)
2020-06-10 15:34:28 +00:00
Patrick Zacharias 0edce1a2a4 gui: Repair OEM build
Building with TW_OEM_BUILD results in errors during compilation:

error: unused label 'error' [-Werror,-Wunused-label]
error: unused parameter 'allow_commands' [-Werror,-Wunused-parameter]

These changes are required to allow compilation to complete.

Change-Id: Iddc5bf1b90120de19a472c48b21d3531b758cacf
(cherry picked from commit 0cd6be903b3129b30d5abe40d3a0f30545eef27d)
2020-06-10 14:38:39 +00:00
Mohd Faraz f9ded0665b fix flashing issue after restore policy issue
* since commit: https://github.com/TeamWin/android_bootable_recovery/commit/a2bd7b7758a4585814f642d55301043276d8a002
   after factory reset /data/recovery doesn't recreates in A-only devices.

 * so fixes issue flashing newer roms need access to /data/recovery

Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
Change-Id: I02cb67f7161571b1aa02784049231d42872a3587
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
(cherry picked from commit bcbe94e2b5ef83fe65a5c9767287802365b5ee4e)
2020-06-10 14:24:25 +00:00
bigbiff 325e0a2cca ext4crypt: fix include location for recovery-twrp in lineage
Change-Id: Iefa73425fc13f41f5a267cce0c5d4047edc25e9e
(cherry picked from commit 186eb7002d95e28325f2d2e42637c989e08ac618)
2020-06-08 23:28:07 +00:00
LameMonster82 4ef96a6f9a add support for TSPDRV vibration
* Needed for the LG V30, G7, V35, V40

* Use TW_HAPTICS_TSPDRV in your BoardConfig.mk to enable it.

Change-Id: I0970ed5c046e851f7e6f562283523c7214c8d2b5
(cherry picked from commit 314cbd5698d1750a31c9cf4284d3ce8dfadce157)
2020-06-08 22:36:41 +00:00
bigbiff 32cbabe413 apex: mount up apex files into /sbin for library access
This patch uses the loop device to mount files under
/sbin/ from /system/apex in order for the device to
use libraries or other files store inside these files.

Each apex file is mounted over a loop device into a
directory correpsonding to the apex filename under
/sbin/.

Once apex mounting is completed, TWRP will set a
property twrp.apex.loaded to true so that init
can use them as a LD_LIBARY_PATH source.
Change-Id: I69f14a969123ac9cf1afc85b6cf76836cb092fb2

Change-Id: Ica6a7d8e479bcaec8bec4483b5e8d2b45ee105fb
2020-06-08 20:38:04 +00:00
bigbiff ee7b7ffba4 super partition: mount super partitions using fs_mgr
We are now requiring fstab v2 for android-10+ trees. You can
specify twrp flags using /etc/twrp.flags to label and
annotate partitions.

This patchset uses fs_mgr to load the super partition and build
device mapper blocks off vendor and system depending on the slot
in use. These are mapped to partitions in TWRP and allowed to
be mounted read-only. The super partition is also mapped into a
TWRP partition in order to backup the entire partition. You cannot
backup individual device mapper blocks due to the device can only
be read-only. Therefore you cannot write back to the device mapper.

Change-Id: Icc1d895dcf96ad5ba03989c9bf759419d83673a3
2020-06-08 20:37:29 +00:00
bigbiff 3a299dcc32 relink: use relinked files as required modules
Change-Id: I18bffa454ad64d70c5efedbf174887571e95b734
2020-06-08 20:35:01 +00:00
Mohd Faraz bc576cde4b TWRP: Enable qti input haptics vibrators support
* these type of vibrators are present in newer devices based on
   board sm8150 & above. Like Oneplus 7 series, Redmi K20 Pro, etc.
 * to enable it add TW_SUPPORT_INPUT_1_2_HAPTICS := true in Boardconfig.mk
 * you will need to add the vendor vibrator service to init and run it in your device tree
Change-Id: I0fe6612def149e70808ca41829b6f7ba0b23cd62
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
(cherry picked from commit 909daa959c99cf3a6abbe224ec3fc45669df4440)
2020-06-08 01:43:05 +00:00
bigbiff f654e8483b twrpapp: modules in 10 should be optional
Change-Id: I465eb02bfeb1feeb087458955241c1456b0ef496
2020-06-05 21:03:23 -04:00
bigbiff 50aa4adcee twrp version update: update to 3.4.0 release notes are on twrp.me
Change-Id: I3762fb3e2c3ffb4cbdc6d93ce424cacc7e0ef418
(cherry picked from commit e0e43403b9bdd9261e733aa0448d7689a9f23ced)
2020-06-05 19:42:50 +00:00
Chaosmaster 4ee7cbddde Remove /system -> /system_root/system symlink in ZIP-install
when unmounting system /system_root/system is symlinked to
/system on devices built with BOARD_BUILD_SYSTEM_ROOT_IMAGE

Some ZIPs don't play well with a symlink when trying to mount to
/system.

Change-Id: Ifb0a105ddc0337353a7e1ac234c9f1e5b387e992
(cherry picked from commit 589daae9ccd2951263bd183125c0ad6de454e277)
2020-06-05 19:39:59 +00:00
Stefan Tauner 6ad1457332 Add and install permission file for Android 9+
Without this, installing the twrp app as system app leads to
reboot loops into recovery with log messages like:
java.lang.IllegalStateException: Signature|privileged permissions not in privapp-permissions whitelist: {me.twrp.twrpapp: android.permission.READ_PRECISE_PHONE_STATE, me.twrp.twrpapp: android.permission.BATTERY_STATS, me.twrp.twrpapp: android.permission.PACKAGE_USAGE_STATS}

Change-Id: I6156323ea0d23512b0d7eefbd03aa627f3002ae8
(cherry picked from commit 86a4370e6fe4bb20033b0de3a261aec4bf3573db)
2020-06-05 18:39:36 +00:00
Mohd Faraz b98b4f7b96 partitionmanager: magisk update sytnax as per new binaries
Change-Id: I51994b991472cf103de067b9856ff3df1bf35a90
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
(cherry picked from commit 5738e760646d67791e938954a8873da41209d58c)
2020-05-30 20:05:43 +00:00
Mohd Faraz fb62b1806e crypto: Update crypto fde
* Some missed in https://github.com/TeamWin/android_bootable_recovery/commit/191a6948d9f1f627cc53c38d72d4bce2e7897753

* Crypto msg from https://source.codeaurora.org/quic/la/platform/system/vold/commit/cryptfs.cpp?h=LA.UM.8.1.r1-13500-sm8150.0&id=e1a7e772699216121dd8fa774381ffeedb076139

* As devices required to update 'Upgraded key' through keymaster in v4.0.

Change-Id: Ia66be6917c4690f0d70ba89ea33ebfa2fcb6974a
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
(cherry picked from commit b51f4af5286750bf15ffe61fd85e8600cbfd15c5)
2020-05-29 14:07:53 +00:00
bigbiff adc599e005 Revert "Add support for multi-user decryption"
This reverts commit 0b25b1d79b.

Reason for revert: Changes need to be made to libtwrpfscrypt to include this patchset. Will cherry-pick this patch later and make necessary modifications.

Change-Id: I7601d7b820129709b05d9b4368573b6f1048de02
2020-05-28 19:36:30 +00:00
Noah Jacobson 0b25b1d79b Add support for multi-user decryption
* Add CLI support using the command "twrp decrypt <PASSWORD> [USER ID]"
* Add GUI support using the menu Advanced --> Decrypt User

Change-Id: Id2681bc2b1012a0571417f7a6e0b980b1b25c61c
(cherry picked from commit 5a79f67a1b1bd1bcadeca0a4896a871646652534)
2020-05-20 19:11:15 -04:00
Mohd Faraz 784073e9fe relink: relink reboot
Signed-off-by: Mohd Faraz <mohd.faraz.abc@gmail.com>
Change-Id: Ie64dad38f1382df5f7bc64f4d21a0602f23b07b1
2020-05-20 00:09:55 +02:00
bigbiff bb5d66889f relink: make dependent on libtar compilation
Change-Id: I51ef2918e6aacb3078a38cc9ec7fae2dfb9e73ee
2020-05-19 14:45:24 -04:00