Commit graph

1074 commits

Author SHA1 Message Date
Alan Viverette
fa0184fae9 Allow projects to define their own globally-available variables
Bug: 73178261
Test: make checkbuild
Change-Id: I53ee0f1d3ec072e19f4893cca44e16ef672fabfe
2018-02-15 15:02:53 -05:00
Justin Yun
e136d21ff8 Merge "Revert "PRODUCT_TREBLE_LINKER_NAMESPACES must be true for BOARD_VNDK_VERSION"" am: 835e296ce1 am: 2c95415716
am: e5f2a716cb

Change-Id: I8b5b14434356e5d7ea56a325b4c5a61dcd0aae03
2018-02-08 08:18:16 +00:00
Justin Yun
fbcc2ad22e Revert "PRODUCT_TREBLE_LINKER_NAMESPACES must be true for BOARD_VNDK_VERSION"
This reverts commit 69ae572779.

Reason for revert: Build breaks on aosp_car

Change-Id: I9c7f0eedf8ea8fb3b4e14dc2024dea376cc14093
2018-02-08 07:06:13 +00:00
Justin Yun
1cd7012024 Merge "PRODUCT_TREBLE_LINKER_NAMESPACES must be true for BOARD_VNDK_VERSION" am: 1e6b7c553a am: 3a9118137b
am: 2076edbd93

Change-Id: I1506cb1f26ee4879d5fec53deea2cccd6c6df4fa
2018-02-08 06:47:59 +00:00
Justin Yun
69ae572779 PRODUCT_TREBLE_LINKER_NAMESPACES must be true for BOARD_VNDK_VERSION
If PRODUCT_TREBLE_LINKER_NAMESPACES is not true when
BOARD_VNDK_VERSION is defined, report a build error.
To enable VNDK, linker namespace must be configured.

Bug: 72704254
Test: Try to build with one of them is missing
Change-Id: I804704e2f48fa44c8f998183508741d5cc40e4ce
2018-02-08 05:53:48 +00:00
Yifan Hong
dff13526f4 Merge changes from topic "vintf_matrix_sepolicy" am: 058d6c2d1e am: 832c80d05b
am: 95a7d377a3

Change-Id: Ib574e20fceed10feadc96e7768355b024bf8a368
2018-02-07 23:21:30 +00:00
Treehugger Robot
058d6c2d1e Merge changes from topic "vintf_matrix_sepolicy"
* changes:
  core/config.mk: Add PLATFORM_SEPOLICY_COMPAT_VERSIONS
  Move PLATFORM_SEPOLICY_VERSION from system/sepolicy/Android.mk
2018-02-07 22:32:44 +00:00
Søren Gjesse
afb02f5306 Merge "Revert "Enable R8 by default (sixth attempt)"" 2018-02-07 14:43:22 +00:00
Søren Gjesse
b5c255ccf4 Revert "Enable R8 by default (sixth attempt)"
This reverts commit 52dd2f8f8e.

Reason for revert: Build failure for NexusLauncherRelease

Change-Id: I4bec5dd1842f78ec1905a99d1338dc0e2dd20aca
2018-02-07 14:37:29 +00:00
Søren Gjesse
8ce4b71085 Merge "Enable R8 by default (sixth attempt)" 2018-02-07 13:23:29 +00:00
Jiyong Park
1f4e7fbe9d Merge "Support LOCAL_SDK_VERSION := core_current" am: c82c0a81ec am: d2e7e0d33d
am: efc3f4d130

Change-Id: I13ab7399a47443dd1aa8766416ad30efcb443d7e
2018-02-07 01:30:05 +00:00
Treehugger Robot
c82c0a81ec Merge "Support LOCAL_SDK_VERSION := core_current" 2018-02-06 22:37:16 +00:00
Søren Gjesse
52dd2f8f8e Enable R8 by default (sixth attempt)
Fixed bugs which was discovered in the last attempt.

Bug: 72373167
Bug: 72391662

Test: m -j PRODUCT-taimen-userdebug
Test: Check that some .vdex files built have R8 generated code
Change-Id: I89aaed9a4156748a513d6ee0284068b8a3c52322
2018-02-06 17:30:32 +01:00
Yifan Hong
2c2a24421a Merge "Move system manifest / device matrix build rules" am: fe34c5b52c am: 6e79817411
am: 19687f25f0

Change-Id: I897635ade816d146f41ef3a3421e16446e9d0252
2018-02-06 02:29:27 +00: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
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
David Brazdil
8c4d521d0d Merge "Revert "Revert "Apply hiddenapi build tool on boot jars""" am: edd4716ff9 am: bc05d3f846
am: 3264b568f3

