Commit graph

11762 commits

Author SHA1 Message Date
Tom Marshall
cff2229a28 recovery: Provide caching for sideload files
Create a cache of block data received via adb.  The cache size is set
to ensure that there is at least 400mb available for the installer.

When the cache is large enough to hold the entire file, each block is
read via adb at most once.

When the cache is not large enough to hold the entire file, the cache
will need to be pruned.  Because files tend to be read sequentially
during install, the pruning algorithm attempts to discard blocks that
are behind the current file position.

Change-Id: Id8fc7fa5b38f1d80461eb576b1a1b5d53453cfc1
2024-09-08 01:05:13 +02:00
Michael Bestas
096e85eb89 recovery: Add wipe system partition option
Change-Id: Id606cef249a7464037443de6265055803c290d82
Signed-off-by: zlewchan <zlewchan@icloud.com>
2024-09-08 01:04:52 +02:00
Simon Shields
e8ccb88add recovery_utils: add support for unmounting entire volumes
When wiping /system, the partition isn't actually mounted at /system
or / - it's mounted at /mnt/system. This breaks 'format system' from
recovery if the partition has been mounted.

This patch adds an ensure_volume_unmounted function that finds all
mounts of a given device and unmounts them, meaning the device
can be safely formatted.

Change-Id: Id4f727f845308a89e865f1ba60dc284f5ebc66e1
2024-09-08 01:03:51 +02:00
Matt Mower
cc8755d97b recovery: Allow device-specific recovery modules
Provide a means to include device-specific recovery modules that need to
be built (i.e. not pre-built). A list of recovery modules can be
specified by a device with:

TARGET_RECOVERY_DEVICE_MODULES := rec_mod_one rec_mod_two

Change-Id: Ibd19a71318863461d472471a4f7cfddfb1b9ae0d
2024-09-08 01:03:37 +02:00
ExactExampl
90e3541d88 fixup! recovery: Add runtime checks for A/B vs traditional updates
* A/B package HAS metadata

Change-Id: I06fd64fa688d1602a629f70b772628c1e8221b8a
2024-09-08 01:03:25 +02:00
Christopher N. Hesse
2433eb0334 recovery: Add runtime checks for A/B vs traditional updates
This allows A/B devices to install legacy (non-payload) style update.zip
packages like our addonsu or gapps.

Do not abort an update if META-INF/com/android/metadata is missing,
instead use it to determine whether the update is an A/B ota or not.

Change-Id: I907a92732470b947de007dde11fb71db64d94c9b
2024-09-08 01:03:18 +02:00
Richard Hansen
e741c95667 recovery: Clarify help text
Currently this help text is not rendered, but that will change in a
future commit.

Change-Id: Ic2f566b84c4f49610fe0dab5929abe19abef9275
2024-09-08 01:02:56 +02:00
Alessandro Astone
0c2f84f3c2 recovery: sdcard is data/media/0
Change-Id: Ie9978ac8b526c11199f72c4362ae3313218b48d4
2024-09-08 01:02:43 +02:00
Luca Stefani
2293566829 Don't allow mounting system on user builds
Change-Id: I7138c307ae6d7996d9fcf1cf280730ff6fb5ccf9
2024-09-08 01:02:22 +02:00
Michael Bestas
2384f9a92e recovery: Also hide rescue mode from non eng builds
Change-Id: I071f3baa6f6ee672a6d76fc7cb8b6a65b4988027
2024-09-08 01:02:10 +02:00
Michael Bestas
e211e4dc3d recovery: Only show tests in eng builds
[DD3Boh]: Adapt for Android 11

Change-Id: If783711ecd0d20728ec27ebc572b57e6d9bee760
2024-09-08 01:01:14 +02:00
Michael Bestas
08817c0e89 recovery: Expose reboot to recovery option
Change-Id: I8684e188577fa16073723e0093e221b767a3826d
2024-09-08 01:00:51 +02:00
Pat Erley
08fbf88ab6 recovery: Enable the menu for User builds
Upstream recovery doesn't provide a menu for non ENG/UserDebug
builds.

OPO-321

Change-Id: I01b285a40287be4147d15a70b91ad17a3c93da68
2024-09-08 01:00:41 +02:00
Alessandro Astone
8d038450d7 recovery: Don't consider manual install aborts as errors
* From android-11, recovery warns the user about the danger of
   rebooting after a failed update, but if we didn't even start
   the install procedure it doesn't really make much sense.

