Commit Graph

41063 Commits

Author SHA1 Message Date
Tao Bao 0c28d2d02d releasetools: Clean up sign_target_files_apks.py.
Mostly cosmetic changes, such as replacing print statement with print
function. Also change 'import cStringIO' to optionally look for the one
in io module, to allow Python 2/3 compatibility.

Test: pylint --rcfile=pylintrc sign_target_files_apks.py
Test: Run sign_target_files_apks.py on marlin target_files.zip.
Change-Id: I4dc98b01da6f89e624114bbca5522f659901c1f2
2018-01-02 09:57:29 -08:00
Tao Bao 186ec99eb9 releasetools: Fix a bug in blockimgdiff.HeapItem.
HeapItem defines __bool__(), which contains a logical error that should
return the opposite value.

Note that the bug only manifests while using Python 3, which calls
__bool__(). With Python 2, `if x:` or bool(x) actually calls
x.__nonzero__() or x.__len__(). If a class defines neither __len__() nor
__nonzero__(), as the case in HeapItem, it always returns True.

Test: python -m unittest test_blockimgdiff
Test: python3 -m unittest test_blockimgdiff
Test: Generate an incremental non-A/B OTA package successfully.
Change-Id: Ibe8430e0b495a7d2f430cfffb716d2536ffb53d2
2018-01-02 09:54:32 -08:00
Treehugger Robot a52691b12a Merge "Force test config to be updated when auto_gen_test_config.py is changed" 2018-01-02 06:27:35 +00:00
Dan Shi 2b334f5c92 Force test config to be updated when auto_gen_test_config.py is changed
Bug: 70981774,69929803
Test: Modify tools/auto_gen_test_config.py, confirm the test config file
is updated.

Change-Id: I55bd07c8bdc6e26f9c8ad6df733d2c5da09d0ceb
2018-01-01 20:26:27 -08:00
Colin Cross 96873482b0 Move jacoco before desugar
R8 will replace desugar+proguard+dx, which will mean jacoco has to
run before desugar.  In preparation, move jacoco before desugar now.

Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false tests
Change-Id: I0627a79ba2f0b26a113d5d8bcc5cb1fda08295a1
2017-12-28 09:39:15 -08:00
Colin Cross 9c2b798143 Merge changes I84a59a8c,Id7a92fb2
* changes:
  Remove obsolete proguard options
  Export proguard flags from static android libraries and aar prebuilts
2017-12-28 17:22:51 +00:00
Colin Cross e4936e1c2d Remove obsolete proguard options
LOCAL_PROGUARD_ENABLED := shrinktests is never set.
proguard_tests.flags is entirely comments.
proguard.emma.flags only references emma classes, but we use
jacoco now.

Test: m checkbuild
Change-Id: I84a59a8c1b66f75d7ccbaa7da8e937430b4490c8
2017-12-28 17:22:30 +00:00
Dan Willemsen 1d64623105 Export proguard flags from static android libraries and aar prebuilts
Test: m Contacts, classes-proguard.jar has same contents
Test: rm -rf out; tapas Contacts; m
Change-Id: Id7a92fb2c44913bccbfcbeae127355b4de588e4d
Merged-In: Id7a92fb2c44913bccbfcbeae127355b4de588e4d
(cherry picked from commit 1417c177ac)
2017-12-28 17:22:19 +00:00
Dan Willemsen 5b82359f85 Merge "Switch some deprecated variables to obsolete" 2017-12-28 04:28:48 +00:00
Dan Willemsen 74afb1d993 Switch some deprecated variables to obsolete
These are no longer used.

Test: check build_test logs for "has been deprecated"
Change-Id: Icb13891863d0b9b6a00e18d0f8f88e6306a24f8c
2017-12-27 16:59:38 -08:00
Bo Hu 59e41c11d5 Merge "emulator: add check_emu_boot.mk, again" 2017-12-27 22:22:10 +00:00
Treehugger Robot 53a3f70efe Merge "Remove zlib_fingerprint support." 2017-12-27 20:49:24 +00:00
SzuWei Lin 83890eb262 Correct some GSI settings to board makefile
Some setting currently in target/product/treble_common.mk, but
they should be board config variables. So, move them to
target/board/treble_common.mk.

