Commit Graph

38266 Commits

Author SHA1 Message Date
Jeff Gaston 2c0442238b Merge "Implement LOCAL_TARGET_REQUIRED_MODULES" 2017-08-31 20:14:01 +00:00
Nan Zhang 33dcd0c5eb Revert "Add Turbine as part of java build toolchain in Make."
This reverts commit 0739155c86.

Reason for revert: <sdk_google_aw_x86-sdk (linux) build 4310016 in git_master is broken>

Change-Id: I525d48557bd0425917e61a85f596663ccc63c887
2017-08-31 19:56:59 +00:00
Lev Rumyantsev be80acfd1a Move default native bridge value to build.prop
Before this change it was part of default.prop, which is applied
before init.rc is executed, so that scripts cannot override the property.

In contrast, build.prop is applied at "init-late" stage,
so that one has a chance to override the property in scripts using
"init" or "init-early" triggers.

(cherry-picked from 74b2da9db67f5da2195c9b07dab22c868934e396)

Test: fugu still works
Bug: 63133475
Merged-In: I0842abaaec1d353ebe4debda6dfe3e2c42146786
Change-Id: I0842abaaec1d353ebe4debda6dfe3e2c42146786
2017-08-31 12:13:37 -07:00
Nan Zhang 0b23748128 Merge "Add Turbine as part of java build toolchain in Make." 2017-08-31 18:01:43 +00:00
Treehugger Robot 6942dfb65e Merge "Build: Change SANITIZE_LITE install settings" 2017-08-31 17:16:26 +00:00
Andreas Gampe 4ed21d10e8 Build: Change SANITIZE_LITE install settings
Under SANITIZE_LITE, the default app_process is not instrumented.
Embedding sanitized libraries into APKs will lead to crashing apps.
So move second-stage APKs to /data/asan.

The tradeoff is that for now we won't run these sanitized binaries.
Adding support for that is future work.

Also do not do a rebuild of the boot image. This would invalidate
the first-stage results. Note that this is technically dangerous,
as stack overflow guard sizes will not be adapted for ASAN runs.
However, this is a general incompatibility.

Also do not rebuild system_other. Apps are not rebuilt, so it will
create an empty image.

(cherry picked from commit 481660ef34)

Bug: 36458146
Test: m && m SANITIZE_TARGET=address SANITIZE_LITE=true
Merged-In: I3898bc53cad264529f126e6bf0af9c6ca1736877
Change-Id: I3898bc53cad264529f126e6bf0af9c6ca1736877
2017-08-31 08:56:18 -07:00
Treehugger Robot 6803a3444a Merge "Copy adbd from system/bin to recovery/root/sbin" 2017-08-31 06:22:16 +00:00
Treehugger Robot b9710fb602 Merge "master is now P" 2017-08-31 01:14:38 +00:00
bohu dc745a9090 emulator: fix widevine drm vndbinder denial
[   86.252399] type=1400 audit(1503684692.153:25): avc: denied { read write } for pid=4160 comm="android.hardwar" name="vndbinder" dev="tmpfs" ino=5163 scontext=u:r:hal_drm_widevine:s0 tcontext=u:object_r:vndbinder_device:s0 tclass=chr_file permissive=0

BUG: 64726466

Test: build sdk_gphone_x86-user target, launch it
and the above denial should be fixed.

Change-Id: Ied1268878236c42fbb0751a0f33014b332d78c32
Merged-In: Ied1268878236c42fbb0751a0f33014b332d78c32
2017-08-30 17:13:55 -07:00
bohu 913a990249 emulator: fix selinux issues
with cas/camera/drm hals

BUG: 64726466

Test: build aosp_x86-eng, boot emulator
without camera/drm hals killed by
selinux avc denials; camera can take
pictures

