Commit Graph

4438 Commits

Author SHA1 Message Date
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
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
Paul Duffin
4a385f9987 Merge "Allow platform_bootclasspath to specify contributing fragments" am: 49ab1d38de am: 75e90d6974
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670067

Change-Id: Ib3304ee0007baf2518219472703407186e0bb95a
2021-04-08 21:07:08 +00:00
Paul Duffin
42418e09a2 Merge "Add dependencies from platform_bootclasspath to contents" am: d32118c5c4 am: 6caf7f9662
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1670066

Change-Id: I34fc991b5efafc5df447dc4fd783d1734d0737be
2021-04-08 21:07:02 +00:00
Paul Duffin
62d8c3b110 Allow platform_bootclasspath to specify contributing fragments
Adds the fragments property to the platform_bootclasspath to allow the
fragments that contribute to it to be specified.

Bug: 177892522
Test: m nothing
Change-Id: I14f83d9336f6984442c7315cc86dfdd0a0fd2d20
2021-04-08 18:53:04 +01:00
Paul Duffin
b432df9cda Add dependencies from platform_bootclasspath to contents
Adds a FinalDeps mutator to add dependencies from the
platform_bootclasspath to the configured boot jars which can be from
either the platform or any apex. It adds dependencies for every
configured boot jar, whether in ArtApexJars, BootJars or
UpdatableBootJars.

At the moment the dependencies are only used for testing purposes
but following changes will make more use of them.

Bug: 177892522
Test: m nothing
Change-Id: I981305bf45bc20539a3d36987252f490e2b885cc
2021-04-08 18:53:04 +01:00
Anton Hansson
aa963fda38 Merge "Fix bug in sdk_library string matching" am: f247ff73ae am: abde6d24d4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1665886

Change-Id: I5eb9be1a5cbc964f5bfe89077b381625d52f4de5
2021-04-08 10:36:03 +00:00
Anton Hansson
f247ff73ae Merge "Fix bug in sdk_library string matching" 2021-04-08 09:28:41 +00:00
Jiyong Park
9231537fe2 SdkSpec is fully using ApiLevel
Previously, SdkSpec was constructed only from the user string. It didn't
make use of the Config struct where information about the latest stable
SDK version, etc. is recorded. As a result, the build system couldn't
check if the sdk version "current" is referring to the in-development
(i.e.  not-yet-frozen) SDK version or the latest stable version.
"current" was always assumed to be in-development (IsPreview() returns
true) even when Platform_sdk_final == true.

As the first step for fixing that, this change requires
android.EarlyModuleContext to be passed when constructing SdkSpec from
the user string.

In the following changes, "current" will be mapped to either
FutureApiLevel (10000) or one of the FinalApiLevels() depending on
whether the platform SDK was finalized or not.

Bug: 175678607
Test: m
Change-Id: Ifea12ebf147ecccf12e7266dd382819806571543
2021-04-08 11:27:24 +09:00
Paul Duffin
2f71f4eee9 Merge "Update build to new location of hiddenapi config files" am: 5bdc83c20a am: 327f943a36
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1664025

Change-Id: I2549952a328411d0a1c70c80a5e3d3419d3ff2b5
2021-04-07 16:37:31 +00:00
Paul Duffin
5bdc83c20a Merge "Update build to new location of hiddenapi config files" 2021-04-07 15:52:06 +00:00
Anton Hansson
08f476bf83 Fix bug in sdk_library string matching
- The public stubs were being matched against the string ".stubs.public"
  which was never the suffix that these stubs used
- Remove obsolete naming pattern matching

Test: m
Change-Id: I1f7bd54e4629f42e34fb3c09828d8853813ba2a7
2021-04-07 15:39:58 +01:00
Paul Duffin
d9749fc553 Merge "Remove hidden API special handling of android.test.base" am: 4896da1444 am: bd8ceee02b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1665745

Change-Id: Ica9417c42d2c597872e133410de007f7f1f33478
2021-04-07 13:25:48 +00:00
Paul Duffin
4896da1444 Merge "Remove hidden API special handling of android.test.base" 2021-04-07 12:27:16 +00:00
Pedro Loureiro
522dab8b8f Merge "Update soong for new lint version" am: 9537d594ce am: 50023a5a40
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1664033

