summaryrefslogtreecommitdiffstats
path: root/install/include (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Mount snapshotted /system in Virtual A/B devices" am: 5ee782079a am: bc4b2b44e9 am: 367f7d173eAutomerger Merge Worker2020-01-071-0/+9
|\ | | | | | | Change-Id: I5411bcca707627f0e821b4e4052476577e29faf4
| * Merge "Mount snapshotted /system in Virtual A/B devices"Treehugger Robot2020-01-071-0/+9
| |\
| | * Mount snapshotted /system in Virtual A/B devicesAlessio Balsini2019-12-161-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mounting /system in Virtual A/B devices may require the creation of the associated snapshot devices. This patch performs all the required initializations prior to attempting the mount of /system. Bug: 139157327 Test: manual /system partition mount on VAB device during OTA Depends-on: I7337bdd38d7016d12d3ee42be1c7893b10e9116d Change-Id: I71a9dfc57e1a1354f1f1edc5d287aca93c0c8924 Signed-off-by: Alessio Balsini <balsini@google.com>
* | | Merge "Delete VINTF compatibility check during OTA." am: cae99c43de am: 567ae2f9e1 am: 9d090b2ca6Automerger Merge Worker2019-12-191-4/+0
|\| | | | | | | | | | | Change-Id: I1737066e72ac821759f0f2d1af41b9e025bf9719
| * | Delete VINTF compatibility check during OTA.Yifan Hong2019-12-181-4/+0
| |/ | | | | | | | | | | Test: sideload OTA Bug: 139300422 Change-Id: I3369b69242ccd7a64540a0c2d754a5d6fc50d072
* | Merge "Force merges to complete before wiping data or metadata." am: 8444dec7ac am: bc4b39efffDavid Anderson2019-11-151-0/+21
|\| | | | | | | | | | | am: 49c03e1bab Change-Id: Ibb9a2c341982e8d39a5163e527472b5faf526d73
| * Force merges to complete before wiping data or metadata.David Anderson2019-11-111-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | After an OTA is applied, a wipe in recovery may overwrite components of dynamic partitions living in userdata. If the OTA has not yet begun merging, we mark the current slot unbootable. If the OTA has begun merging, we wait for the merge to complete. This logic is encapsulated in libsnapshot. Bug: 139156011 Test: manual test Change-Id: Id6544a1b8583afcbba11559d46214ec2e68ffa40
* | Force package installation with FUSE unless the package stores on deviceTianjie Xu2019-10-161-0/+4
|/ | | | | | | | | | | | | | | | | | | | | | The non-A/B package installation is subject to TOC/TOU flaw if the attacker can switch the package in the middle of installation. And the most pratical case is to store the package on an external device, e.g. a sdcard, and swap the device in the middle. To prevent that, we can adopt the same protection as used in sideloading a package with FUSE. Specifically, when we install the package with FUSE, we read the entire package to cryptographically verify its signature. The hash for each transfer block is recorded in the memory (TOC), and the subsequent reads (TOU) will be rejected upon dectecting a mismatch. This CL forces the package installation with FUSE when the package stays on a removable media. Bug: 136498130 Test: Run bin/recovery --update_package with various paths; and packages are installed from FUSE as expected Change-Id: Ibc9b095036a2fa624e8edf6c347ed4f12aef072f
* Support starting fuse from a block mapTianjie Xu2019-06-201-1/+8
| | | | | | | | | | | | | | | | | Factor out a new function from ApplyFromSdcard that installs a package from a local path. Inside this function, we start the fuse and choose the type of data provider depending on the path string. And similar to the existing logic, we treat the package as a block map if the path starts with a '@'. This is part of the effort to install larger than 2GiB packages on ILP32 devices. Bug: 127071893 Test: Build a 32 bit sailfish and create a 3GiB OTA package. Sideload the package, uncrypt and install the package from sdcard. Change-Id: I328ea34fa530731acbce7554bfc3059313ad6ece
* InstallPackage now takes a package as parameterTianjie Xu2019-06-132-5/+15
| | | | | | | | | Therefore InstallPackage() doesn't need to worry about the details of a given Package. Bug: 127071893 Test: run update from /bin/recovery --update_package=@path, sideload a package Change-Id: I0caa36785b43924f884ee398e7ea640d7472a92e
* install: Install functions return InstallResult.Tao Bao2019-04-303-8/+10
| | | | | | Test: `atest recovery_unit_test recovery_component_test` Test: Sideload a package on taimen. Change-Id: I2d42f55a89931ee495ea5c5d9e6b5ee1058e8e52
* install: Return bool for a few check functions.Tao Bao2019-04-302-8/+8
| | | | | | | | | | | | | | | The results from these functions have boolean semantics. They're returning `int` prior to this CL, with some of them mixing 0 and InstallResult. Note that SetUpNonAbUpdateCommands() was returning INSTALL_CORRUPT / INSTALL_ERROR / 0 prior to this change, but all the callers handle INSTALL_CORRUPT and INSTALL_ERROR the same way. This CL changes them to return bool instead. Test: `mmma -j bootable/recovery` Test: TreeHugger Test: Sideload on taimen. Change-Id: Ic1b5dbf79aaca68b53ab8ea2c8ba3d19f988c571
* Merge "Add install/wipe_device.cpp."Tao Bao2019-04-292-3/+29
|\
| * Add install/wipe_device.cpp.Tao Bao2019-04-272-3/+29
| | | | | | | | | | | | | | | | | | | | Prior to this CL, GetWipePartitionList was declared in install.h (libinstall) but defined in recovery.cpp (librecovery). This CL addresses the issue by refactoring wipe-device related functions into install/wipe_device.cpp. Test: atest recovery_component_test Change-Id: I7ebe04ccfda3d793e085403560a0a202752d9ee3
* | Support wipe command in rescue modexunchang2019-04-261-2/+1
|/ | | | | | Bug: 131037235 Test: unit tests pass, run `adb rescue wipe` Change-Id: I22668f2c98fe2d9195d2561f961c28a7c08e712c
* minadbd: Support `adb reboot` under sideload/rescue modes.Tao Bao2019-04-242-2/+7
| | | | | | | | | | | | Bug: 128415917 Test: Run the following commands under sideload and rescue modes respectively. $ adb reboot $ adb reboot bootloader $ adb reboot recovery $ adb reboot rescue $ adb reboot invalid Change-Id: I84daf63e3360b7b4a0af5e055149a4f54e10ba90
* Allow entering rescue mode via recovery UI.Tao Bao2019-04-171-1/+1
| | | | | | | | | Only enabled on debuggable builds. Bug: 128415917 Test: Sideload package on taimen. Test: Choose "Enter rescue" from recovery UI. Change-Id: I913dbdbcffd3179e6fa72ca862f74ca8f1364b02
* Move load & restore logs to logging.cppxunchang2019-04-161-2/+0
| | | | | | | | | | We perform these steps to perserve the recovery logs when wiping /cache partition. Move them to logging.cpp to keep the actually EraseVolume function concise. Bug: 130166585 Test: unit tests pass, mount cache and check last log after cache Change-Id: Idc52833817a446f3a0148a3dd2112f911c9ef48d
* Move wipe cache|data to libinstallxunchang2019-04-154-6/+39
| | | | | | | | | | | | | | | Therefore, libinstall becomes the sole owner to handle the request from minadbd service. The change also includes 1. move logging.cpp out of librecovery 2. drop the dependency on common.h 3. now it's more sensible to move the wipe_cache as part of install_package. move the wipe_cache to the end of the function. Bug: 130166585 Test: wipe data and cache from menu Change-Id: I6f356dccdb38015c50acf756bac246f87c30fc1f
* Move install to separate modulexunchang2019-03-297-0/+361
Build libinstall as a shared library. Also drop the dependency on the global variables in common.h. Test: unit tests pass, sideload an OTA Change-Id: I30a20047768ce00689fc0e7851c1c5d712a365a0