Change-Id: I21ce7dc6f2d50a96722a197f52e48f13899ede7d
2018-02-01 23:27:09 +00:00
Jiyong Park
5ebca30d21 Support LOCAL_SDK_VERSION := core_current
core_current is a pseudo SDK version which is a core Java API subset of
the Android API. It is expected to be mainly used for external Java
projects which are agnostic to Android; such as junit, guava, etc.

A module built with this SDK version can only link to java modules of
the same kind. It can't depend on modules built with LOCAL_SDK_VERSION
:= current or without LOCAL_SDK_VERSION.

Bug: 72206056
Test: m -j
Change-Id: I34a9696393aa6704fd6684a40ea5b05d3fb46b23
2018-02-01 17:14:55 +09:00
David Brazdil
b8fa6dd104 Revert "Revert "Apply hiddenapi build tool on boot jars""
This reverts commit 4a2926a44e.

Reason for revert: The original CL caused two issues:
1) Increased app startup because `profman` failed to verify boot
jars and created an empty profile for the boot image. All methods
in the framework therefore ran interpreted/JITed. New flag
"--skip-apk-verification" has been added to `profman` to fix
the issue in CL Iad614e47feada293218c11cff985a8012ca49a0f.
2) Caused a crash in Mockito CTS tests because jvmti did not
remove hiddenapi access flags from boot jars before using them.
This has been fixed with CL Ibc9a96a6b541c06844f276db009ac29514f7a3bb.

Bug: 64382372
Bug: 72550707
Test: make test-art-host
Change-Id: Ie8c58714455662f042f56b2977b01b75c5ec7d2f
2018-01-30 18:25:46 +00:00
Dan Willemsen
bd2f15cd58 Merge "Clean up some kati warnings" am: 157fbf771b am: 6432cf64b6
am: 6597699c8d

Change-Id: If7fe1940d10ff759c4606c314f98030fad83b232
2018-01-30 07:53:15 +00:00
Dan Willemsen
893bebc44b Clean up some kati warnings
Kati has a `--warn` option that adds some extra Kati-specific warnings
-- like using undefined make functions, undefined user functions, likely
bad variable lookups, etc. Some of these are bugs, others are fine doing
nothing. This fixes up all of them in the core build system.

It also complains about $(eval) usage in a recipe not being recommended.
Those aren't handled as part of this change.

Bug: 72661763
Test: build-aosp_arm.ninja is identical before and after
Change-Id: I8e00af142a7745236d3ad4efc9e91ec3ce71a511
2018-01-29 16:23:37 -08:00
Alex Light
e66c468790 Merge "Revert "Apply hiddenapi build tool on boot jars"" am: 9f1e629503 am: 67bf2d712a
am: 393453d761

Change-Id: I4e69247e2add400d6dad997cca04b1969384bb4f
2018-01-26 19:54:13 +00:00
David Brazdil
0925496f17 Merge "Move locations of all hidden API lists into the build folder" am: 661f97b62b am: c573a77645
am: 7a0c5eeb20

Change-Id: I0218a071fe789454a11ce985fd24bae5e528ae4e
2018-01-26 19:46:16 +00:00
Alex Light
9f1e629503 Merge "Revert "Apply hiddenapi build tool on boot jars"" 2018-01-26 18:40:55 +00:00
Alex Light
4a2926a44e Revert "Apply hiddenapi build tool on boot jars"
This reverts commit b7f00ed2af.

Bug: 72550707
Bug: 64382372
Test: atest CtsInlineMockingTestCases

Reason for revert: Causing invalid dex files to be passed to jvmti
                   agents. This causes CtsInlineMockingTestCases and
                   other tests to fail.

Change-Id: I50129e94791b9e2bef919fe398b4250ae461195b
2018-01-26 18:16:52 +00:00
David Brazdil
2e36f52738 Move locations of all hidden API lists into the build folder
ART buildbots are broken because they build against a pinned commit of
the framework and thus lack the build rules to generate hidden API lists
We aim to fix this by generating dummy API lists in the build folder.
This patch changes the location of the blacklist and dark greylist from
frameworks/base/config/ to ${TARGET_COMMON_OUT_INTERMEDIATES}/... . On
normal builds, the framework will copy its text files into the build
folder.

Test: make
Bug: 64382372
Change-Id: I9b55d2865599e367d9c4be4f834182f5c084c3bf
2018-01-26 11:35:36 +00:00
David Brazdil
5f97aef277 Merge "Apply hiddenapi build tool on boot jars" am: 221848b181 am: b1831cf27e
am: 74f173806b

Change-Id: I60a5482f2a04429e3dcbf47ed82441cb3c702cdc
2018-01-26 00:16:38 +00:00
David Brazdil
d9db756f3c Merge "Add hidden API list file variables" am: a5cc50ab4c am: f167eac95e
am: 185422e1c0

