Commit Graph

4938 Commits

Author SHA1 Message Date
Tao Bao e51b671e1e Rewrite the prop file at BOOT/RAMDISK/prop.default.
This is the new prop filename after commit
a6b68e72b1.

Bug: 63038934
Test: sign_target_files_apks.py with marlin TF.zip.  Check the contents
      in BOOT/RAMDISK/prop.default in signed-TF.zip.
Change-Id: I78106b68c387769bce50804c141c9e14dff55c09
2017-06-26 17:11:36 -07:00
Hung-ying Tyan a6b68e72b1 Revert "Revert "Move /default.prop to /system/etc/prop.default""
This reverts commit 88c9dddd0f.

Bug: 37815285
Bug: 62525809
Test: Tested with ag/2400523 and ag/2400524. Booted pixel phones,
      checked the location of prop.default, verified the symlink,
      checked a few properties via adb shell and manually tested
      a few apps (Camera, Maps etc).
      sign_target_files_apks.py was tested with:
      sign_target_files_apks -o -e DynamiteLoader.apk= -e DynamiteModulesA.apk= \
        -e DynamiteModulesB.apk= -e DynamiteModulesC.apk= -e DynamiteModulesD.apk= \
        -e GoogleCertificates.apk= out/dist/*-target_files-*.zip signed-target_files.zip
      Booted to recovery and ran 'adb sideload' successfully.

Change-Id: I2ddf287f42360d1a7c7a22f08e7b9e203e7e603a
2017-06-13 21:18:04 +08:00
Tao Bao d4b25e481e Merge "Revert "Move /default.prop to /system/etc/prop.default"" into oc-dev 2017-06-12 19:39:54 +00:00
Tao Bao 88c9dddd0f Revert "Move /default.prop to /system/etc/prop.default"
This reverts commit fad00e4318.

init fails to read default.prop under recovery:
init: Couldn't load properties from /default.prop: Too many symbolic links encountered

Bug: 62525809
Change-Id: I133e9025693e3e01278ec73c8d08860fc89d314b
2017-06-12 17:00:42 +00:00
Hung-ying Tyan fc00134c1e Merge "Move /default.prop to /system/etc/prop.default" into oc-dev 2017-06-09 08:04:37 +00:00
Hung-ying Tyan fad00e4318 Move /default.prop to /system/etc/prop.default
This patch tries to fix the problem where the default properties need
to go with the system image especially on non-AB devices where
/default.prop is on the ramdisk image. A symlink is created at
/default.prop for backward compatibility.

Bug: 37815285
Test: Tested with ag/2376383. Booted pixel phones, checked the location
      of prop.default, verified the symlink, checked a few properties
      (via adb shell getprop) and manually tested a few apps (Camera,
      Maps etc).
      sign_target_files_apks.py was tested with:
      sign_target_files_apks -o -e DynamiteLoader.apk= -e DynamiteModulesA.apk= \
          -e DynamiteModulesB.apk= -e DynamiteModulesC.apk= -e DynamiteModulesD.apk= \
          -e GoogleCertificates.apk= out/dist/*-target_files-*.zip signed-target_files.zip

Change-Id: I1a9a2ba49c8252afc13ced3dea71253afbd3091e
2017-06-09 13:00:58 +08:00
Tao Bao 80e231e15f Fix the broken script in AssertFingerprintOrThumbprint. am: 9c6ab6c49b
am: aeb3125ac3

Change-Id: I84c2963d314cc0da162a6080c74d47632b9a8c6f
2017-06-05 23:23:48 +00:00
Tao Bao aeb3125ac3 Fix the broken script in AssertFingerprintOrThumbprint.
am: 9c6ab6c49b

Change-Id: I2259869457587dda3a1b3ed54d77e5a1934c8436
2017-06-05 23:18:46 +00:00
Tao Bao 9c6ab6c49b Fix the broken script in AssertFingerprintOrThumbprint.
Bug: 62252466
Test: Re-generate an incremental OTA that goes from the fingerprint to
      thumbprint, and check the updater-script.
Change-Id: I6e2cbf68cbd22fbcf0d200fc3fdc8a33da510a53
(cherry picked from commit d2d01e519e)
2017-06-05 13:20:42 -07:00
Tao Bao a1980abe1f Merge "DO NOT MERGE Revert "Revert "releasetools: Support OTAs that have OEM properties changes.""" into cw-f-dev
am: fccf4ec06e

Change-Id: If7d5b3cd4de5f558275453d0d4a599995390a4a0
2017-06-02 22:50:15 +00:00
Tao Bao fccf4ec06e Merge "DO NOT MERGE Revert "Revert "releasetools: Support OTAs that have OEM properties changes.""" into cw-f-dev 2017-06-02 22:42:27 +00:00
Julius D'souza 92aa9636ad Merge "DO NOT MERGE: Add the option to reserve headroom for partition images. This is useful for devices with low disk space with different build variants." into cw-f-dev
am: 1590301a9b

Change-Id: I85bbf6b85c42ff3e9e69565812f8a2b8a0f41833
2017-06-02 03:14:54 +00:00
Tao Bao 7fc951ca6a DO NOT MERGE Revert "Revert "releasetools: Support OTAs that have OEM properties changes.""
This CL fixes the bug in [1] (copy-paste error) and reenables it.

We need to handle a special case that an OTA goes from a source build
without OEM properties to a target build with those properties (or vice
versa). Add support in OTA scripts to deal the case properly, by a)
using two oem_props variables to handle source and target builds
respectively; b) adjusting the fingerprint/thumbprint assertions to
allow a mix of both.

[1] commit c086370440

Bug: 62252466
Change-Id: I98118d77d5a0ff694fa1ee33602b5ee5e048599b
(cherry picked from commit eee30d97dde42416a1762c161ed7217d4e7ebf2c6)
2017-06-01 14:59:46 -07:00
TreeHugger Robot 290b8c71e4 Merge "Add the option to reserve headroom for partition images. This is useful for device with low disk space with different build variants." into oc-dev 2017-05-30 18:03:15 +00:00
Tao Bao 3eb353cdb0 Fix the symlink detection when signing TF.zip.
We used to check for 'attr >> 16 == 0xa1ff' (i.e. 0o120777) to detect
symlinks in the input target_files zip (TF.zip). This becomes broken
after we switch to soong_zip, which packs symlinks with 0o120700.

This CL fixes the issue by using stat.S_ISLNK() instead.

Note that we don't need to stage the files with the exact permission
bits as in the input TF.zip. Because this part is covered by mkbootfs
by using the canned or the compiled-in fs_config - as long as the
files/directories are accessible and the symlinks are created.

Bug: 38455129
Test: sign_target_files_apks.py on bullhead TF.zip. Check the
      checksums in SYSTEM/bin/install-recovery.sh.
Change-Id: I51c1fc9a257fb3f18c16c2ed71528abaa6f7d9c9
(cherry picked from commit 406050bdb6)
2017-05-23 11:18:26 -07:00
Julius D'souza 8756c0fedc Add the option to reserve headroom for partition
images. This is useful for device with low disk
space with different build variants.

This is a manual cherry-pick from aosp/master.

Bug: 37469715
Test: regular image builds successfully, errors occur
when the headroom size is greater than available
partition space.

Merged-In: I526cdd0f84981bbd16e3afcfe1cd7fc43dce98ef

Change-Id: I840d212bb46612074c43b39e94546901f60e4b4c
2017-05-19 14:27:28 -07:00
Julius D'souza af6d68e80d DO NOT MERGE: Add the option to reserve headroom for
partition images. This is useful for devices with low
disk space with different build variants.

This is a manual cherry-pick from aosp-master.

Bug: 37469715
Test: Regular image builds successfully, errors occur
when the headroom size is greater than available
partition space.

Change-Id: I048b45e4b7b68ed2e855ea852b09ee1fdc6ad35d
2017-05-15 13:36:07 -07:00
Jaekyun Seok 3b7560bf88 Split vendor license notices into vendor partition
Xml files will be generated instead of html files, and then Settings
will generate html file on runtime from xml files of partitions.

Test: build succeeded and tested on sailfish
Bug: 37099941
Change-Id: Id7899381a537b1947cbb6164ed2b4a98492334af
2017-04-28 16:29:17 +09:00
Tao Bao b63c952cc7 Revert "Revert "Add compatibility metadata to OTA package""
This reverts commit b1e59b8a73.

This CL enables generating compatibility zip entry in an A/B OTA
package. We're not enabling the support for non-A/B OTAs for now until
they have the necessary support (e.g. /proc/config.gz exists).

Bug: 36810913
Test: Generate full and incremental packages for marlin and applly under
      normal boot and sideload respectively.

Change-Id: I69f0a3feb7a0efc7f727f92f31c9e63f47ee6530
2017-04-25 15:04:41 -07:00
TreeHugger Robot dd4cdfd30a Merge changes Ieb58dd9a,I8ada38df into oc-dev
* changes:
  AVB: support BOARD_BUILD_SYSTEM_ROOT_IMAGE
  AVB: support signing vendor.img
2017-04-18 04:10:58 +00:00
Tao Bao b1e59b8a73 Revert "Add compatibility metadata to OTA package"
This reverts commit 853cd306b0.

Temporarily reverting the CL to work around the bug in recovery code.

Bug: 37413730
Change-Id: I8e77112ffafcf32332794739ee1c855cc83b32b0
2017-04-17 18:40:18 +00:00
Bowgo Tsai 16ba563b71 AVB: support BOARD_BUILD_SYSTEM_ROOT_IMAGE
Passing --setup_rootfs_from_kernel to avbtool when
BOARD_BUILD_SYSTEM_ROOT_IMAGE is true

Bug: 33590159
Test: 'make' sailfish with BOARD_AVB_ENABLE := true
Test: 'make dist' with BOARD_AVB_ENABLE := true
Change-Id: Ieb58dd9ae6be1eceb90a33c739b85cff5cbc6e0a
Merged-In: Ieb58dd9ae6be1eceb90a33c739b85cff5cbc6e0a
(cherry picked from commit 9b3776017f)
2017-04-15 13:57:42 +08:00
Bowgo Tsai 3f0fd3d085 AVB: support signing vendor.img
Uses avbtool to sign vendor.img if BOARD_AVB_ENABLE is set.
It also allows appending additional arguments to avbtool via
BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS.

e.g.,
  BOARD_AVB_ENABLE := true
  BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS := --generate_fec

Bug: 35415839
Test: "make" with the above variables and use avbtool to check vbmeta is
      appended to vendor.img
Test: "make dist" with the above variables

Change-Id: I8ada38dff3def6d34613e77c67944def8a49f464
Merged-In: I8ada38dff3def6d34613e77c67944def8a49f464
(cherry picked from commit 8ee4a3db8c)
2017-04-15 13:57:21 +08:00
Michael Schwartz 853cd306b0 Add compatibility metadata to OTA package
Store the metadata in a archive within the OTA package so the collection
can be retrieved as a single unit by the device.

Bug: 36810913
Test: `make dist` marlin (ab) and angler (non-AB) for incremental and full OTA.
Change-Id: I94118e48a3c6ed5ff890b67d7dafbca02346aeea
2017-04-13 21:32:05 -07:00
Makoto Onuki 517d32d4da Add USE_FILESLIST_GO to switch to fileslist.go
fileslist.go is still disabled by default.  To enable, use:
USE_FILESLIST_GO=true m -j

Bug: 36274890
Test: Manual, with m -j

Change-Id: I722e17fa7fb6ba91e2b2c44cd7524d974cbe4a56
(cherry picked from commit 9fe97e231b)
2017-03-28 13:19:03 -07:00
Mark Salyzyn f8b86e2651 Merge "fs_config_generate: README" am: 058e2f7b19 am: ccf3fcaba0
am: 4f254445e7

Change-Id: I334f9f5183ae93ba2db01bd82d10528967e024c0
2017-03-27 23:38:52 +00:00
Mark Salyzyn 058e2f7b19 Merge "fs_config_generate: README" 2017-03-27 23:29:02 +00:00
Scott Main 803e7d0e86 Delete all of templates-sdk/.
These files are now located in external/doclava/res/assets/
Related CLs:
https://googleplex-android-review.git.corp.google.com/#/c/1524290/
https://googleplex-android-review.git.corp.google.com/#/c/1928220/

Change-Id: Ia7dba884897c5b69243055190b6283537d35717f
2017-03-27 17:23:36 +00:00
Tianjie Xu 7224a8ff83 Merge "Fix unittest for blockimgdiff" am: 36bcb78eb9 am: 0e6a7f1838
am: 1b7e203272

Change-Id: Id6db83ef492aec3aba8ef8bf4c00658963ffaef3
2017-03-26 05:35:59 +00:00
Tianjie Xu a011dec9b2 Fix unittest for blockimgdiff
The test broke due to api change in constructor of Transfer.

Bug: 36456381
Test: blockimgdiff test passes
Change-Id: Ic73b66f8fb6141ff6f50c113b0d8cc55d34e0b5d
2017-03-24 16:28:16 -07:00
Mark Salyzyn 87ba0144f8 fs_config_generate: README
Test: none
Bug: 36071012
Change-Id: If30461fb9c522f705874fdfdc2b7cd54a5c3732e
2017-03-24 08:57:27 -07:00
Tao Bao 15d816bfc5 Merge "Add a missing default value for OPTIONS.extracted_input." am: 2c280271ac am: 3918b311f5
am: 5114910040

Change-Id: Ia52560941ffe86d08ffeb20728e6aea6afff583d
2017-03-22 07:43:10 +00:00
Tao Bao 5f8ff9319b Add a missing default value for OPTIONS.extracted_input.
Test: ota_from_target_files.py without --extracted_input_target_files.
Change-Id: Ieaba43fa557b544b24f3eeccd68ac289d1fe3d31
2017-03-21 22:36:20 -07:00
Dan Willemsen ea8f68ed6c Merge "Speed up non-AB ota_from_target_files in the build system" am: 47ba4239c8 am: 02e29c5b48
am: 62fb821faf

Change-Id: Idb3a0c991efe712865db7343861212a74ea56b0a
2017-03-22 02:26:50 +00:00
Dan Willemsen cea5cd210e Speed up non-AB ota_from_target_files in the build system
We've just created the target files package and still have the extracted
directory, so pass that to ota_from_target_files so that it doesn't have
to re-extract what we just compressed.

This saves a little bit of time -- for bullhead-userdebug on internal
master, this brings the time to build an OTA from ~340s -> ~310s. Much
of the time is still spent generating and signing the OTA.

Test: lunch bullhead-userdebug; m -j otapackage
Test: bullhead-ota-*.zip is identical before/after
Change-Id: Ib51cf6b02123e9c49280e9957c6590645470a52c
2017-03-21 15:34:27 -07:00
Tao Bao 4b066f1dcc releasetools: Add support for --override_timestamp. am: 9f884e6c55 am: 9ee7071553 am: d5de271e01
am: 839cdc66b1

Change-Id: Ibbe218523096ec9c783ea4062a0cce0208851f95
2017-03-16 23:33:44 +00:00
Tao Bao 839cdc66b1 releasetools: Add support for --override_timestamp. am: 9f884e6c55 am: 9ee7071553
am: d5de271e01

Change-Id: Ibb5be92d09cb02181ec92d939f5851d26f1df345
2017-03-16 23:26:44 +00:00
Tao Bao d5de271e01 releasetools: Add support for --override_timestamp. am: 9f884e6c55
am: 9ee7071553

Change-Id: I58f6108d8d620d39d673e2be9489cb13b50fbbb0
2017-03-16 23:24:13 +00:00
Tao Bao 9ee7071553 releasetools: Add support for --override_timestamp.
am: 9f884e6c55

Change-Id: Ie17ff6bffa91d16bbb4a3de123fc8aa97a35d266
2017-03-16 23:21:13 +00:00
Tao Bao 9deb61d782 Merge "releasetools: Remove a dead line." am: 83a6b953c9 am: 9a7201408f
am: 84161e9820

Change-Id: I8712c79112953830b0db4ff034caf552fbe3a921
2017-03-16 22:44:10 +00:00
Tao Bao 2f80e83e98 releasetools: Remove a dead line.
system_root_image has been dead since commit
2ce63edab7.

Test: pylint --rcfile=pylintrc add_img_to_target_files.py
Change-Id: Id791747b7313923b82279a21d264a998455a92d4
2017-03-16 11:59:24 -07:00
Tianjie Xu 5aa9a7b6b6 Merge "Provide more info for bsdiff/imgdiff exceptions." am: 53ba93d615 am: e742de1c4a
am: a9453d915d

Change-Id: I8eadeebba3a5e2c9778464ee7d6e97abe202a078
2017-03-16 18:57:25 +00:00
Tao Bao aaabaf74d6 Merge "releasetools: Support generating downgrade A/B OTAs." into nyc-dev am: 5a4508bcef am: e7847765a6 am: a7dcbfb2d8
am: 00f2147e70

Change-Id: Ic7b779c390f9611d31d644b0dbf0914521a479ca
2017-03-16 18:35:24 +00:00
Tao Bao 00f2147e70 Merge "releasetools: Support generating downgrade A/B OTAs." into nyc-dev am: 5a4508bcef am: e7847765a6
am: a7dcbfb2d8

Change-Id: I1958c8e75f83812ed493221fdf2fb74ee406becb
2017-03-16 18:30:53 +00:00
Tao Bao 9f884e6c55 releasetools: Add support for --override_timestamp.
We use the timestamps in builds to determine a downgrade, which might
not be always the truth. For examples, two builds cut from different
branches may carry timestamps in a reverse order. An incremental package
won't be able to be pushed nor applied, based on the timestamp
comparison.

We used to handle such a case with manual work, by setting the
post-timestamp to (pre-timestamp + 1) in the package metadata. This CL
automates the process by adding a new flag --override_timestamp.

Note that it doesn't change anything in the installed image, but only
affects the assertions for pushing / installing the package.

With the change in this CL:
 - If it's a downgrade without any extra flag, fail the package
   generation (we only print warnings prior to this CL);
 - If it's a downgrade with --downgrade flag, generate a downgrade
   package with forced data wipe (same as before);
 - If it's a downgrade with --override_timestamp, generate a normal
   incremental with hacked timestamp (pre-timestamp + 1) (new in this CL
   to avoid the manual change);
 - If it's not a downgrade but with any of the above two flags specified,
   fail the package generation.

Bug: 33744169
Test: Generate an incremental from builds with reversed timestamps.
Change-Id: I8b187d32708b4a7c3e20f8c6adb8f9527b73b965
Merged-In: I8b187d32708b4a7c3e20f8c6adb8f9527b73b965
(cherry picked from commit 3e6161a3b3)
2017-03-16 11:26:06 -07:00
Tao Bao a7dcbfb2d8 Merge "releasetools: Support generating downgrade A/B OTAs." into nyc-dev am: 5a4508bcef
am: e7847765a6

Change-Id: Icb06ee24b3c29ff095b127a4148b945e886859ac
2017-03-16 18:25:54 +00:00
Tao Bao e7847765a6 Merge "releasetools: Support generating downgrade A/B OTAs." into nyc-dev
am: 5a4508bcef

Change-Id: If09ef383865b95b7dd65522d7c369b98144c5520
2017-03-16 18:22:54 +00:00
Tao Bao 99c17252ac releasetools: Support generating downgrade A/B OTAs.
We already support generating downgrade OTAs for non-A/B devices (with
mandatory data wipe), but we have missed the --downgrade flag in A/B OTA
path.

This CL factors out the function that writes the downgrade metadata, and
fixes the path for generating A/B OTAs.

Bug: 35094540
Bug: 36183651
Test: Generate incrementals with --downgrade for A/B and non-A/B OTAs.
Change-Id: I30b9bf83e69e8aba3be666507681b555db6ab743
Merged-In: I30b9bf83e69e8aba3be666507681b555db6ab743
(cherry picked from commit b31892e5de)
2017-03-16 16:47:10 +00:00
Tianjie Xu b59c17fc8f Provide more info for bsdiff/imgdiff exceptions.
When bsdiff/imgdiff fails, dump the output along with the src/tgt
filenames and block ranges. Also, exit the script gracefully instead
of raising an exception about iterating over 'NoneType'.

Bug: 31381530
Test: Package generates successfully for angler, and error outputs
      correctly with error injection.

Change-Id: I06a2dfe545fbdff7043de05fee34b378453a9291
2017-03-14 18:51:21 -07:00
Jaekyun Seok 3070610b72 Enforce RROs for all the build-time ROs
This CL is to generate every static RRO package for its target package
automatically at build-time.

BOARD_ENFORCE_RRO build variable is added to specify whether enforcing
RRO is required or not.

BOARD_ENFORCE_RRO_EXEMPT_SOURCES build variable is added to specify
the module list of which item should be exempt from enforcing RRO.

Test: tested on bullhead and sailfish
Bug: 34097942
Change-Id: I455b2ce34e66c57a540c299b5e378b7c4e78d5b8
2017-03-14 23:55:50 +09:00