Change-Id: I6136fe27fb141dc2816809c43a6b122c49f024ba
2021-04-07 10:18:30 +00:00
Paul Duffin
73057c5172 Merge changes I45274836,I47268b81 am: de21202bd2 am: 6c9d9bd3b1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1665746

Change-Id: I54195a9d8abc4fc7b835ea89f20e7e9e643ddb2c
2021-04-07 10:18:19 +00:00
Pedro Loureiro
9537d594ce Merge "Update soong for new lint version" 2021-04-07 09:30:06 +00:00
Paul Duffin
b5933f64e4 Remove hidden API special handling of android.test.base
The android.test.base module should never be on the bootclasspath.

Bug: 184331423
Test: m droid
Change-Id: Ibb963b4ce2d915d0205fb1b5a7ca9159a5c99b3f
2021-04-07 10:06:31 +01:00
Paul Duffin
de21202bd2 Merge changes I45274836,I47268b81
* changes:
  Add PrebuiltNameFromSource
  Add IsModulePreferred
2021-04-07 09:04:18 +00:00
Treehugger Robot
a93181a2a6 Merge "Make lint HTML output deterministic" am: 27d220662f am: 49f37cda8a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1665060

Change-Id: I654594507b7d26e8ef357c78b149fbe3bd606233
2021-04-07 00:32:15 +00:00
Treehugger Robot
27d220662f Merge "Make lint HTML output deterministic" 2021-04-06 23:14:10 +00:00
Paul Duffin
864116ce3f Add PrebuiltNameFromSource
Bug: 177892522
Test: m nothing
Change-Id: I45274836d59adbd6b2a2a848705b189398f1e766
2021-04-06 21:20:58 +01:00
Paul Duffin
e1d3837645 Add IsModulePreferred
Bug: 177892522
Test: m nothing
Change-Id: I47268b81359d6fceb60e899a730b3b6034e09814
2021-04-06 21:18:34 +01:00
Treehugger Robot
855b5768cc Merge "Set the usesNonSdk manifest attribute whan targeting module SDKs." am: 4238c5fe07 am: c952e7fad6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1657320

Change-Id: Id9f34cbaf176160d68b31bf63e92c5144ecefea9
2021-04-06 19:29:20 +00:00
Treehugger Robot
4238c5fe07 Merge "Set the usesNonSdk manifest attribute whan targeting module SDKs." 2021-04-06 18:25:12 +00:00
Pedro Loureiro
70acc3dc0c Update soong for new lint version
Test: m nothing
Change-Id: Iaa9d37ef73f1fef5f2dbb8a840e774bb86c65bf7
2021-04-06 17:49:19 +00:00
Paul Duffin
aa73ae5b59 Update build to new location of hiddenapi config files
Bug: 179354495
Test: m nothing
Change-Id: I563237d46f35ae1d2b99ffaa93f77dfcef5a2b6e
2021-04-06 13:08:26 +01:00
Treehugger Robot
a7fe23c458 Merge changes Id33bf640,I4d67b9b9 am: 8c56183fb7 am: b17e061ae9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1663139

Change-Id: I0128e2d5bf70a7cce8b16b78a62434c819b09de4
2021-04-06 04:42:35 +00:00
Treehugger Robot
8c56183fb7 Merge changes Id33bf640,I4d67b9b9
* changes:
  Don't use incorrect version names like VER or BOARD even in tests
  SdkSpec = Scope + ApiLevel
2021-04-06 03:18:16 +00:00
Colin Cross
ee4a8b7070 Make lint HTML output deterministic
Remove a date from the lint HTML output to make it deterministic.

Bug: 183509050
Test: m out/soong/.intermediates/packages/apps/DocumentsUI/DocumentsUI/android_common/lint/lint-report.html
Change-Id: I796c0b571780814b657b9427a17c248668053983
2021-04-05 18:38:05 -07:00
Colin Cross
f9b5ed2b8e Merge "Remove support for unsandboxed metalava" am: 7fef94f57b am: b60432e4c8
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1660772

