Commit Graph

6617 Commits

Author SHA1 Message Date
Bowgo Tsai
dc80ab1bf0 Merge "Moving system_other key into product.img" am: 7e87c72fb0 am: 916e876f7a
am: 44446b2a50

Change-Id: Ic704ac1ee1b9e956753d5b67fb39046ac608d721
2019-03-20 21:45:30 -07:00
Vic Yang
38f68f7a2a Merge changes from topic "vndk-no-vendor-variant"
am: 30dda1da5e

Change-Id: I646d55e6195a24530bf22d1e7588b2dd99b27eba
2019-03-20 21:39:57 -07:00
Bowgo Tsai
916e876f7a Merge "Moving system_other key into product.img"
am: 7e87c72fb0

Change-Id: I29ba3d2056fca68a356cb26a8e17b29d415ed08e
2019-03-20 21:36:24 -07:00
Vic Yang
30dda1da5e Merge changes from topic "vndk-no-vendor-variant"
* changes:
  Add support for no-vendor-variant VNDK
  Add module-target-built-files function
2019-03-21 04:30:47 +00:00
Treehugger Robot
7e87c72fb0 Merge "Moving system_other key into product.img" 2019-03-21 04:26:21 +00:00
Tao Bao
359862db12 Revert^2 "releasetools: check_target_files_signatures.py checks APEXes."
This reverts commit 5516d37f41.

The previous issue in unzipping non-matching files has been addressed
with commit a49054ca2f2959f50f3188914ec0faebc90ebcbe. This CL rolls
forward to allow dumping container certifcates for APEXes.

Bug: 128848294
Test: Run check_target_files_signatures.py on target_files.zips w/ and
      w/o APEX files.
Change-Id: I662aab3d96fc40ac8e5e206e32b73ac763220b70
2019-03-20 12:40:34 -07:00
Tao Bao
0ff15de32a releasetools: common.UnzipTemp() filters out non-matching patterns.
common.UnzipTemp() calls `unzip` to do the unzipping, which will
complain if there's non-existent names in the given list. Prior to this
CL, callers had to do the work to remove non-existent entries. This CL
filters out the given patterns in common.UnzipTemp()/common.UnzipToDir()
to make callers' works easier.

