Commit Graph

4445 Commits

Author SHA1 Message Date
Paul Duffin
724f24e68a Merge "Move hidden API metadata file rule to platform_bootclasspath" am: fd105d469c am: c552799891 am: a9a8e07643
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674033

Change-Id: I68f24d678cdd437a1672047be672338184e12cd5
2021-04-15 11:23:04 +00:00
Paul Duffin
06f7d3d4c1 Merge "Move handling of prebuilt hiddenapi-index.csv to hiddenapi singleton" am: e2243eac3a am: 0b48ba43c4 am: 86963f54bc
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674032

Change-Id: I01dfda491e16a257e691c10ba506a84d9f89bcf7
2021-04-15 11:22:58 +00:00
Paul Duffin
b99e587b53 Merge "Move hidden API index file rule to platform_bootclasspath" am: a4b0d08b83 am: 7c03047b40 am: 3d82eade0b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674031

Change-Id: Ic8c404fde66d962f167f432322b13892a2260e7a
2021-04-15 11:22:37 +00:00
Paul Duffin
a9a8e07643 Merge "Move hidden API metadata file rule to platform_bootclasspath" am: fd105d469c am: c552799891
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674033

Change-Id: I8eee029810dffcc3f9c0c2f69419713f84ed2144
2021-04-15 10:54:33 +00:00
Paul Duffin
86963f54bc Merge "Move handling of prebuilt hiddenapi-index.csv to hiddenapi singleton" am: e2243eac3a am: 0b48ba43c4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674032

Change-Id: I119f06b49f3653298a5fb4439e3a632cf1ea027c
2021-04-15 10:54:13 +00:00
Paul Duffin
3d82eade0b Merge "Move hidden API index file rule to platform_bootclasspath" am: a4b0d08b83 am: 7c03047b40
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674031

Change-Id: I16b705f3690a259ececa010388dd37e973d1d201
2021-04-15 10:54:02 +00:00
Paul Duffin
85dee5d8fb Move hidden API metadata file rule to platform_bootclasspath
This change moves the monolithic hidden API index file creation rule
from the hiddenAPISingleton into the platform_bootclasspath.

Bug: 179354495
Test: verified that the out/soong/hiddenapi/... files are unchanged
      by this change
Change-Id: Ib25be3618e30a83dc2929a18062eb58eefdabefb
2021-04-14 18:54:55 +01:00
Paul Duffin
22c743170d Move handling of prebuilt hiddenapi-index.csv to hiddenapi singleton
This change moves the handling of the prebuilt hiddenapi-index.csv file
from the hiddenAPIIndexSingleton and removes that as it no longer
needed.

Bug: 179354495
Test: verified that the out/soong/hiddenapi/... files are unchanged
      by this change
Change-Id: Iab1b39a57f28caa855c48538aa2230795f2c3271
2021-04-14 18:54:45 +01:00
Paul Duffin
00b2bfdea5 Move hidden API index file rule to platform_bootclasspath
This change moves the monolithic hidden API index file creation rule
from the hiddenAPIIndexSingleton into the platform_bootclasspath. It
also moves the corresponding test from java/hiddenapi_singleton_test.go
to java/platform_bootclasspath_test.go.

Bug: 179354495
Test: verified that the out/soong/hiddenapi/... files are unchanged
      by this change
Change-Id: Ia295d0f7ae9b51ea816f16921aa42339ed91704e
2021-04-14 18:54:29 +01:00
Paul Duffin
282f7ecb20 Merge "Ensure boot jar modules have been initialized properly for hidden API" am: 08abf7274a am: 45027631f3 am: c7eb9c4037
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674030

Change-Id: I8bbbdd25e87cf5df81590435c8fbf085d5d18845
2021-04-14 17:22:37 +00:00
Paul Duffin
c7eb9c4037 Merge "Ensure boot jar modules have been initialized properly for hidden API" am: 08abf7274a am: 45027631f3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674030

