Commit Graph

19055 Commits

Author SHA1 Message Date
Treehugger Robot
a0ee5dee5c Merge "make: Add support to skip current VNDK install" 2019-05-25 00:16:31 +00:00
Daniel Mentz
bacc040da0 Install radio image as part of droidcore
Previously, the radio image was only installed as part of "make dist".

Change-Id: Id497238930b5a155d1ae30fd7fb2203377c9741d
2019-05-24 17:50:27 +00:00
Jooyung Han
9340a673cd make: Add support to skip current VNDK install
You can get a system.img without current VNDK libs.
This may help when you want a smaller system.img given that the image
will be used with a specific version (not current) of vendor image.

Bug: 132140714
Test: m TARGET_SKIP_CURRENT_VNDK=true && see if current VNDK is not
installed

Change-Id: Ie0815e6dd6ce2f861b6c42e637da4bb146320673
2019-05-25 02:06:08 +09:00
Treehugger Robot
8614d0181c Merge "Remove recovery.id completely" 2019-05-24 16:35:44 +00:00
Dimitry Ivanov
f64b664d6c Merge "Fix typo in APEX_LIBS_ABSENCE_CHECK_EXCLUDE" 2019-05-24 08:26:36 +00:00
Yi Kong
7147b52cae Merge "Add LLVM binutils prebuilds in PATH" 2019-05-24 00:26:27 +00:00
Daniel Norman
c9fc1120c1 Merge "Adds image-specific selinux_fc props to allow different file_contexts." 2019-05-23 23:42:13 +00:00
Daniel Norman
72c626f017 Adds image-specific selinux_fc props to allow different file_contexts.
This enables mixed builds to use the file_contexts.bin from the system
build when regenerating images that come from system target files, and
similarly for file_contexts.bin from the other build when regenerating
images from other target files.

In monolithic (non-mixed) builds all image-specific selinux_fc props
point to the same file_contexts.

Bug: 132108151
Test: Built and booted mixed build devices.
Change-Id: Id51ed6d96ea6337879f1ab21d47c93c67bc25312
2019-05-23 11:21:02 -07:00
dimitry
c193ae4c04 Fix typo in APEX_LIBS_ABSENCE_CHECK_EXCLUDE
arm64 guest libraries are located in lib64/arm64

Bug: http://b/77159578
Test: lunch cf_x86_64_phone-userdebug in internal master; mm -j48 dist
Change-Id: I9f1f9426cbaed0a269126cb242e1a6df9249b167
2019-05-23 16:01:50 +02:00
Jooyung Han
72b65abd41 Remove recovery.id completely
Since aosp/887473 removed ro.expect.recovery_id,
There is no usage of "RECOVERYIMAGE_ID_FILE" which points
$(PRODUCT_OUT)/recovery.id.