Change-Id: I8a154fdb5d7aa7763aab2b912976eb9e1d329cdb
Merged-In: I8a154fdb5d7aa7763aab2b912976eb9e1d329cdb
2017-08-30 17:13:51 -07:00
bohu 7b5e1abacb emulator: squash misc modifications from oc-emu-dev
Change-Id: I7380292cd4dc851a987683bdf61d511dbf74aff6
Merged-In: I7380292cd4dc851a987683bdf61d511dbf74aff6
2017-08-30 17:13:47 -07:00
bohu b7e2fabe38 emualtor: keep libopenjdkjvmti*.so on sdk images
BUG: 38353037

Those libopenjdkjvmti*.so files are needed by profilers.
Those files are shipped on real devices as well.

Change-Id: Iac7dd2844b0f3ea5194dec8732fbaacf53c4bf4a
Merged-In: Iac7dd2844b0f3ea5194dec8732fbaacf53c4bf4a
2017-08-30 17:13:42 -07:00
bohu bc43c4ec29 emulator: move rild.libpath to vendor
BUG: 62137708
Test: buld sdk_gphone_x86-user, launch
emulator make sure radio works

Change-Id: I4ef1483a8d95a74b54deb6f0d4b2461c733c8140
Merged-In: I4ef1483a8d95a74b54deb6f0d4b2461c733c8140
2017-08-30 17:13:37 -07:00
bohu ac0273f162 sdk:enable emulator to launch in build environment
Recent changes in emulator requires advancedFeatures.ini,
encryptionkey.img and new kernels (such as 3.18) at OUT directory
so emulator can find them.

This CL set those up as part of the build process.

Change-Id: Ib3b7c4c48a22cecb44255e643402fd1c37797522
Merged-In: Ib3b7c4c48a22cecb44255e643402fd1c37797522
2017-08-30 17:13:32 -07:00
bohu e3f4e9f025 build-emulator: fully treblize emulator image
Install emulator specific binaries and libraries
to vendor partition; update selinux; add vndk.

BUG: 37511975

Test: build user build, launch emualtor, run CTS.

Change-Id: I70f58947e98b41b195d77b4347d2efdc09348392
Merged-In: I70f58947e98b41b195d77b4347d2efdc09348392
2017-08-30 17:13:26 -07:00
Yahan Zhou 3cf7441dbe Build vendor image for emulator
BUG: 37511975

Test: lunch sdk_gphone_x86-user, make with dist option, unzip
sdk_gphone_x86-emulator-eng.xxxx.zip to system image folder, emulator
can boot

Change-Id: I75b9f0de17fece3dec5ae1662400808af321bd4d
Merged-In: I75b9f0de17fece3dec5ae1662400808af321bd4d
2017-08-30 17:13:20 -07:00
Nan Zhang 0739155c86 Add Turbine as part of java build toolchain in Make.
1. Bundle static_java_header_libs during turbine-classes.jar if
necessary. This can be improved if we have the ability to merge jars on
the fly.

2. Copy sdk/stubs-classes.jar to sdk/stubs-classes-header.jar, and Use
.KATI_RESTAT to cut un-necessary targets rebuilt.

3. Copy prebuilt-classes.jar to prebuilt-classes-header.jar since
Turbine doesn't apply to prebuilt.

4. Run jarjar after Turbine compilation, otherwise downstream targets
won't find corresponding symbols.

5. Change classes.jar in -classpath used in Desugar to
classes-header.jar.

6. Change legacy-libs in Proguard from classes.jar to
classes-header.jar.

7. Add .KATI_RESTAT for turbine-classes.jar, and remove IJAR.

8.boot.art is re-generated during the incremental rebuild since
javalib.jar got re-generated. Then boot.art re-triggered lots of
downstream targets to be rebuilt. So we add .KATI_RESTAT for javalib.jar
to prevent downstream to be rebuilt. The ziptime & commit-change-to-toc
operation for javalib.jar(small) didn't bring too much overhead when we build
from clean state.

Next step: specify static_java_header_libs in -classpath, and merge jars
at the end.

touch frameworks/base/core/java/com/google/android/util/Procedure.java &&
time m
time: 1m58s (794 -> 49 targets)

m clean && time m java
time: 9m34s

Bug: b/64308460

