Commit Graph

38085 Commits

Author SHA1 Message Date
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
Mathieu Chartier
71f622e247 Merge "Fix boot image profile in make files" 2017-09-05 17:14:08 +00:00
Mathieu Chartier
a2cc65b099 Fix boot image profile in make files
Update location to framework/base/config instead of frameworks/base

Fixed dex2oat dependency to my_out_boot_image_profile_location
instead of my_out_profile_location.

Bug: 37966211
Test: make and flash

Merged-In: I446f11216cf6342861bbbf56ac5c4da2f36fb755

(cherry picked from commit 75edf540e2)

Change-Id: I4a34be8a344880d3e2ccaea3ed0e6390616e0d6c
2017-09-02 23:47:32 +00:00
Treehugger Robot
2fc0f4e484 Merge "Fix the build breakage on git-wear-master/mirror-aosp-master-with-vendor" 2017-09-02 19:26:48 +00:00
Nan Zhang
9e37028db0 Fix the build breakage on git-wear-master/mirror-aosp-master-with-vendor
git-wear-master/mirror-aosp-master-with-vendor were still broken due to
my Make synatx mistakes.

Bug: b/64308460

Test: download <git-wear-master> branch locally, and then do:
m -j out/target/product/anglefish/package-stats.txt

Change-Id: Ic1a03b452db7583811a3a3b74067f1fc54f873b4
2017-09-02 10:25:17 -07:00
Nan Zhang
99e44773ba Merge "Fix the build breakage on git-wear-master/mirror-aosp-master-with-vendor" 2017-09-02 04:57:12 +00:00
Nan Zhang
d05e19df41 Fix the build breakage on git-wear-master/mirror-aosp-master-with-vendor
The problem is that when I added .KATI_RESTAT for javalib.jar, I didn't
change the function: create-empty-package to generate javalib.jar.tmp.

The problem causes the build breakage on MacOS/Jack.

Bug: b/64308460

Test: download <git-wear-master> branch locally, and then do:
m -j out/target/product/angelfish/package-stats.txt

Change-Id: I9a5d74caaf164b44676e456050b4f8a5b3bdded0
2017-09-01 18:52:41 -07:00
Tao Bao
27bfc86d8b Merge "Pack system/update_engine/scripts into otatools.zip." 2017-09-01 16:45:08 +00:00
Bo Hu
cfde9a84bc Merge "sdk: add vendor-qem.img into the deps list" 2017-09-01 00:07:48 +00:00
Treehugger Robot
872246de0f Merge changes from topic "turbine"
* changes:
  Revert "Revert "Add Turbine as part of java build toolchain in Make.""
  Remove GLOBAL_JAVAC_DEBUG_FLAGS
2017-09-01 00:01:31 +00:00
bohu
18d1868580 sdk: add vendor-qem.img into the deps list
if it exists. Fix master-without-vendor sdk_x86-sdk build

Change-Id: I5656e7124d30e71120044cce668c54793f77208a
Merged-In: I5656e7124d30e71120044cce668c54793f77208a
(cherry picked from commit a508578811)
2017-08-31 16:57:44 -07:00
Tao Bao
3f4ea7cb88 Pack system/update_engine/scripts into otatools.zip.
The scripts will be needed by OTA releasetools, for parsing A/B OTA
payload.

Bug: 65261072
Test: `m otatools-package` and check for system/update_engine/scripts.
Change-Id: I5cb54561a5fb0454a37879ca20afa95b82ffdefe
2017-08-31 16:42:38 -07:00
Treehugger Robot
14f225b762 Merge "Only generate breakpad symbols for ELF binaries" 2017-08-31 23:37:41 +00:00
Steve Fung
445beae409 Only generate breakpad symbols for ELF binaries
When BREAKPAD_GENERATE_SYMBOLS is set to true, the build will attempt
to run dump_syms for all dynamic binaries.  However some build targets
are now using cc_prebuilt_binary for installing python host scripts.
This causes dump_syms to return an error, causing the build to fail.
So check instead if the file is an ELF binary before running dump_syms.

Bug: 65065674
Test: Built AT target successfully.
Merged-In: Ibe7d3ebd312376600cf21efa111489451a4e7578
Change-Id: Ibe7d3ebd312376600cf21efa111489451a4e7578
(cherry picked from commit ee848655db)
2017-08-31 15:57:44 -07:00
Bo Hu
35149ca0b7 Merge changes from topic "aosp-emulator-oc"
* changes:
  emulator: fix widevine drm vndbinder denial
  emulator: fix selinux issues
  emulator: squash misc modifications from oc-emu-dev
  emualtor: keep libopenjdkjvmti*.so on sdk images
  emulator: move rild.libpath to vendor
  sdk:enable emulator to launch in build environment
  build-emulator: fully treblize emulator image
  Build vendor image for emulator
2017-08-31 22:56:31 +00:00
Treehugger Robot
e7a0516835 Merge "Move default native bridge value to build.prop" 2017-08-31 22:08:29 +00:00
Nan Zhang
b3ec534bd1 Revert "Revert "Add Turbine as part of java build toolchain in Make.""
This reverts commit 33dcd0c5eb.

Reason for revert: <stub.jar.toc needs classes.jar.toc which is no longer existed after Turbine was introduced. So use classes.jar to represent stub.jar.toc>

Bug: b/64308460
Test: m clean && time m -j32 ANDROID_COMPILE_WITH_JACK=true
Change-Id: If618993f1e0c789d93cc15664212603f994fd460
2017-08-31 14:56:54 -07:00
Colin Cross
9a594e05af Remove GLOBAL_JAVAC_DEBUG_FLAGS
GLOBAL_JAVAC_DEBUG_FLAGS is no longer set, -g is already included
in the javac command line.  Jack is on its way out, just use -g
directly there for now.

Test: m -j checkbuild
Change-Id: Ib99c248bbb8b65fa2cd2b55449a502fc20deffa8
2017-08-31 14:48:31 -07:00
Nan Zhang
91ffbf2fbe Merge "Revert "Add Turbine as part of java build toolchain in Make."" 2017-08-31 20:32:46 +00:00
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