Commit Graph

6549 Commits

Author SHA1 Message Date
Tao Bao baa841ed04 Merge "applypatch: {Load,Save}FileContents return bool values."
am: bae5f1a846

Change-Id: I1ee905f0182adb92d25208ba06a847afaf1835ba
2018-09-01 09:19:52 -07:00
Tao Bao bae5f1a846 Merge "applypatch: {Load,Save}FileContents return bool values." 2018-09-01 16:09:02 +00:00
Tao Bao 37521a9623 Merge "applypatch: Refactor applypatch()."
am: af522672a2

Change-Id: Ia6e953937e1d23f165b51ca759568efb53e9c9db
2018-08-31 14:38:29 -07:00
Tao Bao 09e8493861 applypatch: {Load,Save}FileContents return bool values.
Bug: 110106408
Test: Run recovery_unit_test and recovery_component_test on marlin.
Change-Id: Id72e24dd00eb451565d90cff6e049f4f4b844ea2
2018-08-31 14:31:19 -07:00
Tao Bao af522672a2 Merge "applypatch: Refactor applypatch()." 2018-08-31 21:24:31 +00:00
Tao Bao 5609bc8b34 applypatch: Refactor applypatch().
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
2018-08-31 09:21:15 -07:00
Tao Bao 287881d558 Merge "Enable c++17 in recovery_defaults."
am: 6a333cde10

Change-Id: Iec615e16f9a3b9b18297c4ee5376d5ee0baa830d
2018-08-28 13:19:27 -07:00
Tao Bao 6a333cde10 Merge "Enable c++17 in recovery_defaults." 2018-08-28 20:07:09 +00:00
Tao Bao 43bfa6e429 Enable c++17 in recovery_defaults.
And add the first few users.

Test: Run recovery_unit_test and recovery_component_test on marlin.
Change-Id: Ifdf093d011478b6a1dd0405b0ba48c145b509cc8
2018-08-28 10:49:07 -07:00
Tianjie Xu 3f288e4389 Merge "Remove otafault"
am: a1e3d67bd7

Change-Id: I9615dbf572f34fb6fa9b3d2b37e40e81b66fdc33
2018-08-27 19:17:15 -07:00
Tianjie Xu a1e3d67bd7 Merge "Remove otafault" 2018-08-28 02:05:17 +00:00
Tianjie Xu 22f11205a1 Remove otafault
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
2018-08-27 17:16:19 -07:00
Tao Bao 9d595b13f9 Merge "uncrypt: Depend on commonly used shared libs."
am: 9d7f918506

Change-Id: Ib272ec99299119d64ff0ae02295362f0c92bf7f3
2018-08-23 10:45:53 -07:00
Treehugger Robot 9d7f918506 Merge "uncrypt: Depend on commonly used shared libs." 2018-08-23 17:38:42 +00:00
Elliott Hughes a35802b71d Merge "Add /dev/stdin, /dev/stdout, and /dev/stderr in recovery too."
am: 11f766af4e

Change-Id: Ib031aad6fb48dae8c46c14068d07bf3f6f55ce72
2018-08-23 10:06:22 -07:00
Treehugger Robot 11f766af4e Merge "Add /dev/stdin, /dev/stdout, and /dev/stderr in recovery too." 2018-08-23 16:54:33 +00:00
Elliott Hughes a4495b5ee2 Add /dev/stdin, /dev/stdout, and /dev/stderr in recovery too.
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
2018-08-23 08:31:59 -07:00
Tao Bao d881d4f205 uncrypt: Depend on commonly used shared libs.
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
2018-08-22 17:59:21 -07:00
Zhomart Mukhamejanov e30a243d0a Merge "Move ab_streaming_metadata under ab_config."
am: ab7e652484

Change-Id: I0dfcd04c3f9374b846c0bc40053b342ddb9294ee
2018-08-22 13:13:12 -07:00
Zhomart Mukhamejanov ab7e652484 Merge "Move ab_streaming_metadata under ab_config." 2018-08-22 18:38:06 +00:00
Zhomart Mukhamejanov 88712f7610 Move ab_streaming_metadata under ab_config.
Add new config: ab_config.verify_payload_metadata.