Test: m clean && m checkbuild

Change-Id: Iefcc234405b9f461b6882c06bba15e21fa783d28
2017-08-30 16:01:39 -07:00
Jeff Gaston 9557cae873 Implement LOCAL_TARGET_REQUIRED_MODULES
to allow a host module to specify LOCAL_TARGET_REQUIRED_MODULES
to indicate that the device module should be built.

Bug: b/64580523
Test: add "LOCAL_TARGET_REQUIRED_MODULES := \
      CtsDeviceOsTestApp CtsHostProcfsTestApp" to \
      cts/hostsidetests/os/Android.mk, run \
      `m -j CtsOsHostSideTestCases`, check \
      that CtsDeviceOsTestApp.apk was built

Change-Id: I1457a51f7cd922c059aa62955d8693b1a7539fd9
2017-08-30 13:44:26 -07:00
Treehugger Robot f61712fbf1 Merge "Separate java source list generation into its own rule" 2017-08-30 19:47:11 +00:00
Treehugger Robot ae470d419a Merge "Use java variables from soong" 2017-08-30 18:26:58 +00:00
Colin Cross dfc45ec337 Separate java source list generation into its own rule
Move the java source list generation step into its own rule.  This
has a couple of advantages.  It consolidates the source list
generation so that it only has to run once for javac, jack, and
jack-check.  It also massively reduces the length of the javac
command line, so that error messages are significantly shorter,
and allows easily rerunning the failing build command because
the file list is still on disk.

The primary disadvantage is that javac error messages no longer
include the list of files passed to javac, but the list is
available earlier in the build long when the file list was written,
and is still available on disk.

Test: m -j javac-check
Change-Id: I9730b352b33a060e08221b61c11c617d23320d67
2017-08-29 16:50:11 -07:00
Colin Cross 2c69277218 Use java variables from soong
Use TARGET_JAVAC and HOST_JAVAC exported from soong.

Test: m -j checkbuild
Merged-In: Ic094174149ea304c0b06ddc023417acf3602d5a3
Change-Id: Ic094174149ea304c0b06ddc023417acf3602d5a3
(cherry picked from commit 204dd14a2c)
2017-08-29 13:02:07 -07:00
Treehugger Robot 02b158d7a4 Merge "Add compatibility metadata for Treble-enabled non-A/B OTA packages." 2017-08-29 19:12:07 +00:00
Yifan Hong 4b7cbf8395 Merge changes from topic "kernel_config_arch"
* changes:
  fwk comp mat: add arch specific kernel requirements
  fwk comp mat: use a for loop for supported kernel versions
2017-08-29 18:25:17 +00:00
Ian Pedowitz 00283a6e80 master is now P
Fixes: 64141010
Test: source build/envsetup.sh && lunch marlin-userdebug
============================================
PLATFORM_VERSION_CODENAME=P
PLATFORM_VERSION=P
TARGET_PRODUCT=marlin
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_PLATFORM_VERSION=PPR1
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=kryo
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=kryo
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-79-generic-x86_64-Ubuntu-14.04.5-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=MASTER
OUT_DIR=out
AUX_OS_VARIANT_LIST=
============================================

Change-Id: I2d9019af8c4e24e34c743be85d4e0ff224de9d17
Merged-In: I2d9019af8c4e24e34c743be85d4e0ff224de9d17
(cherry picked from commit b56fcf400f)
2017-08-29 10:10:24 +08:00
Yifan Hong 63e264d142 fwk comp mat: add arch specific kernel requirements
Test: m system_compatibility_matrix.xml -j
Bug: 64124223
Change-Id: Ieda3ea43e5d3b7d393461bd54b311b58af443f7c
Merged-In: Ieda3ea43e5d3b7d393461bd54b311b58af443f7c
2017-08-28 17:32:59 -07:00
Yifan Hong a508b30df5 fwk comp mat: use a for loop for supported kernel versions
Test: m system_compatibility_matrix.xml -j

