Commit Graph

41548 Commits

Author SHA1 Message Date
Dan Willemsen 0991eed377 Merge "Replace $(shell find | sort) with $(sort $(shell find))"
am: 9f573a420e

Change-Id: I7edbea157d2333d167be82922756cca11ddbae18
2018-02-06 22:39:57 +00:00
Treehugger Robot c82c0a81ec Merge "Support LOCAL_SDK_VERSION := core_current" 2018-02-06 22:37:16 +00:00
Simran Basi 893098b06c LOCAL_HOST_REQUIRED_MODULES support
Allows target modules to directly request host modules they
require to be built and installed as well.

Bug: 72761631
Test: Added LOCAL_HOST_REQUIRED_MODULES to a target apk test and
      the host module was built.

Change-Id: I5aca11b3ba8b54676f068d337f1c9ba0e0b01997
2018-02-06 14:18:45 -08:00
Treehugger Robot 9f573a420e Merge "Replace $(shell find | sort) with $(sort $(shell find))" 2018-02-06 21:21:08 +00:00
Stephen Hines 9144cd3fe6 Merge "Switch to clang-4579689."
am: f733f896d3

Change-Id: I33624821fa84d1b0411901bc717c39087c40ab7e
2018-02-06 18:53:22 +00:00
Stephen Hines f733f896d3 Merge "Switch to clang-4579689." 2018-02-06 18:35:41 +00:00
Tao Bao 1f49ccfd61 Merge "releasetools: Capture stderr output when calling delta_generator."
am: 26fc64da06

Change-Id: Ie31820c3fc46aa3dba3053d330f885fd7d9953aa
2018-02-06 17:26:53 +00:00
Tao Bao 26fc64da06 Merge "releasetools: Capture stderr output when calling delta_generator." 2018-02-06 17:20:53 +00:00
James Lemieux 815658efe9 Merge "Clear local robolectric testing variables"
am: 08ba09ed7f

Change-Id: I3ea21d918c8622afa7ef0f22fa3caaa9743d6c08
2018-02-06 17:01:23 +00:00
Treehugger Robot 08ba09ed7f Merge "Clear local robolectric testing variables" 2018-02-06 16:55:09 +00:00
hansson bd5bb92f81 Merge "Add a base makefile for 64 bit only builds."
am: ee00360292

Change-Id: If7498714a3c669278224fef295c99c6e0ef37d32
2018-02-06 10:15:39 +00:00
hansson ee00360292 Merge "Add a base makefile for 64 bit only builds." 2018-02-06 10:08:48 +00:00
Tao Bao 3f15ada51b releasetools: Capture stderr output when calling delta_generator.
Prior to this CL, the call to delta_generator in
check_ota_package_signature.VerifyAbOtaPayload() didn't redirect stderr.
The logs (mostly INFO) on successful verification added noise to the
normal output, which also upset the unittest result parser.

This CL captures stderr outputs from delta_generator, and will only dump
them on error.

Bug: 72884343
Test: `python -m unittest -v test_ota_from_target_files > /dev/null`
      gives clean output.
Test: Inject error into delta_generator. The call to
      check_ota_package_signature correctly dumps both of stdout and
      stderr outputs.
Change-Id: I014a4b21bf758dcf0a4b9963259d6019851935ee
2018-02-05 23:39:23 -08:00
Dan Willemsen be0b6cee4f Replace $(shell find | sort) with $(sort $(shell find))
Kati's find emulator doesn't understand "| sort", so use use the make
function instead so that we can emulate the find commands.

 before: *kati*: shell time (regen): 1.316989 / 187
 after:  *kati*: shell time (regen): 1.249748 / 184

The time has a lot of variance, the important change is the reduction in
number of shell commands. Kati has other issues with some of these (it
doesn't support find's implicit -a), which is why it only goes down by
3. I'll be fixing Kati separately to handle those cases.

Test: diff out/build-aosp_taimen.ninja before&after
Change-Id: I5c8c2993f01a8a6af84963e903a8a0c186a61e82
2018-02-05 23:07:58 -08:00
Yifan Hong 9bf93017d4 core/config.mk: Add PLATFORM_SEPOLICY_COMPAT_VERSIONS
This is a list of sepolicy versions that the framework supports.

Test: build framework compatibility matrix
Test: boots

