Commit Graph

5445 Commits

Author SHA1 Message Date
Tianjie Xu 572abbb81c Remove the assumption of target chunk size in imgdiff
In the split mode of imgdiff, we used to assume that the size of a split
target chunk is always greater than the blocksize i.e. 4096. This may
lead to the following assertion failure:
I0221 04:57:33.451323 818464 common.py:205 imgdiff F 02-21 04:57:33 821203 821203 imgdiff.cpp:999]
Check failed: tgt_size >= BLOCK_SIZE (tgt_size=476, BLOCK_SIZE=4096)

This CL removes the assumption and handles the edge cases.

Test: generate and verify the incremental update for TFs in the bug; unit test passes

Bug: 73757557
Bug: 73711365
Change-Id: Iadbb4ee658995f5856cd488f3793980881a59620
2018-02-23 10:44:05 -08:00
hansson bf52b7e00b Merge "Set LOCAL_SDK_VERSION where possible." 2018-02-21 17:20:44 +00:00
Anton Hansson 6cc499ae07 Set LOCAL_SDK_VERSION where possible.
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant packages
Bug: 73535841
Change-Id: I82fee834c5d92e699e9571933faded11c6d4596e
2018-02-21 14:11:02 +00:00
Treehugger Robot c1e1d7e711 Merge "Disable building libapplypatch on mac" 2018-02-18 08:15:13 +00:00
Tianjie Xu 7a4dacf724 Disable building libapplypatch on mac
The sdk_mac on build server fails with the error:
bootable/recovery/applypatch/freecache.cpp:23:10: fatal error: 'sys/statfs.h' file not found

So we will disable libapplypatch on mac.

Test: the library still builds on linux; and check the other host targets in the same cl.
Change-Id: Ie4a30708726e51c810f7ad7f1085d38154076cca
2018-02-17 22:06:31 -08:00
Tianjie Xu 31bcd7c002 Merge "Skip the cache size check on host" 2018-02-17 00:15:19 +00:00
Tao Bao 15e376d792 Merge "recovery: Porting screensave mode for new platform." 2018-02-16 05:07:57 +00:00
Tianjie Xu 9818283da7 Merge "Reorder the functions in updater/install.cpp" 2018-02-13 05:32:10 +00:00
Tianjie Xu e40c80d021 Skip the cache size check on host
When running the update simulation, we choose to skip the cache size
check for now due to the lack of "/cache" on host. And in later cls we
can implement a cache size estimator to make the check more constrained.

Also build the host version of support libraries.

Test: unit test pass
Change-Id: I3ed93c857fd02f7b62f5baba9130f75c3236e717
2018-02-12 15:19:37 -08:00
Tianjie Xu 5419ad31e7 Reorder the functions in updater/install.cpp
There is no logical change to the file; merely the function definition
reorder and some comestic change to make the future review easier.

Test: mma
Change-Id: I7ffe952f8c78e840f10aa6bfad0c4b5a58e29896
2018-02-12 11:55:05 -08:00
Tianjie Xu 6a3646fc03 Merge "Log the last command to cache" 2018-02-08 19:53:37 +00:00
Treehugger Robot 7ee7e27400 Merge "Document instructions for using adb under recovery." 2018-02-08 19:20:57 +00:00
Tao Bao c84a4ef053 Document instructions for using adb under recovery.
Fixes: 72740736
Test: N/A
Change-Id: Ifc96ed785fd80501bc6c276cb649c8cc1f05be0e
2018-02-07 20:55:33 -08:00
Tianjie Xu 284752e2bc Log the last command to cache
When performing an update, save the index and cmdline of the current
command into the last command file if this command writes to the stash
either explicitly of implicitly. This mitigates the overhead to update
the last command file for every command. I ran a simple test on angler
and the time to update 1000 times is ~2.3 seconds.

Upon resuming an update, read the saved index first; then
  1. In verification mode, check if all commands before the saved index
     have already produced the expected target blocks. If not, delete the
     last command file so that we will later resume the update from the
     start of the transfer list.
  2. In update mode, skip all commands before the saved index. Therefore,
     we can avoid deleting stashes with duplicate id unintentionally;
     and also speed up the update.

If an update succeeds or is unresumable, delete the last command file.
Bug: 69858743
Test: Unittest passed, apply a failed update with invalid cmd on angler
and check the last_command content, apply a failed update with invalid
source hash and last_command is deleted.
Change-Id: Ib60ba1e3c6d111d9f33097759b17dbcef97a37bf
2018-02-06 16:16:49 -08:00
Tianjie Xu bded087f7d Merge "Avoid overwrite of the error message in AbortFn" 2018-01-30 21:44:02 +00:00
Tianjie Xu 5ad802839d Avoid overwrite of the error message in AbortFn
The AbortFn() used to overwrite the error message, hiding the real
failure reported in ErrorAbort(). And we will miss the failure in
the script patterns like 'blockimageupdate() || abort()'