Bug: 64124223
Change-Id: Ife95bfb5b7103239e116df1ae844cc3a643b4c28
Merged-In: Ife95bfb5b7103239e116df1ae844cc3a643b4c28
2017-08-28 17:32:59 -07: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 7a1ed9edef Merge "Remove file_contexts.bin from non-A/B OTA package." 2017-08-25 23:07: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
Treehugger Robot 6417aa89e4 Merge "Add shortcut to atest after envsetup.sh is sourced." 2017-08-25 18:44:34 +00:00
Treehugger Robot e09809a32d Merge "Support signing custom_images with AVB" 2017-08-25 07:49:37 +00:00
Bowgo Tsai 480dc7c19d Support signing custom_images with AVB
Current AVB signing for custom images is enabled by either of the
following build variables:
  CUSTOM_IMAGE_AVB_HASH_ENABLE := true
  CUSTOM_IMAGE_AVB_HASHTREE_ENABLE := true

A previous change to support chain partition replaced avb_signing_args
with avb_key_path and avb_algorithm. This change updates the
corresponding change for custom_images.

To sign a custom_image as a chain partition, it needs:
  CUSTOM_IMAGE_AVB_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
  CUSTOM_IMAGE_AVB_ALGORITHM := SHA256_RSA2048
  CUSTOM_IMAGE_AVB_ROLLBACK_INDEX := 1

Note that it doesn't support include metadata of custom images into
vbmeta.img. Because custom_images is designed to build multiple files
(e.g., custom1.img, custom2.img, custom3.img, etc) and a device can only
use/mount one of them. The vbmeta.img needs to be generated per each
combination.

Bug:36701014
Test: sign custom image with AVB HASH descriptor (non-chain)
Test: sign custom image with AVB HASH descriptor as chain partition
Test: sign custom image with AVB HASHTREE descriptor (non-chain)
Test: sign custom image with AVB HASHTREE descriptor as chain partition
Change-Id: I492e2ce768e7caec22228b776b2c13a2d37a5b89
2017-08-25 13:28:57 +08:00
Isaac Chen 9a888ebb51 Merge "Revert "Revert "Build support for 32-bit armv8-a""" 2017-08-25 01:55:56 +00:00
Treehugger Robot 9bab2f5fa2 Merge changes from topic "libvintf_cp"
* changes:
  Add <kernel> entry to fwk compat mat.
  Pass FRAMEWORK_VBMETA_VERSION to assemble_vintf
  Accept multiple input files for device manifest.
2017-08-24 19:41:11 +00:00
Zach Riggle 0d2a75510c Merge "Enhance coverage options to include those needed by Honggfuzz for coverage-driven fuzzing" 2017-08-24 19:26:14 +00:00
Yifan Hong 1aecc84239 Add <kernel> entry to fwk compat mat.
Test: builds and verify that system/compatibility_matrix.xml
      has configs filled.
Test: `vintf | tail` on marlin shows that fwk compat mat
      is compatible with runtime info.

Bug: 38324908
Change-Id: I8a35ea582fea1faa083c409ec58813c3ac82dc9c
Merged-In: I8a35ea582fea1faa083c409ec58813c3ac82dc9c
2017-08-24 11:28:04 -07:00
Bowgo Tsai eb7b438994 Pass FRAMEWORK_VBMETA_VERSION to assemble_vintf
Note that this depends on a change in avbtool:
  https://android-review.googlesource.com/#/c/406374/

Bug: 38325029
Test: builds system.img, checks $OUT/system/compatibility_matrix.xml
      contains correct vbmeta-version
Change-Id: Iacc0a2687fb39600ad6b8e9cfbfe5c1a3b90b40b
Merged-In: Iacc0a2687fb39600ad6b8e9cfbfe5c1a3b90b40b
2017-08-24 11:28:04 -07:00
Yifan Hong dae462bdd1 Accept multiple input files for device manifest.
Test: test with DEVICE_MANIFEST_FILE variable split
      into multiple files

