Commit Graph

5091 Commits

Author SHA1 Message Date
Ryan Campbell 63fc0e681d Create product sysprops on vendor partition.
Duplicate essential product sysprops for manufacturer, model, brand, name, and device
from system on vendor so that mixed builds (vendor.img + GSI system.img) have correct
product information in their CTS/VTS reports.

Test: make
Bug: 64458205
Merged-In: Ib63b37772be493b9e035d9b7e8c5e2cf66f2fa8c
Change-Id: Ib63b37772be493b9e035d9b7e8c5e2cf66f2fa8c
(cherry picked from commit aea0f92ff3)
2017-10-25 11:35:14 +09:00
Colin Cross bce301801f Merge "Update references to build/core to build/make/core"
am: 6db8597174

Change-Id: I4be5bc1805d1900991966d24fda15f2705ee248d
2017-10-20 23:49:17 +00:00
Colin Cross 6db8597174 Merge "Update references to build/core to build/make/core" 2017-10-20 23:41:12 +00:00
Colin Cross 6cdc5d20f3 Update references to build/core to build/make/core
sed -i -e 's"\([^/]\)build/core"\1build/make/core"g' $(git grep -l build/core)

Test: m checkbuild
Change-Id: Idf3a2fed79aee5d2c07bd8e42f0c0660f253ddc2
2017-10-20 12:49:28 -07:00
Tao Bao f55aae7211 Merge "releasetools: Work around the issue with mke2fs created images."
am: d526e0c8e9

Change-Id: I9d4d034ad3f2763ac3da6a22bf0bd0dc02eb98c3
2017-10-20 17:31:12 +00:00
Tao Bao b937ead5d9 releasetools: Work around the issue with mke2fs created images.
When generating block based OTAs, we read files from the sparse image
directly with the help of block map file. However, the block map info
might not be accurate if the image is created with mke2fs. Because
mke2fs may skip allocating actual blocks if they contain all zeros.
ota_from_target_files.py consequently passes incomplete APK files to
imgdiff, which fails to generate patches.

This CL works around the issue by falling back from imgdiff to bsdiff on
failures. We should figure out a better way in b/68016761 to remove the
workaround, which would otherwise hide other issues in imgdiff.

Bug: 67824829
Bug: 68016761
Test: ota_from_target_files.py passes on previously failing TF zips.
Change-Id: Ib24c5b5f89812b97a0c87c6bf0dc147ae39bc92f
2017-10-19 16:56:22 -07:00
Tao Bao 9c531a9bef Merge "releasetools: Remove the workarounds for mkyaffs2image."
am: d2a09ef2d1

Change-Id: I7f975b9d734f3bc9594758a365574a9ce009d19c
2017-10-18 22:04:12 +00:00
Tao Bao 300506e147 Merge "Build repeatable system images with mke2fs."
am: 404af2ca4b