Bug: 70951849
Test: Build pass and check on a Pixel device with GSI
Change-Id: I511fbc481583555182dab76503e67c5f56efa8eb
Merged-In: I511fbc481583555182dab76503e67c5f56efa8eb
2017-12-26 03:36:33 +00:00
Treehugger Robot 13349ed3c2 Merge "Add check to ensure PLATFORM_VNDK_VERSION is set" 2017-12-26 01:51:20 +00:00
Treehugger Robot 15820578b2 Merge "Allow devices to extend the system manifest." 2017-12-23 01:17:24 +00:00
Treehugger Robot a5af4d920f Merge "Use current VNDK directories if version is not set on GSI" 2017-12-23 00:35:23 +00:00
Treehugger Robot a6c3cece9e Merge "Test config should use manifest package attribute" 2017-12-22 23:31:42 +00:00
Justin Yun c104764f73 Use current VNDK directories if version is not set on GSI
Only for GSI, if "ro.vndk.version" property is not defined, the
vendor modules will use current version of VNDK libs.

Bug: 70704112
Test: On Android-P sailfish device, install GSI and check boot
Change-Id: Ib8eb28604ab3e33474179dffbc07358921e7439c
2017-12-23 08:16:59 +09:00
Steven Moreland b14b530f82 Allow devices to extend the system manifest.
Introduces DEVICE_FRAMEWORK_MANIFEST_FILE, a list
of files which are added to system/manifest.xml.
This is required for devices to properly display
what hals they implement and also therefore for
them to pass vts_treble_vintf_test since it
now tests manifests based on hal origin.

Notice, this is named singularly to match
DEVICE_MANIFEST_FILE which is also a list of files.
They may be better both named "FILES", but for
consistency and legacy reasons, they can be thought
of as "everything that composes the X manifest
file".

Fixes: 70042049
Test: add system manifest extension which needs it
  and it no longer fails vts_treble_vintf_test for
  hals being served from the wrong partitions.

Change-Id: I1f59d5c3cadb7a7d4576b73196ca7b41103a49c5
2017-12-22 14:02:11 -08:00
Dan Shi 9a50168c85 Test config should use manifest package attribute
Bug: 70981774,69929803
Test: m -j SetupWizardActivityTests
Change-Id: I6d50744504eac71d6ecae5db9b14e6d30eb923fe
2017-12-22 13:34:50 -08:00
bohu 93ac3b81eb emulator: add check_emu_boot.mk, again
"make check_emu_boot" will boot up emulator
and check whether it boots up or timed out.
On boot success, it will emit a file
BOOT_SUCCESS.txt in dist_dir;
On timed out, it will emit a file
BOOT_FAIL.txt in dist_dir

original cl breaks some build, and this
fixes it by incorporating the following cl

https://android-review.googlesource.com/c/platform/build/+/576282

Test: choosecombo 1 aosp_arm64_ab userdebug
      m -j checkbuild tests

Test: make check_emu_boot
Change-Id: I09cba4f8fde672f9ea685dee1c0c108f2c457e2a
2017-12-22 17:51:38 +00:00
Treehugger Robot 1d87b803f7 Merge "Revert "emulator: add check_emu_boot.mk"" 2017-12-22 15:10:16 +00:00
Tobias Thierer e01a5759b7 Revert "emulator: add check_emu_boot.mk"
This reverts commit bba0ef24c2.

Reason for revert: Broke aosp_arm64_ab-userdebug build on internal master.

Change-Id: I04ca552174bc2731cb69ee8485d50f4c190c0d27
2017-12-22 13:31:41 +00:00
Treehugger Robot d84332eed6 Merge "Remove --no-locals -> --release translation" 2017-12-22 01:53:24 +00:00
Jae Shin 0b1792e29b Add check to ensure PLATFORM_VNDK_VERSION is set
Bug: 70918357
Test: m -j vndk dist
Change-Id: Ia4ae94db9feccb7c40edfe90c14eb552b69ef655
2017-12-22 10:46:51 +09:00
Treehugger Robot 9b04b2984c Merge "emulator: add check_emu_boot.mk" 2017-12-22 01:34:41 +00:00
Tao Bao be8ea6ec11 Merge "releasetools: Remove the dead code for blockimgdiff_version <= 2." 2017-12-21 22:20:32 +00:00
Colin Cross f8b06a4e61 Update jacoco command line flags for latest version
jacoco_cli wants --quiet and --dest instead of -quiet and -dest.

Bug: 69669951
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false tests
Change-Id: I126a702fbb1538ba5f99a7abf70c1f025160db21
2017-12-21 14:09:51 -08:00
Dan Shi 3c28ff7bff Merge "Auto generate test config files" 2017-12-21 21:53:12 +00:00
Colin Cross aca57b6c89 Remove --no-locals -> --release translation
--no-locals is never used any more, remove the translation.

