Commit graph

3820 commits

Author SHA1 Message Date
Tianjie Xu
bb7e005a79 Remove the obsolete package_extract_dir() test
package_extract_dir() was removed in go/aog/402383, and the
corresponding UpdaterTest should be removed as well.

Bug: 62918308
Test: mma && code search
Change-Id: Ibe9c473a5d41d2fa4d26abca5684e71b104891b0
2017-06-22 17:35:06 -07:00
Treehugger Robot
5efe2bca22 Merge "Introduce VR recovery ui" 2017-06-17 00:00:00 +00:00
Luke Song
e2bd876043 Introduce VR recovery ui
A version of screen ui with specific adjustments for vr device
compatibility.

(cherrypick of a44dba7f4e to AOSP)

Bug: 37779982
Test: "adb reboot recovery" to view
Change-Id: If6b0f26c1b587f8d0176060685b5efb6c67593b1
2017-06-16 15:33:02 -07:00
Chih-hung Hsieh
ffd8505f4d Merge "Add OWNERS in bootable/recovery" 2017-06-16 15:56:16 +00:00
Chih-Hung Hsieh
d6c49be5de Add OWNERS in bootable/recovery
* Owners are selected from top CL approvals or owners.
  They will be suggested to review/approve future CLs.
* OWNERS files are recognized by the new find-owners plugin, see .md files in
  https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/

Test: build/make/tools/checkowners.py -c -v OWNERS
Change-Id: Ifb3f0a31389b2d55357fb6b8ea60c42dd790169d
2017-06-15 14:17:27 -07:00
Tianjie Xu
8e5fb46e87 Merge "Fix a race condition for temperature_logger" 2017-06-09 00:56:39 +00:00
Tianjie Xu
379571098d Fix a race condition for temperature_logger
It's a rare deadlock that happens on fugu when the updater exits too
fast due to a format error.

Bug: 62379170
Test: fake-ota fails gracefully without hanging.
Change-Id: Icbd6cff4f6b44ca20f4d75f8039332111f696cc5
2017-06-08 12:10:30 -07:00
Tianjie Xu
99e7216907 Merge "kill package_extract_dir" 2017-05-31 21:49:03 +00:00
Tianjie Xu
764eb215af Merge "Implement a custom deflate sink function for bspatch" 2017-05-26 23:07:13 +00:00
Tianjie Xu
a897f95bd5 Implement a custom deflate sink function for bspatch
This new sink function works as a wrapper of the old sink. It deflates
the available patch data on the fly. Therefore, we don't need to store
the full uncompressed patch data in memory.

Test: recovery_component_test && apply an incremental update on angler
Change-Id: I2274ec50a1607089abcc9d0954a2a748f28c3122
2017-05-26 14:05:20 -07:00
Tianjie Xu
9c1a114789 Merge "Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails" 2017-05-24 18:42:02 +00:00
Tianjie Xu
6957555e29 Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails
We have seen one case when bspatch failed likely due to patch
corruption. Since the package has passed verification before, we want
to reboot and retry the patch command again since there's no
alternative for users.

We won't delete the stash before reboot, and the src has passed SHA1
check. If there's an error on the patch, it will fail the package
verification during retry.

Bug: 37855643
Test: angler reboots and retries the update when bspatch fails.
Change-Id: I2ebac9621bd1f0649bb301b9a28a0dd079ed4e1d
2017-05-23 17:36:56 -07:00
Tianjie Xu
53c38b1538 kill package_extract_dir
It's only used by file-based OTA which has been deprecated for O.

Test: mma
Change-Id: I439c93155ca94554d827142c99aa6c0845cc7561
2017-05-23 17:09:45 -07:00
Tianjie Xu
1f9808bd48 Merge "Print SHA1 of the patch if bsdiff fails with data error" 2017-05-18 22:02:03 +00:00
Tom Cherry
bec0d4cb94 Merge "libbootloader_message: convert to Android.bp" 2017-05-18 20:18:00 +00:00
Tianjie Xu
0e60ccdc76 Merge "Fix the input parameter for "set_retry_bootloader_message"" 2017-05-17 20:02:12 +00:00
Tom Cherry
600e806384 libbootloader_message: convert to Android.bp
Test: build
Change-Id: Ia0c2e141673e37eea29306817d2f4b2c944213b0
2017-05-17 11:43:29 -07:00
Tianjie Xu
72449c9f99 Fix the input parameter for "set_retry_bootloader_message"
We're not updating argc & argv during get_args(), so some boot
arguments missed when we set the boot message for retry.

Bug: 38383406
Test: boot command sets correctly during retry attempt.
Change-Id: Ie8583a22fad5e0084245e3431d4018518d508dfd
2017-05-17 18:09:35 +00:00
Tianjie Xu
ce5fa5e538 Print SHA1 of the patch if bsdiff fails with data error
This will help us to identify the patch corruption.

Meanwhile fix a wrong size parameter passed to bspatch.
(patch->data.size() into patch->data.size() - patch_offset).