Change-Id: I414edb7808f35e5db56edf6d1b0693cfe288b33d
2021-04-06 00:42:50 +00:00
Colin Cross
7fef94f57b Merge "Remove support for unsandboxed metalava" 2021-04-05 23:23:00 +00:00
Lorenzo Colitti
fa9b3f30fd Set the usesNonSdk manifest attribute whan targeting module SDKs.
From an ART perspective, calling module-lib APIs requires the
ability to bypass hiddenapi enforcement entirely. This CL ensures
that if an APK compiles against module-lib APIs, it will be able
to call those APIs. Currently, compiling against module-lib APIs
is not safe because APKs that are subject to hiddenapi protection
will crash at runtime.

Bug: 181309531
Test: made NetworkStackNext compile against module-current, and:
Test: aapt dump xmltree .../NetworkStackNext.apk AndroidManifest.xml | grep usesNonSdk
Change-Id: I5ca3328c64412078d803e0e3ffa1d8383602416f
2021-04-05 22:53:41 +09:00
Jiyong Park
54105c48f4 SdkSpec = Scope + ApiLevel
SdkSpec.Version was an int type. Now it becomes ApiLevel type which
is a better abstraction of the version (or api level).

Bug: 1655587
Test: m

Change-Id: I4d67b9b9eae45f653b6af4f5b73da9e091b3dfab
2021-04-05 09:32:06 +09:00
Jiyong Park
f19d2d57b3 Merge "Move java.sdkSpec to the android package" am: d4fa8fc107 am: 7ff95eca2f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1655587

Change-Id: I748c9c8d1eebacbd379121e32c54eff237ca0a80
2021-04-03 12:34:19 +00:00
Jiyong Park
f1691d2a2c Move java.sdkSpec to the android package
... in preparation for making the handling of sdk versions consistent
across java and cc modules.

Bug: 175678607
Test: m
Change-Id: I598f0454bce9b7320621022115412fbe97403945
2021-04-03 08:25:12 +09:00
Jaewoong Jung
4377971d03 Merge "Revert "Revert "Add min_sdk_version to java_import.""" am: d0afefa4b1 am: f7c8d8a746
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1663082

Change-Id: I42a5320bb4256b0d71e4060fb31ad01ac401dabb
2021-04-02 16:49:32 +00:00
Colin Cross
17fd50923a Merge "Silence kotlinc JDK9 warnings" am: 2fbc234fd6 am: 107c6aaef5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1656462

Change-Id: Iedea65d318cbec535244763b9a67569dada26600
2021-04-02 16:49:11 +00:00
Jaewoong Jung
d0afefa4b1 Merge "Revert "Revert "Add min_sdk_version to java_import.""" 2021-04-02 15:49:58 +00:00
Colin Cross
2fbc234fd6 Merge "Silence kotlinc JDK9 warnings" 2021-04-02 15:39:13 +00:00
Jaewoong Jung
56e12dbbaf Revert "Revert "Add min_sdk_version to java_import.""
This reverts commit 5ab6508008.

Reason for revert: Resubmitting Ie255f74d40432f4bdd0092d618705a7d17235e58 after fixing the broken targets.

Bug: 183695497
Test: https://android-build.googleplex.com/builds/forrest/run/L58600000849810513
Change-Id: I5f072f396002ca3a45bd530ad9be987efa732833
2021-04-02 04:55:27 +00:00
Julien Desprez
2781607d08 Merge "Remove tradefed static_lib heuristic" am: cb05715e9e am: d27a7fad3f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1638101

Change-Id: If068bf2977d8f202b013dbd408ba7192e10c8512
2021-04-02 04:45:45 +00:00
Julien Desprez
cb05715e9e Merge "Remove tradefed static_lib heuristic" 2021-04-02 03:47:13 +00:00
Jaewoong Jung
e790b69343 Merge "Revert "Add min_sdk_version to java_import."" am: 37a5d5ebd8 am: 7644361eef
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1663080

Change-Id: Id9a2c9d99d367d85ee2409d6f680f00dd567ca1e
2021-04-02 01:53:41 +00:00
Jaewoong Jung
37a5d5ebd8 Merge "Revert "Add min_sdk_version to java_import."" 2021-04-02 00:34:06 +00:00
Jaewoong Jung
5ab6508008 Revert "Add min_sdk_version to java_import."
This reverts commit 6d15d63556.

Reason for revert: Broke git_sc-mainline-prod on test_suites_x86_64

Fixes: 184305592
Change-Id: I4b2e2675e0dd9e2e84966f545a52f45d5b731bab
2021-04-02 00:17:59 +00:00