Change-Id: I521dff92166c33dd9c2efa498dc599fe4bc83fde
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
Test: mmm, junit
Bug: 77150191
2018-08-22 18:37:51 +00:00
David Anderson 4ba5c3c7de Merge "recovery: Add "boot-fastboot" command to BCB."
am: 0115b79cbd

Change-Id: Id47df0b7923f6a48f14ad41f11fcf56f7c0f2f1e
2018-08-21 22:42:11 -07:00
Treehugger Robot 0115b79cbd Merge "recovery: Add "boot-fastboot" command to BCB." 2018-08-22 01:48:58 +00:00
Tao Bao e6c86871f4 Merge "Depend on mke2fs.conf.recovery."
am: aa536568b3

Change-Id: I8618e5453dc90ce122dd556f78822aa743ee7031
2018-08-21 18:12:50 -07:00
David Anderson eee4e260f9 recovery: Add "boot-fastboot" command to BCB.
This change adds a new "boot-fastboot" command in order to boot into fastboot
without overwriting recovery tasks. This also allows bootloaders to boot
directly into userspace fastboot from the bootloader menu, or via
bootloader fastboot.

Bug: 112277594
Test: adb reboot fastboot
Change-Id: Ia0c9a0961a76c6cbe19486590179abaa50d93f58
2018-08-21 16:04:57 -07:00
Tao Bao aa536568b3 Merge "Depend on mke2fs.conf.recovery." 2018-08-21 22:35:48 +00:00
Tao Bao 7c074d97bd Depend on mke2fs.conf.recovery.
Bug: 112780007
Test: `m dist` along with other changes in the topic. Check the file
      under recovery. Trigger factory reset from recovery UI.
Change-Id: I2fb6954576eefecea60712a21506a2aeb1cecc53
2018-08-21 12:32:03 -07:00
Tao Bao 14d87881d8 Merge "tests: Remove {old,new}.file."
am: 09ce7686f2

Change-Id: Ie3f23bd37cb29258bdf785548cbf2d85c457a04e
2018-08-20 11:13:54 -07:00
Treehugger Robot 09ce7686f2 Merge "tests: Remove {old,new}.file." 2018-08-20 17:48:56 +00:00
Tao Bao cdbe58a2a2 tests: Remove {old,new}.file.
They serve the same purpose as {boot,recovery}.img, except that they're
not structured to be imgdiff'd. Remove the two files and replace all the
uses with {boot,recovery}.img instead.

Bug: 110106408
Test: Run recovery_{unit,component}_test on marlin.
Change-Id: I8e71187d5b0c142ad932f33717f6fae364b43abc
2018-08-20 09:08:35 -07:00
Tao Bao 5cf27834f3 Merge "updater: Add TransferList class."
am: 102d14d6d1

Change-Id: I10eac56d0c4c26d07b301a9c746d5e3f98e09811
2018-08-17 11:52:20 -07:00
Tao Bao 102d14d6d1 Merge "updater: Add TransferList class." 2018-08-17 18:31:54 +00:00
Tao Bao f8811bbd3a updater: Add TransferList class.
This would be the top-level class that represents and holds the info
parsed from a transfer list file.

Bug: 112151972
Test: Run recovery_unit_test and recovery_component_test on marlin.
Change-Id: I83b54df9d1411542eeeb8ef4a2db167e97f989c3
2018-08-17 09:37:26 -07:00
Tianjie Xu 0901a08fc2 Merge "Add a python binary to generate the protobuf for care_map"
am: fae0881528

Change-Id: I259dcf3ba7d3840436d96640e91a00cf9be0fdf3
2018-08-16 17:52:05 -07:00
Tao Bao d03842982f Merge "ui: Only set brightness when needed."
am: cf01f7dcbe