Change-Id: Ifaf5eae9fe6e1d915a035e2570c22260de59f99b
2024-09-08 01:00:30 +02:00
Michael Bestas
36c90b36d3 recovery: Blank screen on init
* Fixes touch on some devices like chiron/sagit

* Some other devices (e.g. most MTK) need this because their kernel driver
  implementations do not perform as expected (initial unblank is only
  happening when altering the panel brightness x -> 0 -> y). In regular
  Android, that "unblanking" is done on boot when the lights HAL loads and
  sets the initial brightness.

Change-Id: I2fffac508d09d07355a7a7f087805b0dceb5f97e
2024-09-08 01:00:17 +02:00
Michael Bestas
0e844b0289 Bring back file-based OTA edify functions [1/2]
Author: Tom Marshall <tdm.code@gmail.com>
Date:   Wed Oct 25 20:27:08 2017 +0200

    Revert "kill package_extract_dir"

    changes for P:
     - bring back the mkdir_recursively variant which takes a timestamp.
     - add libziparchive dependency
     - fix otautil header paths

    changes for Q:
     - change ziputil naming convention to lowercase

    This reverts commit 53c38b1538.

    Change-Id: I71c488e96a1f23aace3c38fc283aae0165129a12

Author: Tom Marshall <tdm.code@gmail.com>
Date:   Thu Dec 14 22:37:17 2017 +0100

    Revert "Remove the obsolete package_extract_dir() test"

    This reverts commit bb7e005a79.

    Change-Id: I643235d6605d7da2a189eca10ec999b25c23e1f9

Author: Tom Marshall <tdm.code@gmail.com>
Date:   Wed Aug 23 18:14:00 2017 +0000

    Revert "updater: Remove some obsoleted functions for file-based OTA."

    This reverts commit 63d786cf22.

    These functions will be used for third party OTA zips, so keep them.

    Change-Id: I24b67ba4c86f8f86d0a41429a395fece1a383efd

Author: Stricted <info@stricted.net>
Date:   Mon Mar 12 18:11:56 2018 +0100

    recovery: updater: Fix SymlinkFn args

    Change-Id: If2ba1b7a8b5ac471a2db84f352273fd0ea7c81a2

Author: Simon Shields <simon@lineageos.org>
Date:   Thu Aug 9 01:17:21 2018 +1000

    Revert "updater: Remove dead make_parents()."

    This reverts commit 5902691764.

    Change-Id: I69eadf1a091f6ecd45531789dedf72a178a055ba

Author: Simon Shields <simon@lineageos.org>
Date:   Thu Aug 9 01:20:40 2018 +1000

    Revert "otautil: Delete dirUnlinkHierarchy()."

    changes for P:
     - Fix missing PATH_MAX macro from limits.h

    This reverts commit 7934985e0c.

    Change-Id: I67ce71a1644b58a393dce45a6c3dee97830b9ee4

Author: XiNGRZ <chenxingyu92@gmail.com>
Date:   Tue Dec 3 14:31:56 2019 +0800

    updater: Fix lost capabilities of set_metadata

    This was broken since Android O. During a file-based incremental OTA,
    capability flags were cleared but not being set again properly, leading
    some critical processes (e.g. surfaceflinger and pm-service) fails.

    For more details, see: 65b8d749f7

    Change-Id: I20e616cd83ec1cd1b79717a6703919316ad77938

[mikeioannina]: Squash for Q and run through clang-format

[Chippa_a]: Adapt for Android R updater and libziparchive API

Change-Id: I91973bc9e9f8d100688c0112fda9043fd45eb86a
2024-09-08 00:58:50 +02:00
Android Build Coastguard Worker
505722d4e5 Snap for 11859356 from eda4a8c615 to 24Q3-release
Change-Id: Id4cc4d5b0e58839eb40e68f79871c8243b3b692b
2024-05-18 03:00:42 +00:00
Treehugger Robot
eda4a8c615 Merge "Update OWNERS for minadbd." into main am: 1dec443d6e am: ed71bac1b0
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3092346

Change-Id: I113465de397935d532a7a4579b50d69ecb9ecc1b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-05-17 17:53:12 +00:00
Treehugger Robot
ed71bac1b0 Merge "Update OWNERS for minadbd." into main am: 1dec443d6e
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3092346