Change-Id: Ib5d41670b0fdb8dd1af0299a54fc6eadcb8ed0f5
2021-04-14 16:32:10 +00:00
Paul Duffin
08abf7274a Merge "Ensure boot jar modules have been initialized properly for hidden API" 2021-04-14 15:53:15 +00:00
Jiyong Park
e5ec499aa2 Merge "SdkSpec is fully using ApiLevel" am: f398995a64 am: fe24728dc9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1663140

Change-Id: Idf353e3d18b3d4831d08d71cc718f305da8995e6
2021-04-14 14:42:56 +00:00
Jiyong Park
f398995a64 Merge "SdkSpec is fully using ApiLevel" 2021-04-14 13:27:05 +00:00
Anton Hansson
f57d624f2d Merge "Remove special case code for obsolete files" am: e9d2f9fcda am: ad0ffa9f98 am: 62f49d1ea7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674037

Change-Id: I672937c1a5f8e53a9d0d728955d902106a733bf1
2021-04-14 11:38:53 +00:00
Anton Hansson
62f49d1ea7 Merge "Remove special case code for obsolete files" am: e9d2f9fcda am: ad0ffa9f98
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674037

Change-Id: I83b307277946b613df3f464f7c08e8cc648e6ada
2021-04-14 10:51:47 +00:00
Paul Duffin
1711f4e539 Merge "prebuilt_apex created ApexInfo must not include prebuilt_ prefix" am: 35584eeb93 am: 1cc6122b55 am: 303eed8e87
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674029

Change-Id: I3b96d66b67b26a3035c43b48c6b32e237b452346
2021-04-14 10:13:42 +00:00
Paul Duffin
303eed8e87 Merge "prebuilt_apex created ApexInfo must not include prebuilt_ prefix" am: 35584eeb93 am: 1cc6122b55
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674029

Change-Id: I56a4b2aeacef0b4f4a96af90f88c2b25bfee8f9d
2021-04-14 09:23:43 +00:00
Anton Hansson
e9d2f9fcda Merge "Remove special case code for obsolete files" 2021-04-14 09:22:51 +00:00
Paul Duffin
1ba246732d Ensure boot jar modules have been initialized properly for hidden API
Checks to make sure that every module that is part of the platform
bootclasspath has been initialized property for hidden API processing.

Bug: 177892522
Test: verified that the out/soong/hiddenapi/... files are unchanged
      by this change
Change-Id: Ic4368963f2011784b537b8aebf5ef97ea22b2db5
2021-04-14 09:08:02 +01:00
Paul Duffin
ce858caec5 Merge "Improve realism of boot jar tests" am: 21fb92d7f6 am: 590a50fe8f am: 401eaf7dd9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674028

Change-Id: I5b5b42c6583290af8510bfe1a45bcd11f61960d6
2021-04-13 21:12:40 +00:00
Paul Duffin
401eaf7dd9 Merge "Improve realism of boot jar tests" am: 21fb92d7f6 am: 590a50fe8f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674028

Change-Id: I7fc246996b751bb748b33877f8e758bf5a9a3516
2021-04-13 19:46:44 +00:00
Paul Duffin
9a117ac0cb Merge "Support UNSAFE_DISABLE_HIDDENAPI_FLAGS in platform_bootclasspath" am: 6050c3c31e am: 58a26e96b7 am: a2f33cc96e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674036

Change-Id: I362404f58342fc1b04cd011197c24e4970043e93
2021-04-13 19:12:27 +00:00
Paul Duffin
37b54b73c8 Merge "Remove noop code from generateHiddenAPIBuildActions" am: 149e19ef70 am: ee207a67e8 am: 97838afd6f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674035

Change-Id: I1cb631e1095ae429917972a600566521b46c9c54
2021-04-13 19:12:20 +00:00
Paul Duffin
a2f33cc96e Merge "Support UNSAFE_DISABLE_HIDDENAPI_FLAGS in platform_bootclasspath" am: 6050c3c31e am: 58a26e96b7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674036

