Since the 9.0 and 10.0 TWRP branches have diverged due to adding
dynamic partition support, this will make it easier to understand
which branch of TWRP is being used for the build.
Change-Id: I2712c9498c9230e9a6d2eac718bda9e82a6d14f7
This library will need to mirror AOSP for any changes to installing
packages. The library has been separated out in order to make importing
updates from AOSP into the TWRP project.
twinstall.cpp has been removed from the recovery binary and added to
this library. It has been refactored for libziparchive.
Sideload has been reworked to use the newer methods from AOSP on
flashing packages through adb sideload.
We are also removing old libraries for adb and verifier.
Lastly before flashing a zip or image, we want to unlock block devices
for writing so that when an OTA is flashed to the inactive slot,
the flash will succeed.
Change-Id: I6d8702fc9031ffaf9f666b4ba375dc7d9362e473
To other Chinese translators:
Do not replace "…" to "...", it is incorrect in zh-CN, should be use Half-width ellipsis.
Use "槽位" instand of "分区" to translate "slot".
Change-Id: I753d9bfe9d172a64373c8809a78b667b9d75d0e3
This fixes a cosmetic issue on Samsung devices, namely that
Clear_Bootloader_Message() returns an error reading the fstab, which
actually doesn't matter, because the fstab has already been read and
parsed by the time Clear_Bootloader_Message() is called.
Change-Id: I35e508f24d81f66bdaa56006cece9082178c0ba9
BUG: Some devices having issues with mounted apex while flashing some packages.
TEST: Added a device specific script in the device tree, which deloaded the apex, which are not needed and its fine.
Example script: https://gist.github.com/AndroiableDroid/cf5a04f80b6326c759a59be5d828434e
Change-Id: I5c89dcd92871fec63c6a875c1a47eb8145ba71fa
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
Only include hwservicemanager if CRYPTO flag is set and
only include servicemanager if FBE is included.
Only include health-hal if device uses dynamic partitions
Change-Id: I056d0246e406dc9f00bda65247455741ef986a37
In order to make sure the crypto state and type is set
properly if the device is encrypted, move this check to
a function and call it in cases where the default password
is being used and in cases where it isn't. This will ensure that
an unencrypted device isn't set as encrypted by mistake.
Change-Id: I736f9cbee0e95d7390a09c8235b9914feddaceaf
The Rescue Party trigger manifests itself when a user is trying to boot
a ROM but keeps getting dumped back to recovery.
Normally, TWRP doesn't capture this, and the user is often wondering
what is happening. This patch captures the trigger and presents a clear
message to the user about what is going on (with options of how to
resolve the situation).
Change-Id: Ia4414ce6270a7ee9e54d14381990ca4766e757bd
As it was previously, the OTA updater was failing because the comparison was exact, instead of the string being scanned for UPDATE_PACKAGE.
The patch can be tested by going through a block-based OTA update process (ie, either MIUI OTA, or an AOSP ROM with block-based OTA updates).
Change-Id: I5e6e585327d4653381b1fcdf802656193427ab2f
BUG: prebuilt vendor blobs are being overriden by vendor partition, which causes failed to decrypt the device
TEST: after this patch vendor is no more overriding and decryption working as expected.
* Devices using the stock or the rom based libs then it needed to add the TW_USES_VENDOR_LIBS := true in the BoardConfig
Change-Id: I3cbc7fe6df2289081e9198941cfb65a1a7e0e6a3
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
vndservicemanager should be included with crypto support
boot and health services are needed for bootctrl and fastbootd
hwservicemanager and servicemanager should be included
regardless of crypto status
Change-Id: Ie76dac11b733c4549c2d55301cf614fe82905884
* Add CLI support using the command "twrp decrypt <PASSWORD> [USER ID]"
* Add GUI support using the menu Advanced --> Decrypt User
multiuser: Parse users only when Decrypt_DE runs successfully
multiuser: Warn when not all users are decrypted
Change-Id: Ia5e943b13c2d5ec5c34ae97661133c19ff471e6d
For the back-up menu, we can detail what the super partition includes by
aggregating one of BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST or
BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST.
We comma-separate the list and capitalise the first letter of each
dynamic partition.
Change-Id: I663eaf4f28b4591293aae21c2dd11f615f625746
* since bu binary was not in required modules, as per the change https://github.com/TeamWin/android_bootable_recovery/commit/3a299dcc322a21802e555da9a4ab51d00ced6ee0
it was including the required modules and giving the following error
FAILED: out/soong/.intermediates/frameworks/base/ext/android_common/turbine-combined/ext.jar
echo "module ext missing dependencies: libphonenumber-platform, nist-sip, tagsoup, libtextclassifier-java" && false
module ext missing dependencies: libphonenumber-platform, nist-sip, tagsoup, libtextclassifier-java
FAILED: ninja: 'out/target/common/obj/JAVA_LIBRARIES/org.apache.http.legacy_intermediates/javalib.jar',
needed by '/home/androiabledroid/twrp/out/target/product/rolex/obj/JAVA_LIBRARIES/bu_intermediates/dexpreopt.zip',
missing and no known rule to make it
Change-Id: I1b93235b61f18f201968e4550b0e9195968bcaf2
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
On some devices, having the vendor partition mounted
causes slot switching to fail ("Error getting bootctrl module")
Automatically unmount vendor partition prior to switching
slots to ensure the process completes successfully.
Use lazy unmount if Unmount_by_Path function fails.
TEST: Mount vendor partition, then switch slots.
Vendor partition should be unmounted when
switching completes
Change-Id: If6198d4693141be464749c4d423a9088753d939e
fastbootd is a userspace daemon that runs in the recovery
ramdisk. It allows writing single partitions to the super
partition via fastboot CLI. When TWRP sees the fastboot option
in the misc partition during startup, it will start with
the fastbootd page and fastbootd running. Otherwise it will
run recovery normally.
Change-Id: Id7b12d29ef21dbd5950dc884dd1cd788f25357f0
If the prop persist.twrp.rotation is set to 0, 90, 180, or 270,
that will be used. If the prop is not set, the existing rotation
board config flags will be honored.
Note: This flag will only rotate graphics. If a set of devices
needs differing touch rotation, that support will need added
separately.
Change-Id: I6996c07bc0ae7bb8555b3d480b2917a17a365eb3
hwservicemanager and servicemanager are needed for decryption
and fastbootd in TWRP. Include these services by default since
they are standard Android services and independent of device
tree or SoC.
Change-Id: Id0ec73d9a6ca0289c7b4f67e9dcf541b2157c04e