Commit Graph

4693 Commits

Author SHA1 Message Date
Tianjie Xu d142b28c2b Merge changes from topic "am-88276146-0d74-467c-8b81-8d471d84ce66" into oc-dev
am: 2c28ae3933

Change-Id: I265f4af4039125793e90fc034c3dfc87eb6ad227
2018-10-05 15:08:58 -07:00
Tianjie Xu 6b13f89f15 [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: e830a51351 skipped: 244aba4412 skipped: 9216bccd16 skipped: 98acdb9fce skipped: bc42a6b0eb
am: 35332d7c62

Change-Id: I54660a0731148f1ebbe74d4412d333a9f956dcb1
2018-10-05 15:08:31 -07:00
Tianjie Xu 2c28ae3933 Merge changes from topic "am-88276146-0d74-467c-8b81-8d471d84ce66" into oc-dev
* changes:
  [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: f39f139103 skipped: cce521e439 skipped: 4a53559e98
  [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: f39f139103 skipped: cce521e439
  [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: f39f139103
  DO NOT MERGE: Initialize the ZipArchive to zero before parsing
2018-10-05 21:57:50 +00:00
Android Build Merger (Role) 62497b2c80 [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: f39f139103 skipped: cce521e439 skipped: 4a53559e98
Change-Id: I4299e6a86c1006f2545f925da4552be7fda75f32
2018-09-07 23:15:41 +00:00
Android Build Merger (Role) 4a53559e98 [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: f39f139103 skipped: cce521e439
Change-Id: I7e60856514769442397e0055e2edae73e9b92cee
2018-09-07 23:15:39 +00:00
Android Build Merger (Role) cce521e439 [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: f39f139103
Change-Id: Ibe1a269dbc52c6106161ccd757434a131fb5c4a2
2018-09-07 23:15:38 +00:00
Tianjie Xu f39f139103 DO NOT MERGE: Initialize the ZipArchive to zero before parsing
The fields of the ZipArchive on the stack are not initialized before we
call libminzip to parse the zip file. As a result, some random memory
location is freed unintentionally when we close the ZipArchive upon
parsing failures.

Bug: 35385357
Test: recompile and run the poc with asan.
Change-Id: I7e7f8ab4816c84a158af7389e1a889f8fc65f079
2018-09-07 16:14:57 -07:00
Android Build Merger (Role) 35332d7c62 [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: e830a51351 skipped: 244aba4412 skipped: 9216bccd16 skipped: 98acdb9fce skipped: bc42a6b0eb
Change-Id: I2239a4b3dea1a167ed7cd7ceaeaf42a3caa2189f
2018-09-07 23:13:14 +00:00
Android Build Merger (Role) bc42a6b0eb [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: e830a51351 skipped: 244aba4412 skipped: 9216bccd16 skipped: 98acdb9fce
Change-Id: I3f11a59a38c2604970d2a2a2d5795a15b0f07100
2018-09-07 23:13:13 +00:00
Android Build Merger (Role) 98acdb9fce [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: e830a51351 skipped: 244aba4412 skipped: 9216bccd16
Change-Id: Ieb67174f2b98361f82ebc6c76b18bb904d44ea99
2018-09-07 23:13:11 +00:00
Android Build Merger (Role) 9216bccd16 [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: e830a51351 skipped: 244aba4412
Change-Id: I7efba2ee6798c5fb71679bee7861d98f3643f414
2018-09-07 23:13:10 +00:00
Android Build Merger (Role) 244aba4412 [automerger skipped] DO NOT MERGE: Initialize the ZipArchive to zero before parsing skipped: e830a51351
Change-Id: I7e1da775a32b1f5ef72a2d95b94c0bf494251781
2018-09-07 23:13:09 +00:00
Tianjie Xu e830a51351 DO NOT MERGE: Initialize the ZipArchive to zero before parsing
The fields of the ZipArchive on the stack are not initialized before we
call libminzip to parse the zip file. As a result, some random memory
location is freed unintentionally when we close the ZipArchive upon
parsing failures.

Bug: 35385357
Test: recompile and run the poc with asan.
Change-Id: I7e7f8ab4816c84a158af7389e1a889f8fc65f079
2018-09-07 16:09:28 -07:00
David Zeuthen 3222dc0d76 update_verifier: Support androidboot.veritymode being empty or 'disabled'.
Bootloaders using libavb will set androidboot.veritymode=disabled if
the "disable dm-verity" flag has been set. Additionally if the
"disable verification" flag is set androidboot.veritymode will not be
set at all. Handle both cases.

Without this fix we'll end up in a bootloop.

Test: Manually tested on a device using AVB.
(cherry-picked from commit 1a0929cc8a)
Bug: 64404283
Change-Id: I3adf93f8dfd528fe9b869a63afa775f5730a3f69
2017-08-09 14:23:20 -04:00
Jin Qian 5e47d5161a recovery: handle security footer before passing size to mke2fs
mke2fs doesn't take negative size as reserved size. If footer is
specified, compute fs size to be
(max partition size - reserved footer size) / block_size

Bug: 23686092
Bug: 63968011
Merged-In: Iac4e143bd26a70cfc81eb52a399d687e19b1049c
Change-Id: Iac4e143bd26a70cfc81eb52a399d687e19b1049c
(cherry picked from commit f3ccad58dd)
2017-07-25 21:09:02 +00:00
Bill Yi 7e05669aba Import translations. DO NOT MERGE am: 28b67f8eea -s ours
am: 9839965b25  -s ours

Change-Id: I0b93748069282ecd14fdcba5341c961913df0432
2017-07-11 03:16:27 +00:00
Bill Yi 9839965b25 Import translations. DO NOT MERGE
am: 28b67f8eea  -s ours

Change-Id: I1f451ff10f7c09b0d960830f8985515c8bc0ab0b
2017-07-11 03:13:57 +00:00
Bill Yi 28b67f8eea Import translations. DO NOT MERGE
Change-Id: If9d38fc1db0f4abc498c5229aa6d45150b0ef5e7
Auto-generated-cl: translation import
Exempt-From-Owner-Approval: translation import
2017-07-10 13:22:17 -07:00
Luke Song c392888df7 Restructure vr_ui
Get rid of pixel offset variables, and use makefile variables in
BoardConfigs.

Cherry picked from commit 81a8e4cab2

Bug: 37779982
Test: Verified vr ui has same behavior.
Change-Id: Ifbf44e27d7101aedbe3c0e6db4b8181d56efadfd
2017-07-06 16:49:27 -07:00
Luke Song edc6b52f00 Introduce VR recovery ui
A version of screen ui with specific adjustments for vr device
compatibility.

Cherry picked from commit a44dba7f4e

Bug: 37779982
Test: "adb reboot recovery" to view
Change-Id: If6b0f26c1b587f8d0176060685b5efb6c67593b1
2017-07-06 21:53:00 +00:00
TreeHugger Robot bee95d6866 Merge "recovery: replace make_ext4 with e2fsprogs" into oc-dr1-dev 2017-07-05 22:33:35 +00:00
Tao Bao f95e686dd0 screen_ui: Compute the top and bottom gaps.
We're not actually following the gaps as in the comments. For example,
Nexus 6P is supposed to use 220dp and 194dp gaps (top and bottom
respectively), but the actual numbers are 185dp and 194dp. Because the
animation icon and text sizes don't match the ones claimed (animation:
expected 200dp or 700px, actual 800px; text: claimed 14sp, actual 76px).
The top gap changes (shrinks) as we compute the baselines bottom-up.

This CL switches to using computed gaps: the major UI elements always
stay vertically centered, with identical top and bottom gaps.

Bug: 63093285
Test: 'Run graphics test' on angler/volantis/fugu/ryu.
Change-Id: I3cadbb34f728cf034afa47ac02a6deba8cb6b4e7
(cherry picked from commit 3250f72360)
2017-06-29 18:23:21 -07:00
Jin Qian 619b162d67 recovery: replace make_ext4 with e2fsprogs
Execute mke2fs to create empty ext4 filesystem.
Execute e2fsdroid to add files to filesystem.

Test: enter recovery mode and wipe data
Bug: 35219933
Change-Id: I10a9f4c1f4754ad864b2df45b1f879180ab33876
Merged-In: I10a9f4c1f4754ad864b2df45b1f879180ab33876
2017-06-27 00:34:43 +00:00
Tao Bao 855eaffff6 Use Makefile variables to specify margin settings.
Instead of defining device-specific UI class, this CL allows using
Makefile variables to specify margin values directly.

Values explicitly defined via TARGET_RECOVERY_UI_MARGIN_HEIGHT and
TARGET_RECOVERY_UI_MARGIN_WIDTH will be used. Otherwise they will
default to zero.

Bug: 62732748
Test: Specify the height and width and check recovery texts.
Change-Id: Icb6f7466c8d407f877b93da38aebfdf7e6b41be7
(cherry picked from commit a92d8fb456)
2017-06-23 09:45:28 -07:00
Tao Bao 8f7547edfa screen_ui: Allow setting screen margin space.
For round screen or screens with rounded corners, we don't want to show
texts within the margin which could otherwise be invisible.

Move the density computation to ScreenRecoveryUI ctor so that the value
can be used earlier.

Note that this is similar to the existing stuff in wear UI (outer_width,
outer_height). This CL gets ScreenRecoveryUI and WearRecoveryUI one-step
closer.

Bug: 62732748
Test: Setting and not setting margin_{width,height}_ on angler. Check the
      recovery texts (recovery menu as well as 'View recovery logs').
Change-Id: Ibf6238c9cc8949a42ed8a410e1c09d55b0b5a151
(cherry picked from commit 87f4650874)
2017-06-23 09:45:23 -07:00
David Zeuthen 336cbce252 update_verifier: Support AVB.
When using AVB, PRODUCT_SUPPORTS_VERITY is not set so check for
BOARD_ENABLE_AVB as well. Also AVB sets up the root filesystem as
'vroot' so map that to 'system' since this is what is
expected. Managed to test at least that the code is at least compiled
in:

 $ fastboot --set-active=_a
 Setting current slot to 'a'...
 OKAY [  0.023s]
 finished. total time: 0.023s

 $ fastboot reboot
 rebooting...

 finished. total time: 0.050s

 $ adb wait-for-device

 $ adb logcat |grep update_verifier
 03-04 05:28:56.773   630   630 I /system/bin/update_verifier: Started with arg 1: nonencrypted
 03-04 05:28:56.776   630   630 I /system/bin/update_verifier: Booting slot 0: isSlotMarkedSuccessful=0
 03-04 05:28:56.776   630   630 W /system/bin/update_verifier: Failed to open /data/ota_package/care_map.txt: No such file or directory
 03-04 05:28:56.788   630   630 I /system/bin/update_verifier: Marked slot 0 as booted successfully.
 03-04 05:28:56.788   630   630 I /system/bin/update_verifier: Leaving update_verifier.

Bug: 62464819
Test: Manually tested on device using AVB bootloader.
Merged-In: I13c0fe1cc5d0f397e36f5e62fcc05c8dfee5fd85
Change-Id: I2834b17688053411e7b904e31df9c83bf904cd56
2017-06-22 18:04:26 -04:00
Jeff Vander Stoep 3445b94c89 Fix "No file_contexts" warning
am: e35926e1af

Change-Id: I32fdf32429d8574d901e94370bbc5a8db674542d
2017-06-16 02:58:00 +00:00
Jeff Vander Stoep e35926e1af Fix "No file_contexts" warning
Fixed by Loading the file_contexts specified in libselinux, whereas
previously recovery loaded /file_contexts which no longer exists.

Bug: 62587423
Test: build and flash recovery on Angler. Warning is gone.
Test: Wipe data and cache.
Test: sideload OTA
Change-Id: I11581c878b860ac5f412e6e8e7acde811f37870f
(cherry picked from commit 2330dd8733)
2017-06-15 21:24:29 +00:00
Tianjie Xu 1905e3665a Merge "kill package_extract_dir" am: 99e7216907 am: 49f9c969eb am: 66e53f59b9
am: d1b65aa645

Change-Id: Idb46742fd2b73e927a14e12dd1b7ae5854e35334
2017-05-31 22:01:19 +00:00
Tianjie Xu d1b65aa645 Merge "kill package_extract_dir" am: 99e7216907 am: 49f9c969eb
am: 66e53f59b9

Change-Id: Iec9ae5171aaa2d8a0eb92de12b78e65aeb0136a4
2017-05-31 21:59:21 +00:00
Tianjie Xu 66e53f59b9 Merge "kill package_extract_dir" am: 99e7216907
am: 49f9c969eb

Change-Id: If8936fb2b090b83ad6fba39668d60e324662a42e
2017-05-31 21:57:18 +00:00
Tianjie Xu 49f9c969eb Merge "kill package_extract_dir"
am: 99e7216907

Change-Id: Ibc08736b0108151a4a023d971bd608654138d45e
2017-05-31 21:54:18 +00:00
Tianjie Xu 99e7216907 Merge "kill package_extract_dir" 2017-05-31 21:49:03 +00:00
Tianjie Xu 177076fcd5 Merge "Implement a custom deflate sink function for bspatch" am: 764eb215af am: 0f8e67088a am: 4a2cfffd33
am: d38aec8de6

Change-Id: Ibdb1b48633736802bff664973fcd4c08dc9ac93a
2017-05-26 23:32:43 +00:00
Tianjie Xu d38aec8de6 Merge "Implement a custom deflate sink function for bspatch" am: 764eb215af am: 0f8e67088a
am: 4a2cfffd33

Change-Id: Ifd32f346adefb90d043bccc3d6f20060ae3ca45d
2017-05-26 23:20:07 +00:00
Tianjie Xu 4a2cfffd33 Merge "Implement a custom deflate sink function for bspatch" am: 764eb215af
am: 0f8e67088a

Change-Id: I8e7499d97f6acb505e42b9935d3b21a41695dba7
2017-05-26 23:15:36 +00:00
Tianjie Xu 0f8e67088a Merge "Implement a custom deflate sink function for bspatch"
am: 764eb215af

Change-Id: Ifac391f38d692a5312b4b03ff5eaf701da6d7d41
2017-05-26 23:13:36 +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 75dee9b064 Merge "Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails" am: 9c1a114789 am: 66f02b4e71 am: aef046255a
am: da1fcf7ab2

Change-Id: Icad68a225061426e396541d0f67374a530f1dcb3
2017-05-24 18:56:34 +00:00
Tianjie Xu da1fcf7ab2 Merge "Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails" am: 9c1a114789 am: 66f02b4e71
am: aef046255a

Change-Id: Ib9ce75418ca56c2bb9fa68719371628b1763aa03
2017-05-24 18:54:04 +00:00
Tianjie Xu aef046255a Merge "Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails" am: 9c1a114789
am: 66f02b4e71

Change-Id: I6e745992d384b6d870b2549d16dc40100175493e
2017-05-24 18:51:03 +00:00
Tianjie Xu 66f02b4e71 Merge "Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails"
am: 9c1a114789

Change-Id: I45afda69f82147ba02b3e4666c3a296d84a2db47
2017-05-24 18:48:04 +00: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 f158a7d29e Merge "Print SHA1 of the patch if bsdiff fails with data error" am: 1f9808bd48 am: 8f68accc9d am: 1562f41348
am: 0abe9860d8

Change-Id: Id8d4e4b369f30a33a37ca1895d5dd36eb2bf8aff
2017-05-18 22:25:55 +00:00
Tianjie Xu 0abe9860d8 Merge "Print SHA1 of the patch if bsdiff fails with data error" am: 1f9808bd48 am: 8f68accc9d
am: 1562f41348

Change-Id: I7b605673eb3cee6a615459ca9fe2fc00c532ed9d
2017-05-18 22:20:55 +00:00
Tianjie Xu 1562f41348 Merge "Print SHA1 of the patch if bsdiff fails with data error" am: 1f9808bd48
am: 8f68accc9d

Change-Id: Ic81b2812030e8267a4d0d81d4909f84d284d1743
2017-05-18 22:16:24 +00:00
Tianjie Xu 8f68accc9d Merge "Print SHA1 of the patch if bsdiff fails with data error"
am: 1f9808bd48

Change-Id: I4900198d7c45c864e1a93bbd386b4ec36ed4cdec
2017-05-18 22:11:54 +00:00