Change-Id: I8db5d73343acb7f93928a04e4678a49f8170c265
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-05-17 17:36:53 +00:00
Treehugger Robot
1dec443d6e Merge "Update OWNERS for minadbd." into main 2024-05-17 17:08:10 +00:00
Elliott Hughes
fa2b495917 Update OWNERS for minadbd.
This code sometimes needs to track adbd changes.

Change-Id: Icbda00309698b210d1d79b88322f1c6e9483f11d
2024-05-17 11:16:45 +00:00
Android Build Coastguard Worker
cf5f124738 Snap for 11840485 from f212446a33 to 24Q3-release
Change-Id: If43aa1186df3bd7cd64e0bd7516a490b5428c123
2024-05-14 23:00:57 +00:00
Kelvin Zhang
f212446a33 [automerger skipped] Merge "Revert "Remove non-AB unittests"" into main am: 330bd0526f am: cd904626b4 -s ours
am skip reason: Merged-In I3d82d9031446be355d8a1d077ab83283c7cc769c with SHA-1 c7ebad5fd6 is already in history. Merged-In was found from reverted change.

Reverted change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3083670

Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3086245

Change-Id: I6abeef503de0a785b4bbd80810038135add5ec5b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-05-14 18:15:47 +00:00
Kelvin Zhang
cd904626b4 Merge "Revert "Remove non-AB unittests"" into main am: 330bd0526f
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3086245

Change-Id: I0380098aa2ffacab2761f8c501d9b84cdcad30c6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-05-14 17:56:17 +00:00
Kelvin Zhang
330bd0526f Merge "Revert "Remove non-AB unittests"" into main 2024-05-14 17:38:37 +00:00
Kelvin Zhang
63ea13852d Revert "Remove non-AB unittests"
This reverts commit f203ee526f.

Reason for revert: b/340571274

Merged-In: I3d82d9031446be355d8a1d077ab83283c7cc769c
Change-Id: I36d6246a32a83545b1d1b708372e8d3d72b4a041
2024-05-14 17:38:24 +00:00
Treehugger Robot
e27ddc466b [automerger skipped] Merge "Remove non-AB unittests" into main am: 2611111482 am: 360806e44c -s ours
am skip reason: Merged-In I3d82d9031446be355d8a1d077ab83283c7cc769c with SHA-1 c7ebad5fd6 is already in history

Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3083670

Change-Id: Ib290308b2c210fdf18a6edac3ec2f1b610026906
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-05-14 17:31:24 +00:00
Treehugger Robot
360806e44c Merge "Remove non-AB unittests" into main am: 2611111482
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3083670

Change-Id: I6cc4fd146db5ba40f2bdb51b7cdd088894a9eebf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-05-14 16:25:27 +00:00
Treehugger Robot
2611111482 Merge "Remove non-AB unittests" into main 2024-05-14 16:00:48 +00:00
Kelvin Zhang
f203ee526f Remove non-AB unittests
non-AB is deprecated, remove unittets first. This CL also puts non-AB
libraries in a separate soong namepsace, which allows two copies of
non-AB code to co-exist temporarily during migration.

Test: th
Bug: 324360816

Merged-In: I3d82d9031446be355d8a1d077ab83283c7cc769c
Change-Id: Idd9386f4c8d32508734b1bfe9b9f76668aa710bc
2024-05-13 11:20:15 -07:00
Android Build Coastguard Worker
9c8c1835ca Snap for 11784291 from fe5d250e33 to 24Q3-release
Change-Id: Ieabd97970f091b35c709f17cc4d2e49d99299250
2024-04-30 23:01:30 +00:00
Treehugger Robot
fe5d250e33 Merge "Pause recovery when it ends with Shutdown" into main am: 75014b82e2 am: 6dee61bf56
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3030423

Change-Id: I4b8b86c97167526ddfbd0b10b6ee719a325a15c6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-04-30 17:50:40 +00:00
Treehugger Robot
6dee61bf56 Merge "Pause recovery when it ends with Shutdown" into main am: 75014b82e2
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/3030423

Change-Id: I7ab1dd0f8082958ef812b26019c319770df3f02b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-04-30 17:32:09 +00:00
Treehugger Robot
75014b82e2 Merge "Pause recovery when it ends with Shutdown" into main 2024-04-30 17:07:21 +00:00
Xin Li
ae5015bb64 [automerger skipped] Empty merge of Android 24Q2 Release (ab/11526283) to aosp-main-future am: 0affc7a1ad -s ours
am skip reason: Merged-In Id1a8da7d5e0fc6d29c39f822f45c95ba25e43fb3 with SHA-1 67666b2b47 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/bootable/recovery/+/27145170