Also remove the only usage of "ApplyBSDiffPatchMem()" and inline its
Sink function for simplicity.

Bug: 37855643
Test: Prints SHA1 for corrupted patch in imgdiff_test.
Change-Id: Ibf2db8c08b0ded1409bb7c91a3547a6bf99c601d
2017-05-16 12:39:14 -07:00
Tao Bao
494d97fe6b Merge "updater: Update the mkfs.f2fs argument to match f2fs-tools 1.8.0." 2017-05-12 21:26:36 +00:00
Tao Bao
397a8137a0 updater: Update the mkfs.f2fs argument to match f2fs-tools 1.8.0.
Commit adeb41a8c0 has switched the
argument for recovery. This CL handles the case for updater.

Note that there's a chance the updater may run against the old
recovery (and f2fs 1.4.1 binary). Not sending a 0-sector argument to
f2fs 1.4.1 also works.

Bug: 37758867
Test: Make an OTA package that calls format f2fs, with mkfs.f2fs 1.8.0
      and 1.4.1 binaries respectively.
Change-Id: I4d4bbe8c57544d1c514b7aa37fbf22a0aab14e2c
2017-05-12 12:09:16 -07:00
Tao Bao
7cb1b79673 Merge "Don't write to /sys/class/android_usb/android0/enable with configfs." 2017-05-12 01:18:52 +00:00
Tao Bao
0167d4c382 Don't write to /sys/class/android_usb/android0/enable with configfs.
USB configfs doesn't use /s/c/a/a/enable. Trying to set that gives
confusing message on screen when sideloading.

Bug: 37713851
Test: adb sideload on device using with configfs.
Test: adb sideload on marlin.
Change-Id: Ifa55f90c2a5fe6bf9e7cee95882de9f6de686d73
2017-05-11 14:50:20 -07:00
Tao Bao
d7446c8eed Merge "recovery: Skip "/" in setup_install_mounts()." 2017-05-11 04:31:22 +00:00
Tao Bao
57130c45f8 recovery: Skip "/" in setup_install_mounts().
We don't want to do anything for "/" when preparing for an install.

Bug: 36686818
Test: adb sideload on angler/marlin respectively.
Change-Id: Id854dd0a743a0e163a8f13baf2514105091ddc67
2017-05-10 12:11:21 -07:00
Treehugger Robot
106ca8e93f Merge "otautil: Android.mk -> Android.bp" 2017-05-10 03:05:25 +00:00
Steven Moreland
f3ae55a167 otautil: Android.mk -> Android.bp
Test: flash and boot recovery on internal angler
Change-Id: Id8845b4b422d0078b251333eb6d30ce14771ef10
2017-05-09 16:09:41 -07:00
Tao Bao
c008485643 Merge "recovery: Use libverifier instead of rebuilding the sources." 2017-05-09 16:49:31 +00:00
Tao Bao
197304aada Merge "Add a binary path param to update_binary_command()." 2017-05-09 00:13:55 +00:00
Tao Bao
00d5757186 Add a binary path param to update_binary_command().
This allows writing native tests for non-A/B update_binary_command().
Prior to this CL, it was extracting the updater to a hard-coded
location (/tmp/update_binary) that's not available under the test
environment.

Test: recovery_component_test on angler and marlin respectively.
Test: Sideload OTA packages on angler and marlin respectively.
Change-Id: I78b9cc211d90c0a16a84e94e339b65759300e2a8
2017-05-08 12:16:45 -07:00
Tao Bao
b168f5f857 recovery: Use libverifier instead of rebuilding the sources.
Test: mmma bootable/recovery
Change-Id: Ie8cec009b00c121948179518ba9cbc26a82352bf
2017-05-08 11:04:07 -07:00
Treehugger Robot
f347c1abca Merge "recovery: update mkfs.f2fs args to match f2fs-tools 1.8.0" 2017-05-05 19:39:25 +00:00
Jin Qian
adeb41a8c0 recovery: update mkfs.f2fs args to match f2fs-tools 1.8.0
mkfs.f2fs in 1.8.0 returns error if number of sectors is 0. Skip
this argument to let mkfs detect device size. 0 sector is also not
necessary for 1.4.1.

Test: format userdata to f2fs and boot
Bug: 37758867
Change-Id: If120988dfb678596c973d183572f870eb0b72a27
2017-05-05 11:07:46 -07:00
Treehugger Robot
a24f9d7cc7 Merge "Update the comment for obsolete symlink handling ." 2017-05-04 01:22:26 +00:00
Tao Bao
7c42198581 Merge "Revert "Remove EXPAND/STRINGIFY macros."" 2017-05-04 00:32:53 +00:00
Tao Bao
8be0f39fec Revert "Remove EXPAND/STRINGIFY macros."
This reverts commit ec9706738f.

Reason for revert: It's not a good idea to put RECOVERY_API_VERSION in
common.h, which might be included by device-specific codes (but with
RECOVERY_API_VERSION undefined).