Change-Id: If9747c9fdb2822cacad87828ad627b72742e9aff
2018-08-16 17:44:47 -07:00
Tao Bao 559d01ff16 Merge "updater: Add SourceInfo::{ReadAll,DumpBuffer,Overlaps}."
am: d460afe963

Change-Id: Ib3798641e976658e8288150a2d3fea80d415ed33
2018-08-16 17:28:16 -07:00
Tianjie Xu fae0881528 Merge "Add a python binary to generate the protobuf for care_map" 2018-08-17 00:02:24 +00:00
Tianjie Xu 7e520d24fe Add a python binary to generate the protobuf for care_map
This binary parses the legacy care_map text in the input file and writes
the generated protobuf message into the output file. For test purpose,
it also has a "--parse_proto" option to reverse the process and convert
a protobuf message file into plain text.

The build script will then call the binary to generate the care_map.txt
in the new format.

Bug: 77867897
Test: Run the binary to convert a care_map.txt, run update_verifier
Change-Id: I3ca65e19027404806132aa8d51e9bff766630c99
2018-08-16 15:09:32 -07:00
Tao Bao cf01f7dcbe Merge "ui: Only set brightness when needed." 2018-08-16 20:10:26 +00:00
Tao Bao d460afe963 Merge "updater: Add SourceInfo::{ReadAll,DumpBuffer,Overlaps}." 2018-08-16 19:26:37 +00:00
Tao Bao 53be332711 ui: Only set brightness when needed.
There is a regression due to recent change in commit
b76af93ab5, where it started to set
brightness to normal on every key input. This is unneeded and spamming
the recovery log.

Test: Run recovery_unit_test on marlin.
Test: Built and boot into recovery image. Press a few keys, then check
      the recovery log.
Change-Id: Ia3a7ea400bcccdebbb27a6a7586e435bfb915923
2018-08-16 11:54:01 -07:00
Tao Bao 3c8927390e updater: Add SourceInfo::{ReadAll,DumpBuffer,Overlaps}.
Bug: 112151972
Test: Run recovery_unit_test on marlin.
Change-Id: Ica2a7b3c768f5d8ca5d591a9560bca9f8ed847c5
2018-08-16 11:09:35 -07:00
Tao Bao d9067aed88 Merge "tests: Add the missing tests in applypatch_modes_test.cpp."
am: f83d9f6b71

Change-Id: I3ab7b006384ee1fda877a5edb1c3f5af42722dff
2018-08-15 18:44:51 -07:00
Tao Bao f13b38ca72 Merge "Fixing the Mac SDK build"
am: 0b66e96da5

Change-Id: I2979bf2260a5e254b6247061baa01d1ae8eb1e9e
2018-08-15 18:44:36 -07:00
Tao Bao f83d9f6b71 Merge "tests: Add the missing tests in applypatch_modes_test.cpp." 2018-08-16 01:16:57 +00:00
Tao Bao 0b66e96da5 Merge "Fixing the Mac SDK build" 2018-08-16 01:10:49 +00:00
Tianjie Xu 5c1b333bde Merge "Further compress the recovery animation file"
am: c8e0292b61

Change-Id: I3776285237eb48cb72619117b7a9414b34eee0e0
2018-08-15 16:43:00 -07:00
Andreas Huber 435dfac15c Fixing the Mac SDK build
recovery_host_test is now excluded from darwin targets as its
dependency libimgdiff is.

Change-Id: I6aa085125109ed2218572df97f35289b71c354ab
2018-08-15 16:11:25 -07:00
Tao Bao 26b645447f tests: Add the missing tests in applypatch_modes_test.cpp.
This file was somehow missed when converting from Android.mk to
Android.bp. This CL addresses the issue by picking up all the .cpp files
in the test source dir.

Test: Run recovery_{unit,component}_test on marlin. Check the reported
      number of tests (94 for unit test and 157 for component test).
Change-Id: I50435b07fcb8602ef7b3f7e7d3a69e10b6a5932d
2018-08-15 15:34:46 -07:00
Tianjie Xu c8e0292b61 Merge "Further compress the recovery animation file" 2018-08-15 22:30:55 +00:00