Bug: 67920434
Change-Id: I82365742172b653eadb7b5315398e06cace4e000
2018-02-05 15:55:11 -08:00
Yifan Hong 8f4547cde9 Move PLATFORM_SEPOLICY_VERSION from system/sepolicy/Android.mk
Test: builds
Bug: 67920434
Change-Id: I3b29fd188e755039a1fcf4814c578a2220567bf1
2018-02-05 15:55:11 -08:00
James Lemieux bb426739ce Clear local robolectric testing variables
This prevents them from mistakenly bleeding between test targets.

Bug: 72384841
Test: make Run_TeleService_robotests
Change-Id: Ie2c047be1450420f8e27b8b45e9416e96b477b45
2018-02-05 15:39:18 -08:00
Yifan Hong 6e79817411 Merge "Move system manifest / device matrix build rules"
am: fe34c5b52c

Change-Id: If9873f37745d4f1ea4c567d9774c64b5e37a4dcd
2018-02-05 23:37:16 +00:00
Tao Bao 8a05f343c2 Merge "releasetools: Fix an issue with pubkey extraction."
am: ca2ffed06c

Change-Id: Ibd9014ec04e26e018fcb4602a42b204941af13b6
2018-02-05 23:35:38 +00:00
Treehugger Robot fe34c5b52c Merge "Move system manifest / device matrix build rules" 2018-02-05 22:27:18 +00:00
Tao Bao f7140c0f8c releasetools: Support packaging secondary payload.
By default, an A/B OTA package doesn't contain the images for the
secondary slot (e.g. system_other.img). Specifying
"--include_secondary" that's introduced in this CL allows generating
a separate payload that will install secondary slot images. Both
payloads will be added to the generated A/B OTA package.

An example A/B OTA package with secondary payload
  |
  +-- payload.bin
  |
  +-- payload_properties.txt
  |
  +-- secondary/payload.bin
  |
  +-- secondary/payload_properties.txt
  |
  +-- ...

Such a package needs to be applied in a two-stage manner. During the
first stage, the updater applies the primary payload only. Upon
finishing, it reboots the device into the newly updated slot. It then
continues to install the secondary payload to the inactive slot, but
without switching the active slot at the end (needs the matching support
in update_engine, i.e. SWITCH_SLOT_ON_REBOOT flag).

Due to the special install procedure, the secondary payload will be
always generated as a full payload.

Bug: 35724498
Test: Generate full and incremental OTAs with --include_secondary. Check
      the generated OTAs.
Test: python -m unittest test_ota_from_target_files
Change-Id: I975e826bec492e86eb400f99de0c355a32420127
2018-02-05 13:28:52 -08:00
Treehugger Robot ca2ffed06c Merge "releasetools: Fix an issue with pubkey extraction." 2018-02-05 21:25:47 +00:00
Carmen Jackson 5de6e57714 Merge "Add Traceur to user builds."
am: a3a211dafe

Change-Id: I416a881dcff5ad59d2c301b82261f71b55629f2e
2018-02-05 20:40:53 +00:00
Treehugger Robot a3a211dafe Merge "Add Traceur to user builds." 2018-02-05 20:31:23 +00:00
Anton Hansson 1ac8a6df9a Add a base makefile for 64 bit only builds.
This makefile specifies a configuration that only starts a 64 bit
zygote (as opposed to both 64/32, as standard 64 bit builds do).
It should be inherited by products that only supports 64 bit apps.

Bug: 72810053
Test: Manual, using product in https://android-review.googlesource.com/608276
Change-Id: Ib88eccf8d4c575bfd93d6edb130348aeca4ae3f8
2018-02-05 18:24:16 +00:00
Bowgo Tsai 7d4299612b Merge "Renames sepolicy files from nonplat_* to vendor_*"
am: 8b35ac67b2

Change-Id: Ib517d7fa5843efab43bac8fd66a2db35efaa58da
2018-02-05 17:43:47 +00:00
Treehugger Robot 8b35ac67b2 Merge "Renames sepolicy files from nonplat_* to vendor_*" 2018-02-05 17:31:45 +00:00
Tao Bao d00a176e22 Merge "releasetools: Add sdk and security patch level info to metadata."
am: 993e1d2634

Change-Id: Ieecf7ab13bad1e9022861a6e973db81139101413
2018-02-05 17:28:19 +00:00
Treehugger Robot 993e1d2634 Merge "releasetools: Add sdk and security patch level info to metadata." 2018-02-05 17:25:16 +00:00
Bowgo Tsai 09f88a6b88 Renames sepolicy files from nonplat_* to vendor_*
Bug: 64240127
Test: boot bullhead/taimen
2018-02-05 18:22:45 +08:00
Tao Bao 04e1f012dd releasetools: Fix an issue with pubkey extraction.
When calling 'openssl x509 -pubkey' to extract the public key from a
certificate, openssl 1.0 and 1.1 handle the '-out' parameter
differently. openssl 1.0 doesn't write the output into the specified
filename, which leads to the payload verification failure in
check_ota_package_signature.VerifyAbOtaPayload(). This CL addresses
the issue by always collecting the output from stdout instead.