Change-Id: I49a97fe49449b1e2466eb8cd612816c526da0bcb
2017-10-18 18:05:46 +00:00
Tao Bao fa863c86b7 releasetools: Remove the workarounds for mkyaffs2image.
Test: `m dist` on Linux and macOS.
Test: Use an existing target_files.zip for bullhead. Remove IMAGES/*
      and rebuild the images with 'add_img_to_target_files.py -a'. It
      generates idential images as in the original TF.zip.
Change-Id: I803656bf2c924dce53f2271dcb967a94fff48440
2017-10-18 10:21:33 -07:00
Treehugger Robot 404af2ca4b Merge "Build repeatable system images with mke2fs." 2017-10-18 17:20:00 +00:00
Colin Cross 94ddb28a26 Merge "Follow renames of conscrypt and bouncycastle to remove -host suffix"
am: f4f94ab567

Change-Id: I9c978fb748ec3ce15cc9ea238193606a4726ae8f
2017-10-18 10:51:53 +00:00
Treehugger Robot f4f94ab567 Merge "Follow renames of conscrypt and bouncycastle to remove -host suffix" 2017-10-18 09:41:11 +00:00
Tom Cherry 47b3003e9b Merge "Allow ro. properties to have arbitrary lengths"
am: 1d6e8e31d0

Change-Id: I4a3872a59ba39289bf58741e19ca05b9b9c7bbee
2017-10-17 22:42:04 +00:00
Tom Cherry 1d6e8e31d0 Merge "Allow ro. properties to have arbitrary lengths" 2017-10-17 22:33:11 +00:00
Colin Cross b34d45ad65 Follow renames of conscrypt and bouncycastle to remove -host suffix
Test: m checkbuild
Change-Id: I72bd7249cf6bdc4a2251f6877c776f439649da81
2017-10-17 15:27:52 -07:00
Tao Bao d86e3114fc Build repeatable system images with mke2fs.
We have added support in mkuserimg_mke2fs.sh that allows specifying
filesystem UUID and hash seed UUID. This CL generates and passes the
UUIDs based on the image name and build fingerprint. This way we can
rebuild and get identical images.

Note that this only applies to images generated with `m dist` and with
signing tools (sign_target_files_apks.py and
add_img_to_target_files.py). Images under $OUT (built with `make`) are
not affected.

Bug: 64994964
Test: lunch marlin-userdebug; run `m dist` twice (after deleting the
      intermediate files under $OUT/obj/PACKAGING), and compare the
      generated images.
Change-Id: I41cf4e5869582bb930af2f35a8e9c79bff43b2a2
(cherry picked from commit 3aa21e6bb9)
2017-10-16 22:48:33 -07:00
Bowgo Tsai 86c4f8ed54 Merge "Adding Android verified boot 1.0 metadata into ENG builds"
am: 5f958ccad5

Change-Id: I54405288a18db3940b0721d5638127e66b7cac3e
2017-10-15 02:48:17 +00:00
Tom Cherry 47c4eb4680 Allow ro. properties to have arbitrary lengths
Bug: 23102347
Bug: 34954705
Test: provide a fingerprint >92 characters long and see that it
      successfully works

Change-Id: Ida9ffd5266acb3b432b208780804a08e8f7391b4
2017-10-12 09:21:48 -07:00
Bowgo Tsai 6ceeb1a8bf Adding Android verified boot 1.0 metadata into ENG builds
Adding verified boot metadata with a "disable magic". The resulting
metadata at the end of each image (e.g., system.img, vendor.img) will
be the same as triggering an "adb disable-verity" on an USERDEBUG image.

This can help simplify the code on fs_mgr, which won't have to check if
current image is an ENG build or not.

Bug: 63056044
Test: boot sailfish eng/userdebug builds
Change-Id: I95d23ac7b76c04d6d4483c9c4dc1de16bf0d9c3a
2017-10-12 10:08:44 +08:00
Chih-Hung Hsieh 7dba41687e Merge "Use -Werror in build/make"
am: 2d1681c804

Change-Id: If94e0a0210c7e47880729ad18b7a24e26be4d597
2017-10-03 22:47:22 +00:00
Dan Willemsen c4c502e751 Merge "Ignore zip comments in dump-package-stats"
am: 75cc5bf9ae

Change-Id: If9f2fa10f24aa90234bd01bdd00177308d80aa9e
2017-10-03 22:40:09 +00:00
Treehugger Robot 2d1681c804 Merge "Use -Werror in build/make" 2017-10-03 22:38:24 +00:00
Chih-Hung Hsieh 2a5bc9dfbf Use -Werror in build/make
* Remove unused local variables.

Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: Iced5bb903902f49d7cd5cf5f572906a512c75e18
2017-10-03 13:53:13 -07:00
Dan Willemsen 093075304b Ignore zip comments in dump-package-stats
Use -q to silence zip comments, which also silences the first line.

Bug: 67345114
Test: find vendor -name '*.apk' | xargs build/tools/dump-package-stats
Change-Id: Icb319c603de7c29644c58520213940179f67b7e4
2017-10-03 12:56:09 -07:00
Tao Bao 815b445c14 Merge "Use computed salt for AVB-signed images."
am: 4655de40c1

Change-Id: Ifd379a8b90b09ea40f56d15e65c17545024d76dc
2017-09-29 19:53:46 +00:00
Tao Bao 2b6dfd6689 Use computed salt for AVB-signed images.
We want the generated images being identical for the same source files.
Currently the generated ext4 image (either from make_ext4fs or mke2fs)
is reproducible, but the AVB footer added by avbtool contain changes
because of the random salt being used.

This CL changes the avbtool invocation to specify "--salt <hexstring>"
(already supported by avbtool) to use reproducible salt that's computed
based on fingerprints (or thumbprints if applicable).

Bug: 67023482
Test: Regenerate images from the same source as follows:
  Use a target_files.zip from an AVB-enabled target.
    $ zip -d target_files.zip IMAGES/\*
    $ ./build/make/tools/releasetools/add_img_to_target_files.py \
          -v target_files.zip
  Repeat the above commands and compare the generated images.
Change-Id: Id9db17ae0132ca3a820b4be5a5ef06ca3fef71ed
(cherry picked from commit 8f05cca1d9)
2017-09-29 10:47:40 -07:00
Dan Willemsen c8e3f1e0d8 Merge "Add -lm to the default libs for Linux & Darwin"
am: 5118763940

Change-Id: I8685d42c742db41d186176346254833249cd0d59
2017-09-27 07:13:58 +00:00
Dan Willemsen a3a06feeed Add -lm to the default libs for Linux & Darwin
libm is a default library for device builds, so default it for host
builds as well.

Also removes duplicate additions of -ldl, -lpthread, -lm and -lrt.

Test: m host
Change-Id: I6a07e12053090eb6997b79d4091c28ac9a9022de
2017-09-26 20:26:11 -07:00
Dan Willemsen dee143988e Merge "Remove ijar"
am: 1dcffadbc7

Change-Id: I55b0892905cf67655661f5a15ef3574e9e27db97
2017-09-22 21:30:17 +00:00
Dan Willemsen 6f2284e4fe Remove ijar
It's no longer used.

Test: cs/
Change-Id: Ib24094e494d4caa390f83df28c179b6012691ebc
2017-09-21 16:08:51 -07:00
Tao Bao 4a5a1e15a1 Merge "Consider prebuilt vendor.img as having vendor partition."
am: 8a7b0dee6b

Change-Id: I24451a308365873432eafd3fdc30403a9514ef7e
2017-09-14 00:25:48 +00:00
Tao Bao b22afea0f0 Consider prebuilt vendor.img as having vendor partition.
vendor.img could be built from the source - in which case we have
unpacked files under VENDOR/ - or dropped in as a prebuilt binary blob.
We should consider either of them as target having a vendor partition.
Because we need to add its AVB hashtree info into vbmeta.img if target
is using AVB. Otherwise libfs_mgr would refuse to mount this
"AVB-enabled" vendor.img.

For targets not using AVB, this change is no-op.

Bug: 65462819
Test: Having vendor.img as prebuilt, `make dist`. Check that the
      generated vbmeta.img contains the info from vendor.img.
Test: Build, flash and boot the above image.zip.
Change-Id: Iaeb30e2059cb33fb39f23e5ffd28f338d00ccbfc
2017-09-13 11:05:15 -07:00
Tianjie Xu b34a5ce36e Merge "Add a verbose option to RunCommand in build_image.py"
am: ab61b6b895

Change-Id: I7ebc5a522a76134576ab3f7ed61e2f6916d179da
2017-09-11 20:04:00 +00:00
Tianjie Xu ab61b6b895 Merge "Add a verbose option to RunCommand in build_image.py" 2017-09-11 19:22:38 +00:00
Dan Willemsen 8c3849a15d Merge "Convert to Android.bp"
am: 65631cf079

Change-Id: I22e6fecccd465e5f2a962168ee78c241ecb31aa2
2017-09-09 22:42:58 +00:00
Dan Willemsen c0a0f2dc1f Convert to Android.bp
Test: m atree fs_config fs_config_generate_test fs_config-unit-tests fs_get_stats zipalign
Test: cd out/host/linux-x86/nativetest64/fs_config-unit-tests ./fs_config-unit-tests
Change-Id: I3c5403a7f1cf221715eb52a41c640af9afcee175
2017-09-09 13:47:34 -07:00
Tianjie Xu 149b7fbf08 Add a verbose option to RunCommand in build_image.py
Make the build log less verbose; also print the result for
AdjustPartitionSizeForVerity().

Bug: 65292710
Test: Run add_img_to_target_files with and without "-v" and check
the logs.

Change-Id: Icdc86197ce69db036658ea9e77cc4ebe1750463b
2017-09-09 03:42:31 +00:00
Chih-Hung Hsieh 6dfe4bc16a Merge "Accept alternative email addresses."
am: 0b14739e0f

Change-Id: I32c6c40c84796601dbd7392c14175c3bda7aa920
2017-09-07 22:32:09 +00:00
Chih-Hung Hsieh 2b1efe63cf Accept alternative email addresses.
Some OWNERS files use secondary email addresses, so we only
check existence of _account_id and email attributes.

Test: run against existing OWNERS files
Change-Id: I6f0804a8a90b7a23783c3fe45686d4d973876ed1
2017-09-07 13:07:26 -07:00
Tao Bao 6b8eeb0bf4 Merge "Skip checking files that have less blocks in block map."
am: aa599f3916

Change-Id: I11ea419d275b5af8f0b095377fbdb19fee465c1d
2017-09-07 17:56:50 +00:00
Tao Bao aa599f3916 Merge "Skip checking files that have less blocks in block map." 2017-09-07 17:50:51 +00:00
Tao Bao d5ec31f8a9 Merge "releasetools: Validate A/B OTA payload signatures."
am: 631b3a031c

Change-Id: I3abd410e0709cd44b2e2b74471e3cc023dba7cd5
2017-09-06 20:48:14 +00:00
Tao Bao b418c30e3a Skip checking files that have less blocks in block map.
When creating ext4 images with mke2fs, it may skip allocating some
blocks if they contain all zeros. As a result, there could be less
blocks listed in the block map than the actual file length.

For example, for a file with a length of 112200-byte (27+ blocks),
the listed blocks in block.map could be '43665-43688' (24 blocks).
Because some all-zero blocks are not taking actual space.

The generated ext4 images are perfectly valid - kernel will figure out
that data block is not allocated and writes all zeros into user buffer.
However, we can't fully reconstruct a file from its block list in our
Python script. Ideally this can be avoided by mounting or parsing an
ext4 image directly, which is yet to be supported in our script.

This CL skips checking for such files to avoid failing
validate_target_files.py.

Bug: 65213616
Test: validate_target_files.py passes on targets with mke2fs generated
      images (e.g. marlin).
Change-Id: Id9cc59e345b9283844044ef94ceb5702f0ca0526
2017-09-05 15:53:24 -07:00
Tao Bao a198b1e964 releasetools: Validate A/B OTA payload signatures.
$ PYTHONPATH=$PYTHONPATH:system/update_engine/scripts \
    ./build/make/tools/releasetools/check_ota_package_signature.py \
    build/target/product/security/testkey.x509.pem \
    out/dist/aosp_marlin-ota-eng.zip

Package: out/dist/aosp_marlin-ota-eng.zip
Certificate: build/target/product/security/testkey.x509.pem
...
Whole package signature VERIFIED

Verifying A/B OTA payload signatures...
...
Payload signatures VERIFIED

Bug: 65261072
Test: Signed a package and its payload with the right keys; ran the
      command above.
Test: Signed the payload with a different key; ran the command above and
      observed the reported verification failure.
Change-Id: If626ecb327a9826cd0956eef94914c939068a7d1
2017-09-01 14:33:15 -07:00
Tao Bao 7313d99f00 Merge "Add compatibility metadata for Treble-enabled non-A/B OTA packages."
am: 02b158d7a4

Change-Id: I54e64fcd3fbff266f8082a4347432941a8c6e8fe
2017-08-29 19:20:08 +00:00
Tao Bao bcd1d161e8 Add compatibility metadata for Treble-enabled non-A/B OTA packages.
Commit 21803d3574 only added compatibility
metadata for A/B OTA packages, because by that time we didn't use
'ro.treble.enabled' property to determine if a target was Treble-enabled.

This CL uses 'ro.treble.enabled' to guard the packing of compatibility
metadata for both of A/B and non-A/B OTA packages. It also switches to
checking the system/vendor fingerprints to determine if there's an
update to the partition (previously it was computing the SHA-1 of the
images, which may have unintentionally changed due to issues that give
non-repetitive builds).

Bug: 64339310
Test: Generate OTA packages (full and incremental) on Treble-enabled
      targets (sailfish, as well as a non-A/B angler target with
      Treble-enabled locally); check that the compatibility.zip entry
      exists.
Test: Generate OTA packages on Treble-unenabled non-A/B target (angler);
      check that the compatibility.zip entry doesn't exist.
Test: Generate OTA packages on Treble-unenabled A/B target; check that
      the compatibility.zip entry doesn't exist.

Change-Id: I2a1fcf612439d849ba8ccea217a0faf5d5ba8e14
2017-08-28 15:19:44 -07:00
Tao Bao f7b5d5fbaa Merge "Remove file_contexts.bin from non-A/B OTA package."
am: 7a1ed9edef

Change-Id: I8e3a230473e442b5c4d42eb77f2f09457e6ddabd
2017-08-25 23:14:47 +00:00
Tao Bao ac7b7db12c Remove file_contexts.bin from non-A/B OTA package.
This entry only exists in non-A/B full OTA path. However, this file has
never been loaded by recovery - recovery was only reading the one from
the recovery image (which also has been removed by a recent change in
[1]).

[1]: commit e35926e1aff2e6b9b54656bd59c8178e295a1b7e in
platform/bootable/recovery.

Bug: 63538434
Test: `m dist` on angler. file_contexts.bin is gone from full OTA
      package. Sideloading the generated full OTA on angler.
Change-Id: Iec2e2d36599fa1ed499516a3e74f06cd36ade494
2017-08-25 14:14:53 -07:00
Jeff Gaston 5b767956fd Merge "Remove the need to find Android.mk files via directory symlinks" am: 6ab53d7211 am: 03e7e81837
am: aed14c5515

Change-Id: I84c8258ebb89eff647cdd52663f812c5600145e1
2017-08-08 00:19:21 +00:00
Jeff Gaston aed14c5515 Merge "Remove the need to find Android.mk files via directory symlinks" am: 6ab53d7211
am: 03e7e81837

Change-Id: Ib453be719ce27c3f354b1353e45939cee2102aea
2017-08-08 00:16:53 +00:00