Change-Id: I62a495fa5fd380ab5aac341c322af87fb52cd05b
2018-01-25 15:47:31 +00:00
David Brazdil
b7f00ed2af Apply hiddenapi build tool on boot jars
Restrictions on usage of private APIs require encoding new information
into the dex files of the boot class path. ART now contains a new build
tool called `hiddenapi` which takes three lists of class member
signatures (blacklist, light and dark greylist), finds the class members
in their respective dex files and modifies their access flags in place.

This patch invokes the `hiddenapi` tool on all JARs in
PRODUCT_BOOT_JARS. For Java libraries built with Makefiles the tool is
invoked after the dexer directly on DEX files. For Soong-built
libraries, the build system has to unzip the JAR produced by Soong,
apply `hiddenapi` and rezip again. This is due to the fact that the
PRODUCT_BOOT_JARS variable is not available to Soong.

Bug: 64382372
Test: m
Change-Id: I6ce897d204459c8b6f46ed49e0909ff76c08a9ed
2018-01-25 09:22:08 +00:00
David Brazdil
a5cc50ab4c Merge "Add hidden API list file variables" 2018-01-25 07:55:35 +00:00
Jaekyun Seok
d1b1d594a5 Merge "Support /product partition" am: 8fe7f9bfa2 am: 039e0991d5
am: f430ea5ebf

Change-Id: I91381c19408afc350ba7cecf2ca6daf0881f9abd
2018-01-25 04:16:57 +00:00
Jaekyun Seok
b7735d8105 Support /product partition
This CL adds the following build flags to support building product partition
from Android build system.
- BOARD_AVB_PRODUCT_ADD_HASHTREE_FOOTER_ARGS
- BOARD_AVB_PRODUCT_KEY_PATH
- BOARD_AVB_PRODUCT_ALGORITHM
- BOARD_AVB_PRODUCT_ROLLBACK_INDEX_LOCATION
- BOARD_PREBUILT_PRODUCTIMAGE
- BOARD_PRODUCTIMAGE_EXTFS_INODE_COUNT
- BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE
- BOARD_PRODUCTIMAGE_PARTITION_SIZE
- BOARD_PRODUCTIMAGE_SQUASHFS_BLOCK_SIZE
- BOARD_PRODUCTIMAGE_SQUASHFS_COMPRESSOR
- BOARD_PRODUCTIMAGE_SQUASHFS_COMPRESSOR_OPT
- BOARD_PRODUCTIMAGE_SQUASHFS_DISABLE_4K_ALIGN
- BOARD_USES_PRODUCTIMAGE
- LOCAL_PRODUCT_MODULE
- PRODUCT_FOOTER_ARGS
- PRODUCT_PRODUCT_BASE_FS_PATH
- PRODUCT_PRODUCT_VERITY_PARTITION
- TARGET_COPY_OUT_PRODUCT
- TARGET_OUT_PRODUCT*

And PRODUCT_PRODUCT_PROPERTIES is added to save product-specific
properties in /product/build.prop.

Bug: 64195575
Test: succeeded building product.img with BOARD_PRODUCTIMAGE_PARTITION_SIZE,
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE and PRODUCT_PRODUCT_VERITY_PARTITION.

Change-Id: I774e6a38003734421591e51bed103802ff84f432
2018-01-25 09:33:58 +09:00
David Brazdil
ae6915ead0 Add hidden API list file variables
Add variables for the hidden API blacklist and dark and light greylist
files. These are text files with signatures of boot class path class
member with restricted access for non-platform code.

Bug: 64382372
Test: m
Change-Id: I5639c5269872ac626efc69bd3a374a7a7125d502
2018-01-24 20:48:54 +00:00
Jiyong Park
487b149382 Merge "Don't use old VNDK and SystemSDK versions for new devices" am: 3fcaecec8a am: b50e47cbc4
am: 42bb3a2ddf

Change-Id: I3a291a22ffdff76e3cf5796a554ba537e855a2f9
2018-01-24 02:39:48 +00:00
Jiyong Park
95f9313445 Don't use old VNDK and SystemSDK versions for new devices
We need to prevent vendors from using old VNDK and SystemSDK versions
for newly launched device. Otherwise, deprecating old versions of the
APIs would be really difficult.

Specifically, it is enforced that

PRODUCT_SHIPPING_API_LEVEL <= BOARD_VNDK_VERSION

PRODUCT_SHIPPING_API_LEVEL <= min(BOARD_SYSTEMSDK_VERSIONS)

Bug: 72126206
Test: manually setting BOARD_VNDK_VERSION to 24 in
device/google/wahoo/BoardConfig.mk and choosecom to walleye
Test: m -j shows an error on BOARD_VNDK_VERSION
Test: BOARD_SYSTEMSDK_VERSION="25 26" m -j shows an error on
BOARD_SYSTEMSDK_VERSION