It also refactors the two copies into common.ExtractPublicKey(), and
adds unittest. get_testdata_dir() is moved into test_utils.py that holds
common utils for running the unittests.

Bug: 72884343
Test: python -m unittest test_common
Test: python -m unittest test_ota_from_target_files
Test: Run sign_target_files_apks with '--replace_ota_keys' on marlin
      target_files zip. Check the payload pubkey replacement.
Test: Trigger the tests with forrest, and tests no longer fail on
      machines with openssl 1.0.1.
Change-Id: Ib0389b360f064053e9aa7cc0546d718e7b23003b
2018-02-04 13:59:52 -08:00
Bowgo Tsai 6703b82a0c Merge "Revert "Renames sepolicy files from nonplat_* to vendor_*""
am: 8a6ab0f240

Change-Id: I004f9034eddfe208b2c613038b9599d9b2dbe130
2018-02-03 10:06:10 +00:00
Treehugger Robot 8a6ab0f240 Merge "Revert "Renames sepolicy files from nonplat_* to vendor_*"" 2018-02-03 10:00:53 +00:00
Tao Bao dcb307c4bd Merge "releasetools: Detect incomplete block ranges."
am: 93db955964

Change-Id: Ib9d0d08af84dce7fcd9f06db60bcade38baca908
2018-02-03 04:38:07 +00:00
Tao Bao 93db955964 Merge "releasetools: Detect incomplete block ranges." 2018-02-03 04:32:13 +00:00
Tao Bao e5cacd7653 Merge "releasetools: Add Payload class."
am: 80ac71bada

Change-Id: Iaa68c95cf0ccbfe7895881a16a9e0c2bc759929c
2018-02-03 02:51:57 +00:00
Treehugger Robot 80ac71bada Merge "releasetools: Add Payload class." 2018-02-03 02:36:56 +00:00
Tao Bao c7b403a2e8 releasetools: Add Payload class.
This breaks down the current WriteABOTAPackageWithBrilloScript() into
smaller and testable units, which also prepares for the work in
b/35724498.

Bug: 35724498
Test: python -m unittest test_ota_from_target_files
Test: Get identical A/B OTA packages w/ and w/o the CL.
Change-Id: I2ea45ce98e2d2baa58e94fb829b7242f6fe685a7
Merged-In: I2ea45ce98e2d2baa58e94fb829b7242f6fe685a7
(cherry picked from commit 036d721812)
2018-02-02 16:18:07 -08:00
Carmen Jackson 343428120a Add Traceur to user builds.
This adds the Traceur app to all builds on phones and tablets.
Previously, it was included on userdebug builds on specific devices only.

Bug: 64762598
Test: Flashed a user build and a userdebug build and saw Traceur on both
builds.

Change-Id: I9bf7d68c737845a519f57f8f60ee9064bf33a2f5
2018-02-02 11:19:49 -08:00
Tao Bao 6c83183400 Merge "releasetools: Clean up two no-op lines that set 'ota-wipe'."
am: 76c6906bf2

Change-Id: I78ee55d293b05402fc6ac7b5297a23ae16ff8081
2018-02-02 17:53:36 +00:00
Treehugger Robot 76c6906bf2 Merge "releasetools: Clean up two no-op lines that set 'ota-wipe'." 2018-02-02 17:28:35 +00:00
Tao Bao 41a3a414f0 Merge "releasetools: Make validate_target_files.py pylint clean."
am: a4c7d59afc

Change-Id: I3b9e9c15493bcf5b7d88de7161bcc9405d31ea4d
2018-02-02 03:21:03 +00:00
Tao Bao 24604cc5b9 releasetools: Clean up two no-op lines that set 'ota-wipe'.
The same thing has been set in GetPackageMetadata(), so they are no-op.

Also replace an occurrence of 'OPTIONS.source_info_dict' with
source_info, which has been missed from previous clean-up CLs.

Test: Generate an A/B OTA package, and an incremental BBOTA with
      --wipe_user_data. Check the metadata.
Test: Generate a two-step incremental BBOTA successfully.
Change-Id: I4bb491cac9064d93fb86d12e617c8f38f040e01e
2018-02-01 16:30:42 -08:00
Bowgo Tsai ec7dbbb537 Revert "Renames sepolicy files from nonplat_* to vendor_*"
This reverts commit 8b5f514038.
Fix angler/bullhead boot failure.