Change-Id: I9feb9c64a5af3e9165164622a59b043aa28a8b8c
2017-05-04 00:31:11 +00:00
Tao Bao
4e8e56eaea Merge "fuse_sideload: Change the minimal block size to 4096." 2017-05-03 23:52:34 +00:00
Tao Bao
b00c66faf7 Merge "Remove EXPAND/STRINGIFY macros." 2017-05-03 23:38:32 +00:00
Tianjie Xu
f38401a27c Update the comment for obsolete symlink handling .
Symlink is a filebased OTA feature, and the corresponding updater
function has been removed in
https://android-review.googlesource.com/#/c/350357/.

Also the only place where we call "package_extract_dir()" is to unpack
some bootloader dir in vendor's code. We plan to remove it also in a
separate bug.

Bug: 31917448
Test: mma
Change-Id: I3986d60958e64e0d5d8fa5f5bd508c579fb7fa2c
2017-05-03 23:34:42 +00:00
Tao Bao
ec9706738f Remove EXPAND/STRINGIFY macros.
They are error-prone by putting anything into a string (e.g.
EXPAND(RECOVERY_API_VERSION) would become "RECOVER_API_VERSION" if we
forgot to pass -DRECOVERY_API_VERSION=3).

RECOVERY_API_VERSION is the only user (in bootable/recovery) that gets
stringified. Assign it to a typed var and sanity check the value.

Don't see other reference to the macros from device-specific recovery
directories (they can still define that locally if really needed).

Test: recovery_component_test
Test: Sideload an OTA on angler and marlin respectively.
Change-Id: I358bbdf8f0a99db5ce4c7bc2fdcafe8013501b64
2017-05-03 11:26:00 -07:00
Tianjie Xu
89394632b1 Merge "Add a default error code when updater script aborts" 2017-05-03 17:34:45 +00:00
Tianjie Xu
e0c88793d1 Add a default error code when updater script aborts
We didn't report error/cause codes unless there's an explict "Abort()"
call inside the updater script. As a result, some cause codes set by
ErrorAbort() didn't show up in last_install.

To fix the issue, add a default error code when the script terminates
abnormally (i.e. with non zero status).

Bug: 37912405
Test: error/cause code shows up in last_install when argument parsing fails
Change-Id: Ic6d3bd1855b853aeaa0760071e593a00cf6f0209
2017-05-03 05:52:03 +00:00
Tao Bao
fe7eecff4c Merge "Move sysMapFile and sysReleaseMap into MemMapping class." 2017-05-02 23:42:28 +00:00
Tao Bao
ed13819a0d fuse_sideload: Change the minimal block size to 4096.
run_fuse_sideload() is passing the block size as the max_read
option, so it will only handle a request that involves at most two
blocks at a time. However, the minimal allowed value was set to 1024
prior to this CL, which is inconsistent with the kernel code
(fs/fuse/inode.c) that sets it to the greater of 4096 and the passed-in
max_read option. This would fail the calls with a block size / max_read
less than 4096 due to the wrongly computed block indices.

Note that we didn't observe real issue in practice, because we have been
using 64 KiB block sizes for both of adb and sdcard sideload calls. The
issue only shows up in my local CL (to come later) that uses 1024 block
size in run_fuse_sideload() tests.

Test: recovery_component_test
Test: adb sideload with the new recovery image on angler
Change-Id: Id9f0cfea13d0d193dcb7cd41a1553a23739545f2
2017-05-02 15:56:22 -07:00
Tao Bao
b656a154ea Move sysMapFile and sysReleaseMap into MemMapping class.
Test: recovery_component_test
Test: recovery_unit_test
Test: Apply an OTA on angler.
Change-Id: I7170f03e4ce1fe06184ca1d7bcce0a695f33ac4d
2017-05-01 21:51:54 -07:00
Tao Bao
ba365180d3 Merge "recovery: Change install_package() to take std::string." 2017-05-02 02:10:43 +00:00
Tao Bao
e58dabade9 Merge "adb_install: Stop passing RecoveryUI as a parameter." 2017-05-01 20:45:21 +00:00
Tao Bao
29ee69bf27 recovery: Change install_package() to take std::string.
Also change the parameter type for log_buffer from reference to pointer,
so the styles for parameters look consistent.

Test: mmma bootable/recovery
Test: sideload a package with the new recovery image
Change-Id: I8f25580ccf22977624648b3e2181cca44dd67c1b
2017-05-01 12:31:48 -07:00
Tao Bao
0150d013eb adb_install: Stop passing RecoveryUI as a parameter.
It's already a global declared in common.h which is included by
adb_install.cpp.

Remove '#include "minadbd/fuse_adb_provider.h"' that's not needed by
adb_install.cpp (minadbd takes care of that).

Test: mmma bootable/recovery
Change-Id: I6d08b7abc706b4b05de2ef46a57ced2204ad297e
2017-05-01 11:47:43 -07:00
Tao Bao
54da112277 Merge "minui: Fix breakage in graphics_adf." 2017-04-29 18:47:53 +00:00