Change-Id: I17646487a9c77a6a5110749e22ba47f0f75920cf
2018-01-24 09:59:09 +09:00
Søren Gjesse
ca48094d03 Revert "Enable R8 by default (fifth attempt)"
This reverts commit 1d4e668cf9.

Reason for revert: b/72373167

Change-Id: I913869aed9061aae8da18165b3a3167a52bad486
2018-01-23 16:18:23 +00:00
Søren Gjesse
1d4e668cf9 Enable R8 by default (fifth attempt)
Fixed bugs which was discovered in the last attempt.

Bug: 70878367

Test: m -j PRODUCT-taimen-userdebug
Test: Check that some .vdex files built have R8 generated code
Change-Id: Ib08a0bf8daac8898b09755bf0cb3d89c81c2b09e
2018-01-22 17:37:05 +01:00
David Brazdil
b6c4635641 Merge "Add new API file names" am: 33bb091971 am: 6410668278
am: d0c9593802

Change-Id: I0dbdbc4391f321b527f99f73684bee89f4819729
2018-01-20 11:39:16 +00:00
David Brazdil
33bb091971 Merge "Add new API file names" 2018-01-20 10:06:22 +00:00
Denis Vnukov
0af9f0aa8c Merge "Revert "Enable R8 by default (fourth attempt)"" 2018-01-20 01:54:40 +00:00
Denis Vnukov
37572f2dfe Revert "Enable R8 by default (fourth attempt)"
This reverts commit a7e1f92533.

Reason for revert: R8 seems to be a reason for b/72218788.

Change-Id: Ia2f12775b37537cb21036c4bdd5504af8344e830
2018-01-19 23:13:30 +00:00
Søren Gjesse
968d6c00e5 Merge "Enable R8 by default (fourth attempt)" 2018-01-19 07:15:26 +00:00
Jaekyun Seok
0538ff796f Enforce PRODUCT_COMPATIBLE_PROPERTY for products shipping with Android P
PRODUCT_COMPATIBLE_PROPERTY will be set as true for products shipping
with Android P, and ro.actionable_compatible_property.enabled will be set
as a system default property accordingly.
But if PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE is set,
ro.actionable_compatible_property.enabled will be false.

Bug: 38146102
Test: tested on walleye with PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE=true
Merged-In: Ifc1279a360b140c4d94edd32db7de3c6c7317297
Change-Id: Ifc1279a360b140c4d94edd32db7de3c6c7317297
(cherry picked from commit 2528cd26c0)
2018-01-18 21:11:53 +09:00
Jaekyun Seok
2528cd26c0 Enforce PRODUCT_COMPATIBLE_PROPERTY for products shipping with Android P
PRODUCT_COMPATIBLE_PROPERTY will be set as true for products shipping
with Android P, and ro.actionable_compatible_property.enabled will be set
as a system default property accordingly.
But if PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE is set,
ro.actionable_compatible_property.enabled will be false.

Bug: 38146102
Test: tested on walleye with PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE=true
Change-Id: Ifc1279a360b140c4d94edd32db7de3c6c7317297
2018-01-18 16:27:35 +09:00
Søren Gjesse
a7e1f92533 Enable R8 by default (fourth attempt)
Fixed bugs which was discovered from the last attempt.

Bug: 71629503
Bug: 69825683
Bug: 71630128
Bug: 69445518
Bug: 71604169
Bug: 70886092

Test: m -j PRODUCT-taimen-userdebug
Test: Check that some .vdex files built have R8 generated code
Change-Id: I8b468dee5a5d63f1caa2c9a8b7b0ce5655e512b9
2018-01-16 17:26:37 +01:00
David Brazdil
97b22ce9a8 Add new API file names
Doclava now generates new API signature files. Add their filenames
to config.mk.

Bug: 64382372
Test: make
Change-Id: I6aed1b2e0575ddb8c89cea5fa7709023eb6f30a3
2018-01-16 15:02:28 +00:00
Stephen Hines
4dac41f915 Merge "Remove unnecessary USE_CLANG_PLATFORM_BUILD." am: 504bd79e86 am: dfc0111700
am: c8efc4d5f8

Change-Id: I6f06b63f3d582abe98f02361d6a3c7918c240eb7
2018-01-12 18:49:26 +00:00
Stephen Hines
504bd79e86 Merge "Remove unnecessary USE_CLANG_PLATFORM_BUILD." 2018-01-12 18:19:45 +00:00
Stephen Hines
178cf8e4d4 Remove unnecessary USE_CLANG_PLATFORM_BUILD.
This build variable is unnecessary now that GCC is completely
unsupported for Android platform builds.

Bug: http://b/64032869
Test: Builds
Change-Id: I9d44ebd7129cb2bdfbb26d37922db19c6fb9efc9
2018-01-11 14:29:23 -08:00