Bug: 72787689
Test: build
2018-02-02 07:58:45 +08:00
Tao Bao 35dc255180 releasetools: Add sdk and security patch level info to metadata.
The info comes from the build.prop file of the target build (thus no
backward compatibility concerns). OTA server and client can optionally
use these info to understand the expected behavior of an OTA package.

Bug: 72751683
Test: python -m unittest test_ota_from_target_files
Test: `m dist`, then check the metadata in the generated OTA package.
Change-Id: I5935f67684d2486bb5f00d67ce4bc756589a56ed
2018-02-01 15:58:20 -08:00
Yifan Hong 87328762e4 Move system manifest / device matrix build rules
Test: build these files
Change-Id: I6467f4b7ce421358c30ad7a4c72a77dcc2ed3f88
2018-02-01 15:36:40 -08:00
Treehugger Robot a4c7d59afc Merge "releasetools: Make validate_target_files.py pylint clean." 2018-02-01 23:23:46 +00:00
Tao Bao c765cca38b releasetools: Detect incomplete block ranges.
This CL detects incomplete block ranges (e.g. due to the holes in
mke2fs created images). Such block ranges will be tagged, so we won't
attempt to imgdiff those files. Note that the change to blockimgdiff.py,
which uses the tag info, will come in a separate CL.

An 'extra' attribute is added to RangeSet class, which defaults to an
empty dict. An 'incomplete' tag will be added into the dict by the
caller of the class. Not adding this tag as an immediate attribute,
because it is not a property regarding the ranges being represented, but
rather some storage space for the caller.

This CL also refactors GetSparseImage and RoundUpTo4K into common.py, so
the same code can be called from both of ota_from_target_files.py and
validate_target_files.py. Not able to add unittests for
GetSparseImage(), as SparseImage requires data in specific format.

Bug: 68016761
Test: Run validate_target_files.py on target-files.zip. It skips
      validating files with missing holes as before.
Test: Run ota_from_target_files.py on angler target-files.zip. It gives
      identical packages w/ and w/o the CL.
Test: pylint on changed files. There're warnings with common.py, but
      unrelated to this change.
Change-Id: I126ccfea13c0d5ebcc8c1b4ff1a4f9200e97423a
2018-02-01 12:35:48 -08:00
Tao Bao bb20e8c5f2 releasetools: Make validate_target_files.py pylint clean.
C: 73, 0: Wrong hanging indentation (add 4 spaces).
      file_name, actual_sha1, expected_sha1)
      ^   | (bad-continuation)
C:171, 0: Wrong continued indentation (add 20 spaces).
        'SYSTEM/etc/recovery.img', expected_recovery_sha1)
        ^                   | (bad-continuation)
C:185, 0: Wrong continued indentation (add 20 spaces).
        file_path='IMAGES/boot.img', expected_sha1=boot_info[3])
        ^                   | (bad-continuation)
C:191, 0: Wrong continued indentation (add 20 spaces).
        file_path='IMAGES/recovery.img',
        ^                   | (bad-continuation)
C:192, 0: Wrong continued indentation (add 20 spaces).
        expected_sha1=expected_recovery_sha1)
        ^                   | (bad-continuation)
W: 67,15: Use % formatting in logging functions and pass the % parameters as arguments (logging-format-interpolation)
W:150,17: Use % formatting in logging functions and pass the % parameters as arguments (logging-format-interpolation)
W:153,15: Use % formatting in logging functions and pass the % parameters as arguments (logging-format-interpolation)
W:194,15: Use % formatting in logging functions and pass the % parameters as arguments (logging-format-interpolation)
C: 27, 0: standard import "import logging" comes before "import common" (wrong-import-order)
C: 28, 0: standard import "import os.path" comes before "import common" (wrong-import-order)
C: 29, 0: standard import "import re" comes before "import common" (wrong-import-order)
C: 31, 0: standard import "import sys" comes before "import common" (wrong-import-order)

Test: pylint --rcfile=pylintrc validate_target_files.py
Test: Run validate_target_files.py with a target-files.zip.
Change-Id: Ie64acdb4cee4326938c4ad5a34b575d7b82478c0
2018-02-01 12:03:17 -08:00
Yi Kong 421733f693 Switch to clang-4579689.
Bug: 68397894
Test: http://go/clang-4523590-testing
Change-Id: Id3fbac182869e92ab9b7d27d63d9f28c565c7b08
2018-02-01 10:24:04 -08:00