Bug: 70886092
Test: m checkbuild
Change-Id: I5b0a512601b417c5a10001feed1fd9b8de8cb983
2017-12-21 13:00:51 -08:00
Treehugger Robot 5ded399588 Merge changes I63eace8f,I103cbe58
* changes:
  Remove obsolete leaf names
  Remove obsolete dx --no-locals when coverage is enabled
2017-12-21 20:49:03 +00:00
Tao Bao 0582cb639f releasetools: Remove the dead code for blockimgdiff_version <= 2.
The code is on infeasible path since we already have assertions in
common.BlockDifference().

Also remove the dead code that checks for OPTIONS.info_dict, as we
already set that in ota_from_target_files.main(), for both of A/B and
non-A/B.

Test: Generate incremental OTAs w/ and w/o the CL, and get identical
      packages.
Change-Id: Ifb8fc101e78f5ce58c60c8e49028b66ce0d20246
2017-12-21 11:53:27 -08:00
Treehugger Robot 7889375102 Merge "releasetools: Fix the bug that skips loading OEM dict." 2017-12-21 17:27:39 +00:00
Jiyong Park 4cdafdeb6b Don't install unnecessary VNDK libs
vndk_package is a phony module that includes ALL VNDK libs found in the
source code. As a result, VNDK libs that were actually not needed for
the device have been installed consuming storage. For example,
/system/lib/vndk/android.hardware.automotive*.so files were installed
even though walleye/taimen do not have automotive HALs.

VNDK libs are now installed by their link time dependencies (i.e. if a
vendor module uses libcutils, then /system/lib[64]/vndk-sp/libcutils.so
is automatically installed.).

By the way, there is a few number of VNDK libs that do not have any
link time dependency from vendor modules. They are always opened via
dlopen. In such cases, the vndk modules are added to `required`
or `LOCAL_REQUIRED_MODULES` of the module that dlopens them. Or, they
are directly added to PRODUCT_PACKAGES of the base products so that they
are always installed.

Bug: 67002788
Test: walleye builds and boots to the UI
Test: basic functionalities work (sound, camera, camcorder, slow-mo,
youtube, wifi, bluetooth)

Change-Id: I0eb36701858cd456ccb69dd0cf0a1880773675c7
2017-12-22 00:32:50 +09:00
Tobias Thierer 1801a25d7c Merge "Pass OpenJDK 8's bootclasspath for host tools targeting <= 1.8." 2017-12-21 11:46:20 +00:00
Treehugger Robot 2993eec041 Merge "TARGET_COPY_OUT_[ODM|OEM] are exported to soong" 2017-12-21 09:02:20 +00:00
Alan Leung f0971be1b6 Merge "Add zip2zip as dependency of dexing step." 2017-12-21 08:00:06 +00:00
Tao Bao 2f5358d38b releasetools: Fix the bug that skips loading OEM dict.
The CL in [1] unintentionally breaks the OEM dict loading logic in the
incremental BBOTA path. We should always require and load the OEM
property dict if _either_ of the source and target builds uses OEM
properties. Otherwise with the current "and" operator, it skips loading
the OEM property dict and thus fails to generate an OTA package that has
OEM property changes (e.g. updating from build with fingerprint to
another one using thumbprint).

The CL in [1] actually makes the right change in the file-based OTA
path, but introduces the bug in the block-based OTA path.

This CL also cleans up the line that reads recovery_mount_options.