Change-Id: Iffa71d25dea6845866854cbb2e72036a64c330e0
2021-04-13 18:25:38 +00:00
Paul Duffin
97838afd6f Merge "Remove noop code from generateHiddenAPIBuildActions" am: 149e19ef70 am: ee207a67e8
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674035

Change-Id: I27758217e5dfd1660729e39125d4a5d9224bd25b
2021-04-13 18:25:04 +00:00
Paul Duffin
8f146b99e6 prebuilt_apex created ApexInfo must not include prebuilt_ prefix
As part of the work to modularize the hiddenAPI processing the
generation of the monolithic hidden API index file needs to be moved
to the platform_bootclasspath module type. Doing that broke the
TestBootDexJarsFromSourcesAndPrebuilts tests which checks the inputs to
the rule that creates that file. Fixing that required added a
platform_bootclasspath module to the test fixture for those tests which
highlighted an issue with the prebuilt_apex module.

Previously, when the prebuilt_apex created apex variants it would use
its own name as the apex variant name, even when that name included the
prebuilt_ prefix. That broke the platform_bootclasspath logic as it was
looking for apex variants for "myapex" but the only ones available were
"prebuilt_myapex".

This change ensures that it always uses the unprefixed name and fixes
the TestNoUpdatableJarsInBootImage to match. This also adds some
improved error reporting in platform_bootclasspath which helped debug
this problem.

Bug: 177892522
Test: m nothing
Change-Id: I3e88b5cec767f77dcc0e94b3ae38b499d07eadf0
2021-04-13 19:15:27 +01:00
Anton Hansson
fa5e6b50aa Remove special case code for obsolete files
incompatibilities.txt doesn't exist anymore, only
"<module>-incompatibilities.txt". Clean up the associated logic that
mapped incompatibilities.txt to android-incompatibilities.txt.

Bug: 178171189
Test: m
Change-Id: I61eeb5dcc82770fa2af356bad11b7205551d6d83
2021-04-13 19:09:48 +01:00
Pedro Loureiro
d1618e3ff4 Merge "Introduce NewApi lint checks" into sc-dev 2021-04-13 14:12:41 +00:00
Paul Duffin
60264a0b99 Improve realism of boot jar tests
Boot jars, updatable boot jars and art apex jars are part of two
separate but related configuration objects, the main Config struct
(actually the nested productVariables struct) and the dexpreopt
specific GlobalConfig. The fields in both are initialized from the same
data in the make config files but handled separately.

Previously each test that used one of the configuration objects would
generally just initialize the one it used. That would make the test
sensitive to the specific configuration object that was used. A
refactoring that change the code from using one configuration object to
the other would cause the test to fail.

Also, some tests would inadvertently create invalid configurations by
setting ArtApexJars without also setting BootJars. While the ability to
create invalid configurations is useful (and there are some tests that
exist to verify the behavior in that case) most tests should not be
using them.

This change simplifies the configuration of the tests and improves
their realism by:
1. Providing a new FixtureConfigureBootJars method that takes a set of
   boot jars and sets ArtApexJars, and BootJars in the
   dexpreopt.GlobalConfig and BootJars in the product variables too.
2. Providing a new FixtureConfigureUpdatableBootJars method that takes
   a set of boot jars and sets UpdatableBootJars in both the
   dexpreopt.GlobalConfig and productVariables.
3. Migrating existing tests to use these new methods.

Some tests still use the dexpreopt.FixtureSet...Jars() methods directly,
generally to create invalid configurations.

Bug: 177892522
Test: m nothing
Change-Id: I4d8f0b9762cfcc7ae6383bef08563d7c3fa13955
2021-04-13 14:48:34 +01:00
Paul Duffin
0b659866e8 Support UNSAFE_DISABLE_HIDDENAPI_FLAGS in platform_bootclasspath
Previously attempting to use m UNSAFE_DISABLE_HIDDENAPI_FLAGS would
cause a build failure.

