The fields of the ZipArchive on the stack are not initialized before we
call libminzip to parse the zip file. As a result, some random memory
location is freed unintentionally when we close the ZipArchive upon
parsing failures.
Bug: 35385357
Test: recompile and run the poc with asan.
Change-Id: I7e7f8ab4816c84a158af7389e1a889f8fc65f079
The fields of the ZipArchive on the stack are not initialized before we
call libminzip to parse the zip file. As a result, some random memory
location is freed unintentionally when we close the ZipArchive upon
parsing failures.
Bug: 35385357
Test: recompile and run the poc with asan.
Change-Id: I7e7f8ab4816c84a158af7389e1a889f8fc65f079
The change to platform/build in [1] added support for mapping numeric
DPIs to a proper density bucket. As a result, 560dpi gets mapped to
xxxhdpi automatically. This CL removes the previous workaround.
[1] https://android-review.googlesource.com/c/platform/build/+/741666
Bug: 111559919
Test: Build recovery image for marlin. Verify that it picks up xxxhdpi
recovery resources.
Test: Boot into recovery. Run graphics test.
Change-Id: I65fefc7e2ba90b347e0ad283139429266d77c3b4
These properties need to be exposed to both of charger and recovery.
This CL tracks the name change.
Bug: 113567255
Test: Build along with other CLs in the topic (for Makefile and
sepolicy changes). Boot into charger mode.
Test: Boot into recovery. Run graphics test.
Change-Id: I4d90778c1767c9bd7e00830a34ee2d4875ce0b83
applypatch() was initially designed for file-based OTA, operating on
individual files. It was later extended to allow patching eMMC targets
as a whole, in favor of block-based updates.
As we have deprecated file-based OTA since Oreo, part of the code in
applypatch() has become obsolete. This CL refactors the related
functions, by removing the obsolete logic and focusing on eMMC targets.
Since this CL substantially changes applypatch APIs, it adds new
functions to avoid unintentionally mixing them together. In particular,
it removes `applypatch()`, `applypatch_check()`, `applypatch_flash()`,
and adds `PatchPartition()`, `PatchPartitionCheck()`, `FlashPartition()`
and `CheckPartition()`. It also replaces the old Edify functions
`apply_patch()` and `apply_patch_check()` with `patch_partition()` and
`patch_partition_check()` respectively.
This CL requires matching changes to OTA generation script (in the same
topic).
Bug: 110106408
Test: Run recovery_unit_test and recovery_component_test on marlin.
Test: `m dist` with non-A/B target. Verify
/system/bin/install-recovery.sh on device.
Test: `m dist` with non-A/B target using BOARD_USES_FULL_RECOVERY_IMAGE.
Verify /system/bin/install-recovery.sh on device.
Test: Install an incremental OTA with the new updater and scripts.
Change-Id: Ia34a90114bb227f4216eb478c22dc98c8194cb7f
Now it's less beneficial to inject I/O faults since we don't see many of
them. Remove the library that mocks I/O failures. And switch to android::base
I/O when possible.
Bug: 113032079
Test: unit tests pass
Change-Id: I9f2a92b7ba80f4da6ff9e2abc27f2680138f942c
Now these are in the main image, there's some chance of code assuming
they're present in recovery too (or command-line users using them out
of habit).
Bug: http://b/31824379
Test: builds
Change-Id: Ia19272cd1959685765099f3e15d1d1e63babd279
We already have these shared libraries on device. And `uncrypt` doesn't
need to be statically linked (it wasn't, even prior to this change).
With this change, the size of uncrypt goes down from 139KiB to 33KiB
(aosp_marlin-userdebug).
Test: Build and flash on marlin. Trigger a factory reset (which calls
`uncrypt` to set up the BCB).
Change-Id: I77e3c82e8ce3734019da75c48928d881cb7ef0f0