[1] commit 7f804ba71f ("releasetools:
allow for multiple OEM property values.").

Test: Genearte an OTA that has OEM property changes successfully.
Change-Id: Idce4ad59825d432618535ce09ab22bd7ddc524f2
2017-12-20 23:06:02 -08:00
bohu bba0ef24c2 emulator: add check_emu_boot.mk
"make check_emu_boot" will boot up emulator
and check whether it boots up or timed out.
On boot success, it will emit a file
BOOT_SUCCESS.txt in dist_dir;
On timed out, it will emit a file
BOOT_FAIL.txt in dist_dir.

Change-Id: I152228806175c116a5adceb8429b66cf829edd22
2017-12-20 21:24:02 -08:00
Alan Leung 5eb88c0112 Add zip2zip as dependency of dexing step.
Bug: 69329508
Test: m checkbuild
Change-Id: I85f4508b6b1fee357d296bda6f0b6ba02cba70b7
2017-12-20 20:03:58 -08:00
Jiyong Park 9848be3581 TARGET_COPY_OUT_[ODM|OEM] are exported to soong
The two make vars are exported to soong as OdmPath and OemPath.

Bug: 68187740
Test: out/soong/soong.variables has OdmPath and OemPath each of which
points to 'odm' and 'oem'.
Change-Id: Ia283e4eb4aacc61b5b3c46e9001ea924566ea898
2017-12-21 12:13:13 +09:00
Tobias Thierer 7e99d45ec2 Pass OpenJDK 8's bootclasspath for host tools targeting <= 1.8.
Host (as opposed to hostdex) tools compile and run against OpenJDK's
core libraries. Before this CL, the core libraries of the default
toolchain were always used, even when targeting an earlier language
version.

This meant that code that uses APIs from a later version of OpenJDK
than corresponded to LOCAL_JAVA_LANGUAGE_VERSION would compile, but
would fail to run under that earlier version of OpenJDK. It also
meant that calls to existing APIs might be reinterpreted; for
example, the return type of java.nio.ByteBuffer.clear() changed from
Buffer in OpenJDK 8 to ByteBuffer in OpenJDK 9. At compile time, this
was noted via the warning:
  bootstrap class path not set in conjunction with -source 1.8

After this CL, when targeting a language version <= 1.8 (which is
always the case when building with OpenJDK 8), some of OpenJDK 8's
core library/tools jars are now passed on the bootclasspath. The
decision to include the bootclasspath argument when building with
OpenJDK 8 was somewhat arbitrary, but has the advantage that we
discover any issues before we switch to OpenJDK 9.

Even when compiling with OpenJDK 9, use of OpenJDK 9 APIs will now
fail at compile time rather than at runtime; calls to existing APIs
will now be interpreted in OpenJDK 8 rather than 9 fashion. For
example, this means that dx and host-side CTS tests built with
OpenJDK 9 javac -target 1.8 will be runnable under OpenJDK 8.

Bug: 70521453
Bug: 70862583
Test: Checked that the bootclasspath argument was passed
      in the javac invocation targeting 1.8 during:
      make showcommands compatibility-common-util-hostsidelib
Test: make checkbuild

Change-Id: I9b6081edfdd2c3e9a450ae8a39c4e32c3d2cda92
2017-12-21 01:38:44 +00:00
Colin Cross a6e878219c Remove obsolete leaf names
classes-no-debug-var.jar is incorrect, jars in coverage builds
do have debug information.  Remove full_classes_compiled_jar_leaf
and hardcode classes-full-debug.jar.

After the previous patch, all dex files have debug information,
so remove the no-local and with-local directories and replace
them with dex/.

Remove the unnecessary jarjar_leaf.

Bug: 70886092
Test: m checkbuild
Change-Id: I63eace8f8cda5ad8bc0cbd11eefda73dd063ed76
2017-12-20 17:33:01 -08:00
Colin Cross ff812829b6 Remove obsolete dx --no-locals when coverage is enabled
We use jacoco for coverage now instead of emma, so the workaround
is no longer necessary.

Bug: 70886092
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false
Change-Id: I103cbe58590689640a0b1520d22b3d3b7cd2208d
2017-12-20 17:03:52 -08:00
Treehugger Robot 7f0e221942 Merge "Package NOTICE files and record LOCAL_PATHs" 2017-12-21 00:38:25 +00:00
Treehugger Robot 98acb09033 Merge "Do not enforce VNDK on GSI if VNDK version is not set" 2017-12-20 23:25:23 +00:00
Justin Yun fc951ff268 Do not enforce VNDK on GSI if VNDK version is not set
If ro.vndk.version is not defined, use the namespace configuration
file that does not enforce VNDK restriction.
This is only for GSI.

Bug: 70704112
Test: Flash sailfish with PI and test with PI GSI image
Change-Id: Ic2b41357905ef47a3483b2eff635e8ae239e28aa
2017-12-21 08:24:36 +09:00
Treehugger Robot 8950c2bb82 Merge "Set BOARD_VNDK_VERSION=current as a default value" 2017-12-20 23:16:11 +00:00
Justin Yun 571737e8fc Set BOARD_VNDK_VERSION=current as a default value
For Android P or later launching devices, set BOARD_VNDK_VERSION to
"current" as a default value if the value is not defined yet.
"PRODUCT_USE_VNDK_OVERRIDE=false" can disable this feature.

Bug: 70480159
Bug: 62019611
Test: Unset BOARD_VNDK_VERSION
      Set PRODUCT_SHIPPING_API_LEVEL "28"
      - Check if BOARD_VNDK_VERSION is set to "current"
      Set PRODUCT_USE_VNDK_OVERRIDE to "false"
      - Check if BOARD_VNDK_VERSION is not defined

Change-Id: I8d37579e8c4ca1788705cbc8a42e8812e2b93a22
2017-12-21 08:15:19 +09:00
Treehugger Robot 5281020692 Merge "Use PLATFORM_VERSION_CODENAME for VNDK version" 2017-12-20 23:14:23 +00:00