We will ensure there's one line break at the end of ErrorAbort's
error message; and append to the existing error message when calling
abort().

Test: Message from ErrorAbort shows up in the log
Change-Id: I3aebd06629c5129330250c7fe5e8cdead2ae85bc
2018-01-29 11:42:59 -08:00
Sen Jiang 63eb1a4444 Merge "Add update_channel field to bootloader_message_ab." 2018-01-26 00:48:09 +00:00
Sen Jiang 7191bf0492 Add update_channel field to bootloader_message_ab.
The update_channel field is used to store the Omaha update channel
if update_engine is compiled with Omaha support.

We need it to be in misc to persist through factory reset.

Bug: 72332119
Test: mma
Change-Id: Ied4fecc6e78cc69d33a36ba4d101d675100f9d82
2018-01-22 15:03:53 -08:00
Treehugger Robot 80ccac2fff Merge "StartsWith allows a std::string prefix now." 2017-12-21 02:11:08 +00:00
Elliott Hughes 1d65c95fe8 StartsWith allows a std::string prefix now.
Bug: N/A
Test: builds
Change-Id: I5183ec8133f5dc9a81a438223c6d3d2ea11ef0ec
2017-12-20 12:36:31 -08:00
katao c35c1b0797 recovery: Porting screensave mode for new platform.
On new board platform the brightness path of
sys/class/leds/lcd-backlight is deprecated,instead of
/sys/class/backlight/panel0-backlight/.

Test: reboot into recovery on sdm845.
Change-Id: Idf0027ab888f9f982a8eef7de230ce3635e7c300
Signed-off-by: katao <katao@xiaomi.com>
2017-12-14 21:09:52 +08:00
Isaac Chen 3fe230a1e4 Merge "Let update_verifier work on non-AB update devices" 2017-12-14 04:18:41 +00:00
Isaac Chen 26fd78c024 Let update_verifier work on non-AB update devices
Make update_verifier check if it runs on A/B update devices at the
beginning, and quit immediately if it doesn't, instead of re-boot.

Bug: 70541023
Test: On aosp/master:
    $ lunch aosp_x86_64-userdebug; m -j # boot to home screen
    # On goog/master:
    $ lunch aosp_walleye-userdebug; m -j # boot to home screen

Change-Id: Ib71a3a3b272cfa5dd0b479eaa067eedaec8fde7d
2017-12-14 10:20:07 +08:00
Tao Bao 9203e77e7d Merge "applypatch: Remove the 'st' field from FileContents." 2017-12-09 17:27:39 +00:00
Jaegeuk Kim 4eaf7a157d Merge "add sload.f2fs for recovery format" 2017-12-08 00:57:41 +00:00
Tao Bao 47e5a8d085 applypatch: Remove the 'st' field from FileContents.
It used to keep track of the stat(2) info (e.g. st_mode/st_gid/st_uid)
while patching a file in file-based OTA.

Test: Build and use the new updater to apply an update on bullhead.
Change-Id: Ibf8f0f4b14298a9489bf24a2678bb279c5d9c8f3
2017-12-07 10:01:57 -08:00
Elliott Hughes ed369101ba Merge "Add a /bin symlink for consistency." 2017-12-07 16:55:25 +00:00
Elliott Hughes 4dca6f12db Add a /bin symlink for consistency.
Bug: http://b/63142920
Test: builds
Change-Id: I1f96935daca4d79f753e172067e07f8e27ea819e
2017-12-06 08:41:50 -08:00
Jaegeuk Kim c1c7311b8a add sload.f2fs for recovery format
Change-Id: Iddfe54b2b36f2d531925cbe61c98dbfb4903c0d1
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2017-12-04 20:27:49 -08:00
Tianjie Xu d9caba2bbe Merge "Detect interrupted update due to power off"
am: d8fadfb606

Change-Id: I2295430f7153711fb4e23d3e6f7af7c65efb7c54
2017-12-01 02:58:41 +00:00
Treehugger Robot d8fadfb606 Merge "Detect interrupted update due to power off" 2017-12-01 02:52:23 +00:00
Tianjie Xu 99b73be3a8 Detect interrupted update due to power off
An interrupted update may stash extra blocks in /cache, leading to a
failure when checking the cache size. We can save the incremented
retry_count in the BCB before installing the update; and distinguish
a fresh update from an interrupted one this way.