It is necessary when UNSAFE_DISABLE_HIDDENAPI_FLAGS=true to create
empty files for the monolithic files so that those usages which are not
protected by the build flag, e.g. in dists or CTS tests like
CtsHiddenApiBlocklistTestApiTestCases do not cause ninja failures due
to reliance on a file that does not exist and has no rule to create it.

Bug: 177892522
Test: m nothing
      m UNSAFE_DISABLE_HIDDENAPI_FLAGS=true CtsHiddenApiBlocklistTestApiTestCases
Change-Id: I05d0b3680dbc0b5b7c7c0d792550faf848829647
2021-04-13 14:19:51 +01:00
Paul Duffin
90b8ad38e0 Remove noop code from generateHiddenAPIBuildActions
Change https://r.android.com/1673266 introduced some code that does
nothing. This change removes that.

Bug: 177892522
Test: m nothing
Change-Id: I349b17c7fe7e2f68a807dab43a4300da7fe0ad4d
2021-04-13 14:18:34 +01:00
Paul Duffin
3e56a08adb Merge "Remove unused hiddenapi_flags module type" am: 99e4fc13bf am: 93391542f9 am: 51ae64962d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674027

Change-Id: I936eba4dbc4f19a3542511a9845d1263db05ce99
2021-04-13 13:09:20 +00:00
Paul Duffin
3d37a3b111 Merge "Export monolithic hidden API files from platform_bootclasspath" am: db173510d3 am: 64e6f0ff5d am: 703509119f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1673266

Change-Id: Ia7d8fa1dd41a2ce4da9630d65ec867e24eb586df
2021-04-13 13:08:09 +00:00
satayev
84ea699fcc Merge "Introduce classpath_fragment.go." am: 86628403e9 am: 94a783223d am: f92ad57372
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670069

Change-Id: I101ad1b1446fde0583833c8a36a07a962b7e0aa1
2021-04-13 13:07:53 +00:00
Paul Duffin
51ae64962d Merge "Remove unused hiddenapi_flags module type" am: 99e4fc13bf am: 93391542f9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674027

Change-Id: I5c46593a38ede8963eeb6287f4ff1588ef3bccb9
2021-04-13 12:15:29 +00:00
Paul Duffin
703509119f Merge "Export monolithic hidden API files from platform_bootclasspath" am: db173510d3 am: 64e6f0ff5d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1673266

Change-Id: I35021b0746a5aa9ac071ca488ae530f950634159
2021-04-13 12:15:17 +00:00
satayev
f92ad57372 Merge "Introduce classpath_fragment.go." am: 86628403e9 am: 94a783223d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670069

Change-Id: Id9da955035530a1b64b987f83cebf8c729df65df
2021-04-13 12:15:02 +00:00
Jiyong Park
3db6f99780 Merge "SdkSpec is fully using ApiLevel" into sc-dev 2021-04-13 11:02:38 +00:00
Paul Duffin
99e4fc13bf Merge "Remove unused hiddenapi_flags module type" 2021-04-13 09:57:31 +00:00
Paul Duffin
db173510d3 Merge "Export monolithic hidden API files from platform_bootclasspath" 2021-04-13 09:57:12 +00:00
Artur Satayev
eabf2c175f Introduce classpath_fragment.go.
A skeleton of a classpath fragment's interface and base to be used by
any modules that provide entries for *CLASSPATH variables at runtime.

In follow up changes, this would be extended to generate
packages/modules/SdkExtensions/proto/classpaths.proto configs for such
modules to be bundled into system and individual apex binaries.

