No description
Find a file
David Anderson 667b1efadd fastboot: Avoid reboots to userspace when using flashall/update.
Reboots to fastbootd (userspace fastboot) take a long time, particularly
due to the orange AVB screen and the likelihood of devices having uart
enabled. For "flashall", there is rarely a need to actually go into
userspace, because all of super is getting thrown away. We can just
flash super in the bootloader.

In the past we didn't do this because computing super.img is expensive -
both in terms of time (due to reading dependent images) and in terms of
space (it's easily over 5GB).

But we don't actually need to fully compute super.img. We can build a
sparse_file containing the metadata/headers, with additional references
to each image file containing partition data. Liblp provides the API to
do that, and here, we simply need to translate the layout to libsparse.

On Pixel, this reduces flashall time by around 35-50 seconds, or around
20% of total time, depending on whether uart is in use.

There are some caveats, in which case we'll fall back to normal
fastbootd. This does not work on non-A/B devices, on retrofit dynamic
partition devices (Pixel 3), and in some other edge-casey scenarios. If
it fails, -v will add logging information about why.

Bue: 266982466
Test: fastboot flashall on Pixel 5+
Change-Id: Ie040da597d739faa7f834202184cec8f8e412076
2023-02-01 11:28:18 -08:00
bootstat bootstat.rc: remove trigger that logged post_decrypt_time_elapsed 2023-01-18 02:14:35 +00:00
cli-test [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
code_coverage Disable code_coverage.other for riscv64 2022-10-13 13:49:10 -07:00
debuggerd [MTE] add link to SAC docs to tombstones 2023-01-26 02:09:57 +00:00
diagnose_usb Support building diagnose_usb against musl 2021-12-16 14:04:06 -08:00
fastboot fastboot: Avoid reboots to userspace when using flashall/update. 2023-02-01 11:28:18 -08:00
fs_mgr liblp: Add a helper class for building sparse-compatible super image layouts. 2023-01-31 18:46:35 -08:00
gatekeeperd hidl2aidl: conversion of gatekeeper hidl to aidl 2022-09-19 16:39:27 +00:00
healthd BatteryMonitor: fix build error with health hal v2 updraged 2023-01-21 15:28:23 +08:00
include Remove include/backtrace symlink. 2020-10-20 12:46:14 -07:00
init Merge "Disable multilib for CtsInitTestCases." 2023-01-17 23:15:47 +00:00
janitors Add myself to janitor owners. 2022-12-02 12:50:43 -08:00
libappfuse [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
libasyncio Set min_sdk_version 2021-12-02 09:23:42 +09:00
libbinderwrapper [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
libcrypto_utils Set min_sdk_version 2021-12-02 09:23:42 +09:00
libcutils qtaguid.cpp - improvements 2023-01-26 22:39:04 +00:00
libdiskconfig Android typo fix exercise, uknown -> unknown 2023-01-09 19:13:01 +00:00
libgrallocusage Make apex_available explicit 2022-02-09 11:37:19 -08:00
libkeyutils Make libfs_mgr dependencies vendor_ramdisk_available. 2021-07-23 16:50:06 -07:00
libmodprobe libmodprobe: check blockedlist if load failed 2022-08-06 04:48:55 +00:00
libnetutils Rewrite function declarators without prototypes 2022-06-22 16:59:22 +08:00
libpackagelistparser Promote HWASan tests to presubmit. 2022-06-17 22:18:49 +00:00
libprocessgroup Fix the cgroup v2 thread path 2023-01-09 14:40:51 -08:00
libsparse Remove a file we haven't built since 2013. 2022-11-11 21:56:34 +00:00
libstats [TeX] Introduced Telemetry Express Native Logging Library 2023-01-18 04:36:20 +00:00
libsuspend libsuspend: vendor_available. 2021-11-02 13:52:40 -07:00
libsync Declare the headers of the ndk_library 2022-09-08 21:59:20 +00:00
libsystem Add COLOR_MODE_DISPLAY_BT2020 to graphics header. 2022-12-01 22:25:40 -08:00
libsysutils Fix 32-bit userspace on 64-bit kernel quota2 compatibility. 2021-10-25 16:24:49 -07:00
libusbhost libusbhost: factor out frameworks descriptors -> byte[] code. 2022-01-24 13:35:20 -08:00
libutils Replace "apex_inherit" min_sdk_version 2022-12-20 16:05:54 +00:00
libvndksupport Replace #apex with #systemapi 2022-07-17 17:43:24 +09:00
llkd llkd: Disable in userdebug builds by default 2021-11-04 16:21:46 -07:00
mini_keyctl Merge "Make libmini_keyctl_static available in recovery" 2021-11-23 17:54:31 +00:00
mkbootfs mkbootfs: consistency. 2023-01-12 04:34:15 +00:00
property_service Remove dalvik.vm.usejitprofiles system property. 2022-11-25 12:27:37 +00:00
reboot [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
rootdir Add ramdisk_node_list 2023-01-24 18:36:43 +00:00
run-as [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
sdcard [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
shell_and_utilities Update shell_and_utilities docs for T. 2022-03-05 08:12:29 -08:00
storaged storage: Update health AIDL HAL to V2 2023-01-21 15:20:41 +08:00
toolbox toolbox/modprobe: Fallback to /lib/modules/<uname> 2023-01-27 12:58:50 +00:00
trusty Add libtrusty to recovery image 2023-01-26 02:45:36 +00:00
usbd usb: migration to USB gadget AIDL 2023-01-10 11:24:36 +08:00
watchdogd [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.clang-format-4 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
CleanSpec.mk snapshotctl don't auto-merge. 2020-03-03 13:19:49 -08:00
METADATA Add METADATA to system/core: Apache2+BSD=NOTICE 2020-04-29 13:16:41 -07:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
OWNERS Remove baligh@ from owners. CodeShuffle done. 2020-10-17 00:28:10 +00:00
PREUPLOAD.cfg Configure rustfmt for preupload hook 2022-04-06 21:11:09 +00:00
rustfmt.toml Configure rustfmt for preupload hook 2022-04-06 21:11:09 +00:00