Bug: 128848294
Test: `m dist` with aosp_taimen-userdebug (which calls
      ota_from_target_files.py on a target_files.zip that doesn't
      contain RADIO/*).
Test: `python -m unittest test_common.CommonZipTest`
Change-Id: I5e741c27ea8d0b8126c398a7e1b56a8deb4a3d7f
2019-03-20 12:38:09 -07:00
Vic Yang
51512c558c Add support for no-vendor-variant VNDK
When TARGET_VNDK_USE_CORE_VARIANT is set to true, the vendor variant of
VNDK libraries are by default not installed.  Instead, the core variant
will be used by vendor binaries at runtime.

To ensure the core variant of VNDK libraries are installed, we also add
a flag LOCAL_VNDK_DEPEND_ON_CORE_VARIANT to indicate that the vendor
variant module depends on the core variant module.  This flag should be
set by Soong for all VNDK libraries without the vendor variant
installed.  When the flag is set, the vendor variant binary is also
compared against the core variant binary to ensure they are
functionally identical.

As we are merging the two variants for some libraries, we need a new
link type to denote a module is usable as both native:vndk and
native:platform.  We add native:platform_vndk for this.

Bug: 119423884
Test: With the corresponding Soong change, build with
      TARGET_VNDK_USE_CORE_VARIANT set to true.
Test: Add a dummy VNDK library and a dummy vendor binary that depends
      on it.  Build with no-vendor-variant VNDK and check the core
      variant is installed.
Test: Add conditional compilation based on __ANDROID_VNDK__ in the
      dummy VNDK library and check build fails.

Change-Id: I40000f2728e8193212113c1ee950e9d697f2d40d
2019-03-20 10:23:04 -07:00
Anton Hansson
0a766e9afa Merge "Refactor generate_enforce_rro" am: bec4aa868a am: f5c74dd470
am: 5784c16fc4

Change-Id: I3d12f8a0f50429e8f54631bedec7e6caf667fb61
2019-03-20 09:23:38 -07:00
Anton Hansson
f5c74dd470 Merge "Refactor generate_enforce_rro"
am: bec4aa868a

Change-Id: I1f616f8020f85df60b89cdc3d0f489e9111d0454
2019-03-20 09:10:12 -07:00
Anton Hansson
bec4aa868a Merge "Refactor generate_enforce_rro" 2019-03-20 15:18:19 +00:00
Anton Hansson
3ef0773932 Merge "Rename DEVICE arg in common buildprops script" am: c371f19e89 am: a0ea5a17e8
am: 1ed2fafd6a

Change-Id: I0eec28ce7fbe8f29588993b1986b70cf52b0497e
2019-03-20 04:09:51 -07:00
Anton Hansson
a0ea5a17e8 Merge "Rename DEVICE arg in common buildprops script"
am: c371f19e89

Change-Id: I24bd162fcfe728f3972eb4e3ce6d5df74ba8bf50
2019-03-20 03:28:08 -07:00
Anton Hansson
c371f19e89 Merge "Rename DEVICE arg in common buildprops script" 2019-03-20 10:25:01 +00:00
Bowgo Tsai
e4544b1c02 Moving system_other key into product.img
Currently system_other AVB public key is placed in system.img.
However, this makes it's harder to have a *generic* system.img
across different product configs. Moving the key to /product
partition to allow more product-specific AVB keys.

Device board config can add /product/etc/fstab.postinstall,
to mount system_other with this key in /product. It can specify
different mount options, file systems, verity settings, etc., in
this product-specific fstab as well.

Bug: 123611926
Test: `make productimage` checks the following is generated.
      $OUT/product/etc/security/avb/system_other.avbpubkey
      Also checks it's included in $OUT/installed-files-product.{json, txt}

Test: run the following command and checks that
      PRODUCT/etc/security/avb/system_other.avbpubkey is updated:
      ./build/tools/releasetools/sign_target_files_apks \
        --avb_system_other_algorithm SHA256_RSA2048 \
        --avb_system_other_key external/avb/test/data/testkey_rsa2048.pem \
        out/dist/*-target_files-*.zip signed-target_files.zip

Change-Id: I6804f29941bec54375d80bd68a5aedb5c23b842e
2019-03-20 16:18:11 +08:00
Logan Chien
99cdf5385d Update check_elf_file.py for clang-r353983
This commit updates how `check_elf_file.py` parses the symbol name
because the `llvm-readobj` (from clang-r353983) does not print "@" if
the symbol is not versioned.

See also. https://reviews.llvm.org/D56319

Bug: 128959554
Test: CHECK_ELF_FILES=true make check-elf-files
Change-Id: I0dee5e505225e57750a2c86cf0d25a151c218eb1
2019-03-20 15:24:00 +08:00
Daniel Norman
113142152b Merge "Validates the config lists used by the script." am: a4ab1d8490 am: 0e58857364
am: d181c2119a

Change-Id: I597359107d78dccbb898e0897171e0876d4ddf79
2019-03-19 17:27:34 -07:00
Daniel Norman
0e58857364 Merge "Validates the config lists used by the script."
am: a4ab1d8490

Change-Id: I49846ae2cd3e66df79b8230363f916fa5c380f5a
2019-03-19 17:10:46 -07:00
Daniel Norman
a4ab1d8490 Merge "Validates the config lists used by the script." 2019-03-19 23:56:25 +00:00
Tao Bao
9782c5b49c Merge "releasetools: Allow skipping PRESIGNED APEXes." am: 2812fd32ac am: 7898831d95
am: 5e779eec7c

Change-Id: Ib2a9cc3e12198471ee891d6c0e81013c0302b82a
2019-03-19 16:46:59 -07:00
Tao Bao
7898831d95 Merge "releasetools: Allow skipping PRESIGNED APEXes."
am: 2812fd32ac

Change-Id: I2586d1663b0625dee739f964116e8371d90fb813
2019-03-19 16:24:24 -07:00
Tao Bao
2812fd32ac Merge "releasetools: Allow skipping PRESIGNED APEXes." 2019-03-19 23:04:07 +00:00
Daniel Norman
aa967cc673 Merge "Adds optional --rebuild_recovery flag to merge_target_files." am: fab3f29e5a am: 62f2c36d9a
am: 3e9a4b096e

Change-Id: Ie0f12dcefbadfab262f0c824665b9282aa0217be
2019-03-19 15:31:29 -07:00
Daniel Norman
62f2c36d9a Merge "Adds optional --rebuild_recovery flag to merge_target_files."
am: fab3f29e5a

Change-Id: I834d2e7ed672dce20960dd5c97b57fe3dbdc3bb6
2019-03-19 14:52:17 -07:00
Daniel Norman
fab3f29e5a Merge "Adds optional --rebuild_recovery flag to merge_target_files." 2019-03-19 21:32:28 +00:00
Tao Bao
14b806debc Merge "Revert "releasetools: check_target_files_signatures.py checks APEXes."" am: a0debcb62f am: a08464f59d
am: b06dc4ea54

Change-Id: Iceb51beb117f391f4d5ba54756ffe2c36e52cd2a
2019-03-19 13:55:00 -07:00
Tao Bao
a08464f59d Merge "Revert "releasetools: check_target_files_signatures.py checks APEXes.""
am: a0debcb62f

Change-Id: Iffe70f3385d53e15e7fee3fdfa56dc5fb33aa4e6
2019-03-19 13:40:35 -07:00
Tao Bao
e134399cab releasetools: Allow skipping PRESIGNED APEXes.
This CL adds support that allows treating an APEX as pre-signed. We can
skip signing an APEX with `-e <apex-name>=` and
`--extra_apex_payload_key <apex-name>=`. Note that the payload_key and
container_key must be in consistent state - either they're both
PRESIGNED or none of them is. CheckApkAndApexKeysAvailable() has been
updated to perform the sanity check.

Bug: 123716522
Test: Run sign_target_files_apks.py with the above flags.
Test: python -m unittest test_sign_target_files_apks
Change-Id: Id1e2f3f2facd4a97a385983cc9b78c028f7e7e73
2019-03-19 12:25:02 -07:00
Daniel Norman
e596452f03 Validates the config lists used by the script.
This validation is to help ensure that any usage of custom merge config
files does not accidentally exclude any item that has been added to the
default config lists.

Bug: 124197349
Test: Run merge_target_files with custom merge config files.
Change-Id: I34c51cb75212368146a2944d37621f311060d24d
2019-03-19 17:47:49 +00:00
Tao Bao
5516d37f41 Revert "releasetools: check_target_files_signatures.py checks APEXes."
This reverts commit d8469727bc. The script
is broken on target_files.zip that don't contain any APEX.

Bug: 128848294
Test: Run check_target_files_signatures.py on target_files.zip w/o APEX.
2019-03-19 09:30:08 -07:00
Tao Bao
a9dc04e78e Merge "releasetools: Kill the use of os.getenv('AVBTOOL')." am: e3f9dc6113 am: 26541cd427
am: 52c4db2511

Change-Id: I382906c7b245f34a59ef5d59c6797256b2e485b2
2019-03-19 09:13:30 -07:00
Tao Bao
26541cd427 Merge "releasetools: Kill the use of os.getenv('AVBTOOL')."
am: e3f9dc6113

Change-Id: I31c769d45d049a0867aed3db84790fb8b2db1c6d
2019-03-19 09:05:09 -07:00
Tao Bao
e3f9dc6113 Merge "releasetools: Kill the use of os.getenv('AVBTOOL')." 2019-03-19 15:53:26 +00:00
Tao Bao
f88e0ce01d releasetools: Kill the use of os.getenv('AVBTOOL').
OTA tools should pick up the avbtool, as listed in dict['avb_avbtool'],
from the current PATH (plus bin/ under the dir specified via `--path`),
the same way as handling all other host tools.

Test: `m dist`
Change-Id: I3eb4d2c61979b03d9c23b2403d9a38cf052d87ea
2019-03-18 21:01:43 -07:00
Yifan Hong
45a05bc545 Merge "Add supernod build target." am: 691defc4bd am: 5aec484888
am: 2725896bce

Change-Id: I5b83bc2af99d65c43660b3b764c3f7b5f2a0471a
2019-03-18 18:01:46 -07:00
Yifan Hong
5aec484888 Merge "Add supernod build target."
am: 691defc4bd

Change-Id: I5716c6a8028bb6c7beaf2ecbdd6ea28e44ad07ec
2019-03-18 17:06:47 -07:00
Yifan Hong
691defc4bd Merge "Add supernod build target." 2019-03-18 23:46:05 +00:00
Tao Bao
7f0951757e Merge "releasetools: Fix an issue when using APEX container key mapping." am: 7cd870ed60 am: f9a68d8167
am: 0891df1563

Change-Id: Id1edceb9e3666d325af602aad20206cf1937596f
2019-03-18 14:52:13 -07:00
Tao Bao
f9a68d8167 Merge "releasetools: Fix an issue when using APEX container key mapping."
am: 7cd870ed60

Change-Id: I3124312baf6f3e40a00f8c2bb079fa3155197828
2019-03-18 14:34:51 -07:00
Daniel Norman
a4911da57d Adds optional --rebuild_recovery flag to merge_target_files.
Also makes AddSystem check that an output_zip exists before attempting
to add the recovery patch to the output zip.

Bug: 128838154
Test: Running merge_target_files with --rebuild_recovery and verifying
it passes --rebuild_recovery to add_img_to_target_files.
Change-Id: I19347b2c0dabf29b7196045b18551b5d0687df2c
2019-03-18 12:29:31 -07:00
Tao Bao
fa9de0aae8 releasetools: Fix an issue when using APEX container key mapping.
The keys_info in the touched code is a tuple, which is immutable.

Bug: 123716522
Test: Run sign_target_files_apks.py with '-e foo.apex=bar' that replaces
      the APEX container key.

Change-Id: I4e57e46c93a56b7f6646764d021ebb42c19bf7f5
2019-03-18 10:26:09 -07:00
Anton Hansson
08231e1786 Refactor generate_enforce_rro
A few tweaks to make it easier to extend to generating RROs in
multiple partitions:
- deduce the module name inside generate_enforce_rro
- dedup rule definition
- tweak framework-res check to use source module name instead

Bug: 127758779
Test: verify noop on presubmit targets
Change-Id: I2f0d6270b21f5427c372c04a5c6e7fb712e72a9a
2019-03-18 14:21:09 +00:00
Tao Bao
5208545b40 releasetools: Support signing APEXes.
Bug: 123716522
Test: Run sign_target_files_apks.py to sign a target_files with APEXes.
Test: Run check_target_files_signatures.py on signed artifact.
Test: python -m unittest test_sign_target_files_apks
Change-Id: I3fa13e3d9461cf5e0838e0572d436e218164fe41
(cherry picked from commit aa7e993a22)
2019-03-17 14:00:28 -07:00
Tao Bao
315f19d548 releasetools: Add apex_utils.py.
The added `testdata/testkey_with_passwd.key` is generated with:

$ openssl pkcs8 -inform DER -in testdata/testkey_with_passwd.pk8 \
    -out testdata/testkey_with_passwd.key -passin pass:foo

Bug: 123716522
Test: python -m unittest test_apex_utils
Change-Id: I7b7f00178ecab35c3e41ecf4d10295fe9bf480ab
(cherry picked from commit 1cd59f2a26)
2019-03-17 14:00:14 -07:00
Tao Bao
9d9de37999 Revert "Add ability to sign bundled APEX into device signing process."
This reverts commit b3517c0d18.

Bug: 123716522
Test: N/A (done with the re-landing CLs)
Change-Id: I6e6232826b7b1eadce435ef88afdd51ade49fcf0
2019-03-17 13:59:48 -07:00
Tao Bao
35a7add43f releasetools: check_target_files_signatures.py checks APEXes.
Only the container certs will be checked and reported. For the payload
within an APEX, we can't easily extract the cert info.

It needs to go along a longer path, if ever needed, by:
 - extracting public keys from all the available certs;
 - using each of them to verify against an APEX payload to find a match
   (`avbtool verify_image --image payload --key public_key`).

Bug: 123716522
Test: Run check_target_files_signatures.py on target_files with APEXes.
Change-Id: I2ef318e05433d2d65ab84e2dff9e01fb6ee3373d
(cherry picked from commit d8469727bc)
2019-03-17 13:16:39 -07:00
Baligh Uddin
eb5af6fa98 Merge changes I3fa13e3d,I7b7f0017,I2ef318e0
am: 0573298a18

Change-Id: I89a00b65ec6c9c44ccd0d43eda6c9f8049749f04
2019-03-17 11:54:41 -07:00
Tao Bao
aa7e993a22 releasetools: Support signing APEXes.
Bug: 123716522
Test: Run sign_target_files_apks.py to sign a target_files with APEXes.
Test: Run check_target_files_signatures.py on signed artifact.
Test: python -m unittest test_sign_target_files_apks
Change-Id: I3fa13e3d9461cf5e0838e0572d436e218164fe41
2019-03-15 22:15:51 -07:00
Tao Bao
1cd59f2a26 releasetools: Add apex_utils.py.
The added `testdata/testkey_with_passwd.key` is generated with:

$ openssl pkcs8 -inform DER -in testdata/testkey_with_passwd.pk8 \
    -out testdata/testkey_with_passwd.key -passin pass:foo

Bug: 123716522
Test: python -m unittest test_apex_utils
Change-Id: I7b7f00178ecab35c3e41ecf4d10295fe9bf480ab
2019-03-15 22:08:42 -07:00
Tao Bao
d8469727bc releasetools: check_target_files_signatures.py checks APEXes.
Only the container certs will be checked and reported. For the payload
within an APEX, we can't easily extract the cert info.

It needs to go along a longer path, if ever needed, by:
 - extracting public keys from all the available certs;
 - using each of them to verify against an APEX payload to find a match
   (`avbtool verify_image --image payload --key public_key`).

Bug: 123716522
Test: Run check_target_files_signatures.py on target_files with APEXes.
Change-Id: I2ef318e05433d2d65ab84e2dff9e01fb6ee3373d
2019-03-15 20:56:13 -07:00