Bug: 68679601
Test: An interrupted update reapplies successfully.
Change-Id: Ic1403e1fd25a937c91ef34c14b92a0f6c8f1c0f4
2017-11-30 16:25:47 -08:00
Jin Qian 25e27f48db Merge "root: Fix an issue when volume length from fs_mgr is negative."
am: 5ce9fe355c

Change-Id: I4ff7bccb0dd2fecf309f3a3d23379d2467d64aea
2017-11-20 18:52:48 +00:00
Treehugger Robot 5ce9fe355c Merge "root: Fix an issue when volume length from fs_mgr is negative." 2017-11-20 18:47:56 +00:00
Jin Qian cc10008887 root: Fix an issue when volume length from fs_mgr is negative.
fs_mgr passes negative length as offset for crypt_footer. We need
to compute the actual device size for this case in addition to
when length is zero.

Bug: 68949069
Change-Id: I803955dd9591ad7752cee0dea9b683be8f4fd4ba
2017-11-18 21:54:44 -08:00
Tianjie Xu 086202e30d Merge "Add libbrotli as a dependency when building applypatch binary"
am: c7069cc922

Change-Id: I3379f84048c1b4c4858da537d045a1012c358b8b
2017-11-17 16:13:13 +00:00
Tianjie Xu c7069cc922 Merge "Add libbrotli as a dependency when building applypatch binary" 2017-11-17 16:09:08 +00:00
Tianjie Xu 47c8c290ec Merge "Switch imgdiff to libbase logging"
am: fd9c25e636

Change-Id: Iaf36238df9567f9e0e08abec2581e55d4692068b
2017-11-17 05:56:10 +00:00
Tianjie Xu fd9c25e636 Merge "Switch imgdiff to libbase logging" 2017-11-17 05:53:58 +00:00
Tianjie Xu 6e293c99c1 Switch imgdiff to libbase logging
Also add a verbose option. And we won't print messages of 'info'
severity unless '-v' is present.

Test: run imgdiff and check the logs.
Change-Id: I1b90874baea8e72e2a2323a0b63bc5d35e653e6b
2017-11-15 22:35:39 -08:00
Tao Bao 345f350540 Merge "minadbd: Remove two warning options."
am: 7bd61f0cc0

Change-Id: Id5e986ecd00cb2b953d761957a987a1b0c5ebf20
2017-11-15 23:04:09 +00:00
Tao Bao 7bd61f0cc0 Merge "minadbd: Remove two warning options." 2017-11-15 22:59:40 +00:00
Tao Bao f87d20404d minadbd: Remove two warning options.
'-Wimplicit-function-declaration' is not needed (it's for C89) and
already enabled by -Wall.

For '-Wno-missing-field-initializers', don't see any existing case that
requires the flag.

Test: `mmma -j bootable/recovery` on aosp_{bullhead,marlin}-userdebug.
Change-Id: I46604723087ed9a7747f6cae31a95fc0074c6758
2017-11-15 11:34:26 -08:00
Jaegeuk Kim c418bfeae2 Merge "recovery: format f2fs with encrypt/quota"
am: d4b6e25fdd

Change-Id: I1d17a488d2eea4d858fa31e7a00d694e20b011b3
2017-11-14 02:45:25 +00:00
Treehugger Robot d4b6e25fdd Merge "recovery: format f2fs with encrypt/quota" 2017-11-14 01:49:26 +00:00
Jaegeuk Kim 1a8bb0f542 recovery: format f2fs with encrypt/quota
Change-Id: Ia393b7b78b45f09964449ec0e255aa26bb3b8ddf
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2017-11-13 14:05:00 -08:00
Tao Bao e2296b7a25 Merge "applypatch: Change the patch parameter to const Value& in Apply{BSDiff,Image}Patch."
am: de07371b03

Change-Id: I2261486420f8e55cfbdd61f130be24f6e4deebf4
2017-11-11 01:18:04 +00:00
Tao Bao de07371b03 Merge "applypatch: Change the patch parameter to const Value& in Apply{BSDiff,Image}Patch." 2017-11-11 01:09:47 +00:00
Tao Bao 1e0941f4f6 applypatch: Change the patch parameter to const Value& in Apply{BSDiff,Image}Patch.
It used to be "const Value*", but nullptr won't be a valid input.

Test: recovery_host_test; recovery_component_test
Change-Id: I904b5689ac3e64504088bf0544c9fb5d45a52243
2017-11-10 12:18:34 -08:00
Alex Deymo e73bca40dc Merge "Include bspatch.h from bsdiff/"
am: 29cd3215ec

Change-Id: Ib53e96bee59300c4f94bf5de1801d4482a5abe3c
2017-11-10 09:57:04 +00:00