Bug: 38217107
Change-Id: I1146898e4ccf0e8bac7d8541032f160476dbc148
Merged-In: I1146898e4ccf0e8bac7d8541032f160476dbc148
2017-08-24 11:28:02 -07:00
Bowgo Tsai 9a05dca429 Copy adbd from system/bin to recovery/root/sbin
This change will be submitted with other changes moving adbd from
root/sbin to system/bin. We need to copy it specifically to recovery root.
Previously it was copied by rsync $(TARGET_ROOT_OUT) $(TARGET_RECOVERY_OUT).

Bug: 63910933
Test: normal boot sailfish, checks adb works
Test: recovery boot sailfish, checks adb works
Test: normal boot bullhead, checks adb works
Test: recovery boot bullhead, checks adb works

Change-Id: Ib49605f97a190aec2648cb000d1159b6e15db673
Merged-In: Ib49605f97a190aec2648cb000d1159b6e15db673
(cherry picked from commit 3147e7cfab)
2017-08-24 14:27:49 +08:00
Treehugger Robot 714f406a8a Merge "Set Uml if TARGET_USER_MODE_LINUX is true" 2017-08-24 01:14:36 +00:00
Dmitry Shmidt 82d05aaf13 Set Uml if TARGET_USER_MODE_LINUX is true
Bug: 64985489
Test: Manual

Change-Id: Ic472fadcf64eb04e592b6f14570f7650bcd4f2e9
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2017-08-23 15:53:28 -07:00
Treehugger Robot d6c7681d85 Merge "embedded.mk: move dependencies to sepolicy" 2017-08-23 21:31:31 +00:00
Simran Basi 424b876778 Add shortcut to atest after envsetup.sh is sourced.
Bug: None
Test: On master, atest points to atest in tradefed.
Change-Id: Iad6e48a12c4180f77b483cadd4c316820ede87cd
2017-08-23 12:05:36 -07:00
Isaac Chen f5af850a29 Revert "Revert "Build support for 32-bit armv8-a""
This reverts commit 7de79cbeaf.

Fixed CTS build issue by adding -march=armv7-a in cts/tests/tests/os/jni/Android.mk since the library built here needs/uses instruction (swp) obsolete in ARMv8.

Bug: 64964151
Test: lunch aosp_arm64-userdebug; make -j cts
      lunch aosp_x86-userdebug; make -j cts
      lunch aosp_sailfish-userdebug; make -j cts
      lunch aosp_bullhead-userdebug; make -j cts

Change-Id: Ic3a121600da8e2a9a2d5176b9680cd18ce457959
2017-08-23 10:58:57 +00:00
Narayan Kamath 665015ad17 Merge "core: Fix typo in build rule." 2017-08-23 09:40:12 +00:00
Jeff Vander Stoep f4941eb4a7 embedded.mk: move dependencies to sepolicy
Some selinux build packages are defined in embedded.mk,
others are defined in system/sepolicy/Android.mk. Move all
to sepolicy as a dependency of the phony package selinux_policy
which is defined in embedded.mk.

Test: build Marlin (Treble) and Angler (non-Treble)
Merged-In: I734c2909354349d146c6f78beb74bd990d9af30d
Change-Id: I734c2909354349d146c6f78beb74bd990d9af30d
2017-08-23 05:26:32 +00:00
Treehugger Robot acb4ace77d Merge "Split CleanSpec processing out of main Kati run" 2017-08-23 01:53:59 +00:00
Zach Riggle be0811f46c Enhance coverage options to include those needed by Honggfuzz for coverage-driven fuzzing
Test: make m
Bug: 64903541
Change-Id: Ibb7eb126b6e68c03d0336606ec540a62a8e903d4
2017-08-22 18:01:46 -04:00
Dan Willemsen 514d49979c Split CleanSpec processing out of main Kati run
Bug: 35970961
Test: m clean; m nothing; m nothing
Test: Add CleanSpec.mk line, see it executing
Change-Id: Ied59ac9dbcbeec00e1ada8271b1f66cae33edb8d
2017-08-22 13:08:24 -07:00