Bug: 180105615
Test: m
Change-Id: I2df550862e97222c5650c4d0480c90231fd78ef0
2021-04-13 08:58:18 +01:00
Paul Duffin
082afbb656 Remove unused hiddenapi_flags module type
Bug: 177892522
Test: m nothing
Change-Id: I604a86a25bbc722ec718b0b0272d0481218d3cd9
2021-04-13 00:23:55 +01:00
Paul Duffin
6a766453fd Export monolithic hidden API files from platform_bootclasspath
Makes the monolithic hidden API files accessible from the
platform_bootclasspath so they can be output to the dist build target
and used by other modules, e.g. by doing something like this:
  java_resources: [
    ":platform-bootclasspath{hiddenapi-flags.csv}",
  ],

It makes the paths relative to the out/soong/hiddenapi directory rather
than the out/soong directory to make them easier to use in the
java_resources property without changing the structure of the APK.
Without that attempting to use them in a java_resources property will
result in them being copied to a hiddenapi/ within the APK instead of
being used at the top level as existing APKs like
CtsHiddenApiBlocklistTestApiTestCases expect.

Bug: 177892522
Test: m nothing
Change-Id: I829412fc7d25411e0c2e0713d0d219a18f4af2ee
2021-04-13 00:23:55 +01:00
Paul Duffin
687953c126 Merge "Move generation of global hidden API flags to platform_bootclasspath" am: 26bd783d0b am: 3f13b50d6f am: a4daf9ee74
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670072

Change-Id: Id03314ff46c39781018b6dc6161cb54bacf61fc7
2021-04-12 20:59:22 +00:00
Paul Duffin
73e07f6a77 Merge "Extract ruleToGenerateHiddenApiFlags" am: 690d5f2c7d am: 215b99f3d2 am: e6b5c9ef56
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670071

Change-Id: I4be712b2085fa6123fad4005c5f7b8617cb2e9e0
2021-04-12 20:59:09 +00:00
Paul Duffin
a4daf9ee74 Merge "Move generation of global hidden API flags to platform_bootclasspath" am: 26bd783d0b am: 3f13b50d6f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670072

Change-Id: Ic46e24de3f500d81f63bd9da67b9541741f1a192
2021-04-12 20:08:58 +00:00
Paul Duffin
e6b5c9ef56 Merge "Extract ruleToGenerateHiddenApiFlags" am: 690d5f2c7d am: 215b99f3d2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670071

Change-Id: I40995e074ad7a06642d84dcb87e1f0d1a5e59b4c
2021-04-12 20:08:31 +00:00
Paul Duffin
702210b804 Move generation of global hidden API flags to platform_bootclasspath
This change moves the generation of the global hidden API flags from
the singleton to the platform_bootclasspath module. It involves:
1. Moving the ruleToGenerateHiddenApiFlags to hiddenapi_modular.go.
2. Adding HiddenAPIAugmentationProperties to be used by the
   platform_bootclasspath type.
3. Moving the file paths into the platform-bootclasspath module
   definition in frameworks/base/boot/Android.bp.

The flagsRule is kept as a placeholder for now. The emptyFlagsRule is
also kept so that builds continue to work even when the frameworks/base
repository is not present.

Bug: 177892522
Test: verified that the out/soong/hiddenapi/... files are unchanged
      by this change
Change-Id: Idf4dd414a016831bfe04a01f93234c1c33819881
2021-04-12 11:04:24 +01:00
Paul Duffin
c6bb7cf8d7 Extract ruleToGenerateHiddenApiFlags
Extracts the code for creating the rule that creates the monolithic
hidden API flags file which is encoded into dex implementation jars.
This refactoring is in preparation for moving the functionality from
the hiddenapi_singleton into the platform_bootclasspath.

A follow up change will move the method into the new
hiddenapi_modular.go alongside the hiddenAPIAugmentationInfo as they
will both be used to perform hidden API processing for a
bootclasspath_fragment.

Bug: 177892522
Test: verified that the out/soong/hiddenapi/... files are unchanged
      by this change
Change-Id: I2729afa80cdfd2d1d4717365001648453d65632f
2021-04-12 11:04:09 +01:00