Test: m && boot
Change-Id: I704af874b7e4141d2e006595242f7b681aa47f05
2019-05-23 19:48:13 +09:00
Anton Hansson
64940d5a19 Merge "Add more colors to generated product graphs" 2019-05-23 09:44:41 +00:00
Treehugger Robot
41b46710e9 Merge "Moving /odm/build.prop to /odm/etc/buid.prop" 2019-05-23 09:16:34 +00:00
Yi Kong
dfd00b1ba1 Add LLVM binutils prebuilds in PATH
Test: lunch; manually examine $PATH
Bug: 133170927
Change-Id: Iceb0add1bfde052acf547402f8d932b87cdf0a2d
2019-05-22 23:36:53 -07:00
Sasha Smundak
2748c61659 Remove unused (and currently broken) samplecode target.
Running 'm samplecode' fails with
"build/make/core/main.mk:1834: error: overriding commands for target
`out/target/common/samples/libsimplejni.so', previously defined at
build/make/core/main.mk:1834"
This proves that noone has been using 'samplecode' target at least since
the build started generating both 32- and 64-bit shared libraries by default,
because development/samples/SimpleJNI/jni/Android.mk defines libsimplejni.so
as 'sample', and the deleted code in core/main.mk causes duplicate rule in
such case.

Test: treehugger
Change-Id: I38a4c478fcb0e60793129fe2513a8cdc6d2c79fb
2019-05-22 20:01:49 -07:00
Treehugger Robot
0c45b0d982 Merge "Allow for the DTB image to be built by the Android build system." 2019-05-22 07:28:24 +00:00
Bowgo Tsai
71a4d5cdd5 Moving /odm/build.prop to /odm/etc/buid.prop
In device root directory, we have the following symlinks:
  - /odm/app -> /vendor/odm/app
  - /odm/bin -> /vendor/odm/bin
  - /odm/etc -> /vendor/odm/etc
  ...

This allows the Generic System Image (GSI) to be used on both devices:
  1) Has a physical odm partition, where those symlink will be hidden
     when /odm is used as the mount point
  2) Has no physical odm partition and fallback to /vendor/odm/.

We can't just have the symlink /odm -> /vendor/odm, because the former
devices won't have /vendor/odm directory, which leads to mount failure
when the mount point /odm is resolved to /vendor/odm.

The existing /vendor/odm/build.prop won't be loaded in the latter
devices, because there is no symlink:
    - /odm/build.prop -> /vendor/odm/build.prop.

Note that init blocks reading through direct symlinks (O_NOFOLLOW) so
the above symlink won't work either. This CL moves the odm build.prop
to /odm/etc/build.prop for init to load it (symlinks in earlier
components of the path will still be followed by O_NOFOLLOW).

Bug: 132128501
Test: boot a device and checks /odm/etc/build.prop is loaded
Test: make dist with an odm.img, checks $OUT/odm/etc/build.prop is loaded
Change-Id: I6f88763db755c9ec6068bfdd9cee81c19d72e9d7
Merged-In: I6f88763db755c9ec6068bfdd9cee81c19d72e9d7
(cherry picked from commit 6c62884000)
2019-05-22 14:04:39 +08:00
Hridya Valsaraju
59eaef078d Allow for the DTB image to be built by the Android build system.
The current solution expects BOARD_PREBUILT_DTBIMAGE_DIR to
contain prebuilt DTB files that are concatenated by the build system
to create $OUT/dtb.img. In order to accommodate devices that build
the dtb image locally, make boot.img creation depend on $OUT/dtb.img
only when BOARD_PREBUILT_DTBIMAGE_DIR is undefined.

Bug: 133161451
Test: Build with BOARD_PREBUILT_DTBIMAGE_DIR undefined and verify
using unpack_bootimg.py that $OUT/dtb.img was included in boot.img.

Change-Id: Iae2c634ccdc1d83589b26d382882f75fb8565a31
2019-05-22 03:51:41 +00:00
Mitch Phillips
65dbf9bfb3 Merge "Fix fuzzer builds." 2019-05-21 22:45:43 +00:00
Pete Gillin
42fe06b3c2 Merge "Avoid targeting Java 9 for targets with SDK version up to 29." 2019-05-21 10:19:06 +00:00
Treehugger Robot
40b5340a94 Merge "AIDEGen: Collect the srcjar path of modules into module-info.json" 2019-05-21 02:02:20 +00:00
Mitch Phillips
ee8f4a0ada Fix fuzzer builds.
- Updates the fuzzer builds to use SANITIZE_TARGET='fuzzer' instead of
'coverage'.
- Removed an old dependency that made fuzzer builds without ASan
an error.
- Fixed up the build flags to allow fuzzers to be built. Previously, the
coverage flags were manually provided. As the toolchain has moved on,
these flags are no longer compatible with libFuzzer, and so I've updated
them to use the correct, compatible flags.

Bug: 121042685
Test: With all patches in the bug merged, build a fuzzer using
'SANITIZE_TARGET=fuzzer mmma <your_fuzzer>'.

Change-Id: I86e6a26d27c22b3622cf6ea8760f502f607df6f0
2019-05-20 16:58:26 -07:00
Chris Gross
a489a92fdc Merge "Add merging of apexkeys and apkcerts metadata" 2019-05-20 23:36:45 +00:00
Treehugger Robot
2ee5efd824 Merge "Move check-all-partition-sizes to a non-phony rule" 2019-05-20 23:02:26 +00:00
Chris Gross
fabf50a577 Add merging of apexkeys and apkcerts metadata
Bug: 131437873
Test: Built system-only and vendor builds for merge. Compared
resulting apkcertx and apexkeys text files to that of a monolithic
build,
Test: Created colliding entries in both apexkeys and apkcerts text
files and ensure the script exited with an appropriate error message.
Test: Created unit tests to cover both non-colliding and colliding
entries
Change-Id: I6e42ce682ffa9059344e8cd63ba3a720c1f93452
2019-05-20 18:35:22 +00:00
Pete Gillin
58090478d7 Avoid targeting Java 9 for targets with SDK version up to 29.
Targets with sdk_version values up to and including 29 should not use
Java language level 9, even if EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9=true
is set.

This change keeps the make logic in sync with the soong logic in the
other change in this topic.

Bug: 131678633
Test: EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9=true make droid tests docs cts java
Change-Id: Icd5db432f6b18486e8ede006c15a930c754ad4c2
2019-05-20 15:46:50 +01:00
Colin Cross
ab83244472 Bypass LOCAL_*_REQUIRED_MODULES checks for ONE_SHOT_MAKEFILE
When ONE_SHOT_MAKEFILE is set, the targets of LOCAL_*_REQUIRED_MODULES
may not exist, so skip the error message.

Fixes: 131241991
Test: mmm cts/tests/signature/intent-check
Change-Id: I95c4c901610746854179af8486c8c4767dd18864
2019-05-17 23:10:26 +00:00
Colin Cross
606c9f4d0d Move check-all-partition-sizes to a non-phony rule
Phony rules with recipes run on every build, move the recipe for
check-all-partition-sizes to a rule with an output.

Fixes: 132900128
Test: m && m
Change-Id: I9b4d335bf269cd09a01094e895fc15053b410415
2019-05-17 15:51:39 -07:00
patricktu
ab435e39a5 AIDEGen: Collect the srcjar path of modules into module-info.json
By design doc: go/aidegen-doc-generate-R
In order to generate R.java of app modules, AIDEGen needs to build
the module. It might cause system.img oversized so we turn to build
the target srcjar file if it exists in module-info.json.

Build module-info.json without this change:
Build time: 1m47.227s
File size: 14,186,429 Bytes

Build module-info.json with this change:
Build time: 1m46.796s
File size: 14,614,470 Bytes

Bug: 132407603
Test: 1. m out/target/product/generic_x86_64/module-info.json
      2. by grep "target/common/obj/APPS/Settings_intermediates/aapt2.srcjar"
         in module-info.json.

Change-Id: I09c812aede0324bc38acbead0a863a85ae15b33e
2019-05-17 01:46:56 +00:00
Xin Li
4534fcca85 Merge "DO NOT MERGE - Merge pie-platform-release (PPRL.190505.001) into master." 2019-05-17 00:58:10 +00:00
Justin Yun
9d608dc541 Allow overriding PRODUCT_EXTRA_VNDK_VERSIONS
As a PRODUCT variable, PRODUCT_EXTRA_VNDK_VERSIONS is not allowed to
be assigned from the build command. Instead, we can use
OVERRIDE_PRODUCT_EXTRA_VNDK_VERSIONS in the build command to
override PRODUCT_EXTRA_VNDK_VERSIONS.

Bug: 132412510
Test: OVERRIDE_PRODUCT_EXTRA_VNDK_VERSIONS=28 m vndk_snapshot_package
Change-Id: I91579961ab393f40ddce8bfe9304829b5b669441
2019-05-16 13:12:55 +00:00
Treehugger Robot
196f64bc6b Merge "Appending per-partition os_version into AVB props" 2019-05-16 11:27:31 +00:00
Anton Hansson
6ea18292dc Add more colors to generated product graphs
Color the node nodes by their location to:
- /build/make/target/product/* => light yellow
- /vendor/* => light red

Test: m product-graph
Change-Id: I911764352e7dc4e2ead2b3770300f48d23dc20b8
2019-05-16 11:09:57 +01:00
Bowgo Tsai
9b54801b58 Appending per-partition os_version into AVB props
os_version is important for keymaster version binding, where it
refuses to perform operations with a key that is bound to an old
system version.  This ensures that an attacker who discovers a
weakness in an old version of system or TEE software cannot roll a
device back to the vulnerable version and use keys created with the
newer version.

Previously, os_version for system.img is added into boot.img header
for bootloader to read the value then pass to TEE before booting the
HLOS. However, with project Treble to modularize each partition, all
images are now in the trajectory to be built independently (still
on-going). Also, in the Generic System Image (GSI) compliance test,
the os_version in OEM's boot.img cannot reflect the actual version of
GSI.

This CL adds per-partition os_versions into AVB metadata, which is
readable by bootloader via libavb without file system dependency. It's
still unclear for how os_version in non-system partition should be used.
We just add them for completeness here.

See more details in:
https://source.android.com/security/keystore/version-binding

Bug: 132233601
Test: build and avbtool info_image $OUT/vbmeta.img
      - Prop: com.android.build.boot.os_version -> '10'
      - Prop: com.android.build.system.os_version -> '10'
      - Prop: com.android.build.system.security_patch -> '2019-06-05'
      - Prop: com.android.build.vendor.os_version -> '10'
      - Prop: com.android.build.vendor.security_patch -> '2019-06-05'
      - Prop: com.android.build.product.os_version -> '10'
      - Prop: com.android.build.product.security_patch -> '2019-06-05'

Change-Id: I21a77420f2e8a3456f7a8cae5158eb8fc41319e7
2019-05-16 12:56:41 +08:00
TreeHugger Robot
4dae317ace Merge "DO NOT MERGE - Merge pi-platform-release (PPRL.190505.001) into stage-aosp-master" into stage-aosp-master 2019-05-15 23:02:16 +00:00
Treehugger Robot
85fba4c04a Merge "Generate VNDK snapshot with Soong except configs" 2019-05-15 22:13:35 +00:00
Treehugger Robot
e51a7282b5 Merge "Add libc_malloc_{debug,hooks}.so to the absence check." 2019-05-15 10:47:49 +00:00
Anton Hansson
3163453d0a Merge "Make implicit 32-bit apps on 64-bit target an error" 2019-05-15 10:44:31 +00:00
Anton Hansson
b35b427769 Merge "Move default setting of a product variable" 2019-05-15 10:29:54 +00:00
Martin Stjernholm
ff29b0fa3e Add libc_malloc_{debug,hooks}.so to the absence check.
They should only be in the Runtime APEX, c.f. discussion on
http://r.android.com/957159.

Test: build/soong/build_test.bash through Forrest
Bug: 124293228
Change-Id: I33e97a56e67c3f4734d14f38e0f1597b697a2604
2019-05-14 18:37:40 +01:00
Anton Hansson
269dd013a5 Move default setting of a product variable
Should be in product_config.mk, before the variables are readonly'd, or
the default will fail to work.

Bug: 131576555
Test: set PRODUCT_SHIPPING_API_LEVEL := 29 in mainline_arm64.mk && lunch
Change-Id: I25faee7ec0a3fff17e1d08b834d868834effda36
2019-05-14 14:33:18 +01:00
Inseob Kim
10e02dcd43 Generate VNDK snapshot with Soong except configs
This is the first commit to generate VNDK snapshot with Soong: .so
files, some txt files, and notice files are captured with Soong. As
ld.config.txt is currently in Android.mk and will be deprecated soon,
configs files (and zipping all of artifacts) are still handled with
Makefile.

Bug: 131564934
Test: 1) DIST_DIR=out/dist development/vndk/snapshot/build.sh
Test: 2) try installing vndk snapshot with:
         development/vndk/snapshot/update.py

Change-Id: Ia904e8a1b44824d6c9556ada93bf1616620a1363
2019-05-14 06:40:08 +00:00
Xin Li
0590d456e0 DO NOT MERGE - Merge pi-platform-release (PPRL.190505.001) into stage-aosp-master
Bug: 132622481
Change-Id: Ide25ddcfa9a928b3affff72c2ce20e77865bd7d5
2019-05-13 15:57:57 -07:00
Anton Hansson
879b007555 Make PRODUCT_CHARACTERISTICS a single-valued variable
Values should be comma-separated, and things won't go down well
if there are multiple words in this variable.

Bug: 123783710
Test: Put this in product_config.mk and ran multiproduct_kati:
      ifneq (1,$(words $(PRODUCT_CHARACTERISTICS)))
        $(error oops)
      endif
Change-Id: I5627f416093d68d8d19916a914739686b74d392f
2019-05-13 18:15:32 +01:00
Pete Gillin
738b9963d5 Merge "Whitelist javax.annotation.processing for inclusion in core-oj." 2019-05-13 11:37:43 +00:00
Anton Hansson
6d25fc6657 Make implicit 32-bit apps on 64-bit target an error
This has been a warning for a long time. Make it an error instead.

Once this has been verified to not cause any problems, it can
likely be changed to instead default to setting
TARGET_SUPPORTS_64_BIT_APPS := true.

Test: build_test
Change-Id: I0d03fed2085009c64880a594d5a3aadf72187e60
2019-05-13 11:13:20 +01:00
Colin Cross
976dd58b34 Merge "Use a copy of dexpreopt.config" 2019-05-11 04:11:58 +00:00
Pete Gillin
0ad2ef677d Whitelist javax.annotation.processing for inclusion in core-oj.
Bug: 123891440
Test: EXPERIMENTAL_USE_OPENJDK9=true make droid

(cherry picked from commit ec99530de3)

Merged-In: I0fc7a6841f34361883785479671f4422d720ce00
Change-Id: I70dbb89ca29ec1bb47ea5a1cf27b324d354aca11
2019-05-10 13:07:02 +01:00
Pete Gillin
aa448d138b Merge "Rename EXPERIMENTAL_USE_OPENJDK9 to EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9." 2019-05-10 11:50:08 +00:00
Dimitry Ivanov
62ae23267f Merge "Filter out .native_bridge static libs from NOTICE files" 2019-05-10 08:17:15 +00:00
Colin Cross
51ba1df2f0 Use a copy of dexpreopt.config
Move the dexpreopt.config passed to Soong to out/soong/dexpreopt.config
and let it write a new copy in a rule and pass the path back to make
as DEX_PREOPT_CONFIG_FOR_MAKE.

Bug: 132379813
Test: m checkbuild
Change-Id: Iac29beac3af8864d36d1563ce42bed11b685548d
2019-05-09 22:16:13 -07:00