Change-Id: I1b8116ba481bf22ee7c7121bdeee6dd9bb3c436e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-04-29 23:45:57 +00:00
Xin Li
0affc7a1ad Empty merge of Android 24Q2 Release (ab/11526283) to aosp-main-future
Bug: 337098550
Merged-In: Id1a8da7d5e0fc6d29c39f822f45c95ba25e43fb3
Change-Id: Ib04834d3a7c4c3ed706926aeff9cbf44da7f9f6e
2024-04-29 11:46:45 -07:00
Android Build Coastguard Worker
b0e3cfbe06 Snap for 11774205 from 73b2787228 to 24Q3-release
Change-Id: I64fdd98c485c26c8957b83e01a050ab28dbcd303
2024-04-27 21:00:40 +00:00
Bill Yi
73b2787228 [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: c599d24d0f -s ours
am skip reason: contains skip directive

Original change: https://googleplex-android-review.googlesource.com/c/platform/bootable/recovery/+/27109825

Change-Id: I6d7903045bafc2e7e602e7e6bf2196a802d2ff50
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-04-26 23:30:41 +00:00
Bill Yi
a9623e262a [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 34dbc50ddf -s ours
am skip reason: contains skip directive

Original change: https://googleplex-android-review.googlesource.com/c/platform/bootable/recovery/+/27109824

Change-Id: I0e6748ce1922407429d90f0f48f6b9a9765a8875
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-04-26 23:01:04 +00:00
guangkui.ren
aef46f3edd Pause recovery when it ends with Shutdown
In the current design, when recovery ends with Shutdown, it will
continue to execute commands repeatedly in the loop body, after it sets
a "Shutdown" property. That may lead to some competition between the
shutdown process and recovery command work, and then cause some
problems.

So, pause recovery when it ends with Shutdown, like it ending with
Reboot.

Change-Id: I57dfef70e7b8d600af3a3f2c0199f14d5a0e9916
2024-04-26 06:08:57 +00:00
Bill Yi
c599d24d0f Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: Ib57f06cdb4fdf567a4c4e4ca17d4df7b1745cec7
2024-04-25 17:07:43 -07:00
Bill Yi
34dbc50ddf Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: I8c1973d53614f93ee7b0d497dabcaad4918672aa
2024-04-25 17:06:27 -07:00
Android Build Coastguard Worker
fd68edf1e2 Snap for 11766482 from 3c14d12c87 to 24Q3-release
Change-Id: I4037a5ca3e620d11eacd9eda8af8aac3ae04c45a
2024-04-25 23:00:53 +00:00
Bill Yi
3c14d12c87 Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: I96c0632fa29b1739a8b7d98bd0b0b4cbe60f3881
2024-04-24 09:09:53 -07:00
Android Build Coastguard Worker
c53c19dc8f Snap for 11753769 from d8c8c1b619 to 24Q3-release
Change-Id: Iae6d8fb584a70fc8104d3d17a57c05583fbc2ac6
2024-04-23 23:01:24 +00:00
Treehugger Robot
d8c8c1b619 Merge "Migrate Test Targets to New Android Ownership Model" into main am: cd6618b619 am: 67666b2b47
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/2946233

Change-Id: Ia3c73c8e83b35bdae5cca8a592aa251e7569b821
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-04-22 18:03:39 +00:00
Treehugger Robot
67666b2b47 Merge "Migrate Test Targets to New Android Ownership Model" into main am: cd6618b619
Original change: https://android-review.googlesource.com/c/platform/bootable/recovery/+/2946233

Change-Id: Id1a8da7d5e0fc6d29c39f822f45c95ba25e43fb3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-04-22 17:43:32 +00:00
Treehugger Robot
cd6618b619 Merge "Migrate Test Targets to New Android Ownership Model" into main 2024-04-22 17:01:48 +00:00
Android Build Coastguard Worker
b0bc015e19 Snap for 11710546 from 74d9e718ff to 24Q3-release
Change-Id: I29d8854352c2b65d3afce9f2b64f19b742f7b925
2024-04-13 01:01:04 +00:00
Kelvin Zhang
74d9e718ff Merge "rm -rf non-AB code" into main 2024-04-11 20:36:04 +00:00