Commit Graph

3309 Commits

Author SHA1 Message Date
Jooyung Han
4c8e3509ee Merge "Fix apex_available" 2020-03-10 23:53:41 +00:00
Jooyung Han
5e9013be22 Fix apex_available
Checking apex_available was missing some corner cases.
For example, the deps of share deps of cc_library modules are missed
while those from cc_library_shared are correctly tracked.

This was due to..

* calling DepIsInSameApex in WalkDeps: both work fine separately, but
when they are used together, it fails to work. It's due to how WalkDeps
works. (We might fix this bug too risky since it is used very widely)
* incorrect receiver for DepIsInSameApex in apex_deps mutator: receiver
is supposed to be parent, but child was used before. Interestingly lots
of deps are within the same group of module types(cc to cc, java to
java), it has worked. (note that receiver's DepIsInSameApex
implementation can be different).

This change fixes them by..

* walkPayloadDeps is now relying on ApexVariation, which is calculated
correctly by TopDown apex_deps mutator.
* use correct receiver for DepIsInSameApex in apex_deps mutator, which
requires for java.SdkLibrary to override the method and for
java.Library/Import to use passed dep instead of receiver to check its
membership of sdk.

Bug: 151071238
Test: build/boot
Change-Id: I0569ef4bb8e79635e4d97a89f421a8d8b7d26456
2020-03-10 23:52:01 +00:00
Paul Duffin
1ee6520b28 Remove special handling of com.android.art.debug/release
The whitelistedApexAvailable used to map references to
com.android.art.debug/release to com.android.art before looking it up
in the white list. This change removed that mapping and simply added
both to the white list.

Bug: 142935992
Test: m nothing
Change-Id: Ibad76fb73988688eb303e056197986ee9a6119ae
2020-03-10 21:52:32 +00:00
Treehugger Robot
04c93a40f1 Merge "DO NOT MERGE: Remove AppSearch from Android R." 2020-03-10 08:19:05 +00:00
Jiyong Park
65cc4f7777 Apex_available check failure reveals dependency
When the check for apex_available has failed, the build system now shows
the module that brought the unavailable module into the APEX.

Bug: 151051671
Test: m
Merged-In: Id1a3fda67fe56fdc2dc90ec800d10689415de4d6
(cherry picked from commit 7bd9444b0f)
Change-Id: Id1a3fda67fe56fdc2dc90ec800d10689415de4d6
2020-03-09 18:56:54 +09:00
Automerger Merge Worker
163da2de58 Merge "Apex_available check failure reveals dependency" into rvc-dev am: 5a3899b5c5 am: 0c9541f6f6 am: 6dd35a3215 am: 7a6b460571
Change-Id: Ib28418618839f2574a71c18632f82d7928cfd7f6
2020-03-09 09:47:16 +00:00
Automerger Merge Worker
6dd35a3215 Merge "Apex_available check failure reveals dependency" into rvc-dev am: 5a3899b5c5 am: 0c9541f6f6
Change-Id: I3b3ce6c8df1390fd12f8ac96468afb8544de17fe
2020-03-09 09:23:57 +00:00
Automerger Merge Worker
62cdc4ad57 Merge "Apex_available check failure reveals dependency" into rvc-dev am: 5a3899b5c5
Change-Id: I683d10496836a77d5140031daae27ac71a83c76f
2020-03-09 09:01:38 +00:00
Alexander Dorokhine
466d39a18c DO NOT MERGE: Remove AppSearch from Android R.
Test: presubmit
Bug: 150249538
Merged-In: I0a87b9d893bc76acf5ac5e8684f450b9a4f2a0cd
(cherry picked from commit c9c7116721)
Change-Id: I0a87b9d893bc76acf5ac5e8684f450b9a4f2a0cd
2020-03-09 15:14:42 +09:00
Jiyong Park
7bd9444b0f Apex_available check failure reveals dependency
When the check for apex_available has failed, the build system now shows
the module that brought the unavailable module into the APEX.

Bug: 151051671
Test: m
Change-Id: Id1a3fda67fe56fdc2dc90ec800d10689415de4d6
2020-03-09 14:29:18 +09:00
Jooyung Han
ccce2f2c23 Add __ANDROID_SDK_VERSION__=<ver> macro
sdk_version is passed for relevant variants.
If not specified or "current",
it maps to "10000" for platform variants, and
"min_sdk_version" of the apex for apex variants.

Bug: 150860940
Test: m (soong test)
      manually check build.ninja
Change-Id: I5102ab0c5086b5ad29d16ac45af55d32062167b4
2020-03-09 10:46:46 +09:00
Automerger Merge Worker
088ba44801 apex: choose stub according to min_sdk_version am: 03b5185b88 am: 5cf1805a44 am: 344ce5f777 am: 305ffc08d7 am: 964001b0be
Change-Id: I1d881aaca6f7121c277368ad3459485c10d52f56
2020-03-06 20:51:18 +00:00
Automerger Merge Worker
344ce5f777 apex: choose stub according to min_sdk_version am: 03b5185b88 am: 5cf1805a44
Change-Id: Ibe1984b4deaa0681a7339f871d8d3dc62072fe58
2020-03-06 20:13:50 +00:00
Jooyung Han
03b5185b88 apex: choose stub according to min_sdk_version
Native modules within APEX should be linked with proper stub version
according to its min_sdk_version.

For example, when min_sdk_version is set to "29", libfoo in the apex
would be linked to libbar of version 29 from platform, even if it has
a newer version like 30.

Bug: 145796956
Test: m nothing (soong tests)
Change-Id: I4a0b2002587bc24b7deeb5d59b6eeba5e1db5b1f
2020-03-07 03:12:45 +09:00
Automerger Merge Worker
0d2697146b DO NOT MERGE: Remove AppSearch from Android R. am: c9c7116721
Change-Id: I64870bfc6e92d288ef45ef1194a170ed44e70c2e
2020-03-06 09:37:42 +00:00
TreeHugger Robot
bc4df10016 Merge "DO NOT MERGE: Remove AppSearch from Android R." into rvc-dev 2020-03-05 21:09:00 +00:00
Colin Cross
7365eaafd5 Add min_sdk_version property to apexes
Add a min_sdk_version property apexes.  Currently a noop, but will
be used to enforce that dependencies are compatible with the
specified version.

Test: m checkbuild
Bug: 149591522
Merged-In: I923773c90fe15becbffae3986791aa9edde8f8f6
Change-Id: I923773c90fe15becbffae3986791aa9edde8f8f6
(cherry picked from commit 50317874ff)
2020-03-05 14:40:28 +09:00
Automerger Merge Worker
0540016c0d Merge "Always use "${codename}.${sha}" if UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true" into rvc-dev am: 307dd9f4a5 am: 1466c30540
Change-Id: I9bf20b0dc265391f53830caabdb1b8c91b0516e3
2020-03-04 22:16:37 +00:00
Automerger Merge Worker
aa977980e0 Merge "Always use "${codename}.${sha}" if UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true" into rvc-dev am: 307dd9f4a5
Change-Id: Ieef51877b11ba1637615245ab617e8f7a88fb128
2020-03-04 22:06:30 +00:00
Nikita Ioffe
1f4f345156 Always use "${codename}.${sha}" if UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true
Test: m checkbuild
Bug: 149733822
Change-Id: I3e1beeb721f7e87bc6adda61861fa962ec892360
Merged-In: I3e1beeb721f7e87bc6adda61861fa962ec892360
(cherry picked from commit 934c4f2acc)
2020-03-04 22:05:11 +00:00
Nikita Ioffe
307dd9f4a5 Merge "Always use "${codename}.${sha}" if UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true" into rvc-dev 2020-03-04 21:54:26 +00:00
Automerger Merge Worker
09dcb95a33 Merge "PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES is applicable to override_apex" into rvc-dev am: e95000a35e am: 195a3a8da8
Change-Id: I9c172c55535e2635fc08bb77cd2964817d251b04
2020-03-04 03:24:44 +00:00
Automerger Merge Worker
c115a6a26c Merge "PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES is applicable to override_apex" into rvc-dev am: e95000a35e
Change-Id: Ib559c4be2488e78174d0d744409b72724e248aca
2020-03-04 03:06:39 +00:00
Jiyong Park
20bacabe0b PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES is applicable to override_apex
apex { name: "foo" }
override_apex { name: "override_foo", base:"foo" }

PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES := foo:com.android.foo

Previously, the override was done only for the overridden package "foo",
but not for "override_foo". Fixing this issue by using ctx.ModuleName()
when finding the package name to use.

Exempt-From-Owner-Approval: cherry-pick from internal

Bug: 150645663
Test: m
Merged-In: I2947e5c75369216a4bbce8749503236be86771c3
(cherry picked from commit a519c54dd3)
Change-Id: I2947e5c75369216a4bbce8749503236be86771c3
2020-03-04 12:03:59 +09:00
Jiyong Park
e95000a35e Merge "PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES is applicable to override_apex" into rvc-dev 2020-03-04 02:50:48 +00:00
Automerger Merge Worker
d6f92db210 Merge "Make __ANDROID_APEX_<NAME>__ macro optional" am: 6efd3598c5 am: 2db5d65577
Change-Id: Ie3ef4fffa6f1b751e8e05daec16a21ed6b771ca4
2020-03-04 00:01:07 +00:00
Nikita Ioffe
934c4f2acc Always use "${codename}.${sha}" if UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true
Test: m checkbuild
Test: DIST_DIR=/tmp/r-on-q/prod/ TARGET_BUILD_VARIANT=userdebug \
  vendor/google/build/build_mainline_modules_prod.sh -j120
Test: DIST_DIR=/tmp/r-on-q/rsha/ TARGET_BUILD_VARIANT=userdebug \
  vendor/google/build/build_mainline_modules.sh -j120
Test: checked target sdk version is correct for both builds
Bug: 149733822
Change-Id: I3e1beeb721f7e87bc6adda61861fa962ec892360
2020-03-03 12:06:30 +00:00
Automerger Merge Worker
a30bd27515 Pass apex_build_info to bundle base.zip file am: 18423788cb
Change-Id: I443ca487c689a60d472209346a6399b6af1725b4
2020-03-03 11:28:00 +00:00
Jiyong Park
a519c54dd3 PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES is applicable to override_apex
apex { name: "foo" }
override_apex { name: "override_foo", base:"foo" }

PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES := foo:com.android.foo

Previously, the override was done only for the overridden package "foo",
but not for "override_foo". Fixing this issue by using ctx.ModuleName()
when finding the package name to use.

Bug: 150645663
Test: m
Change-Id: I2947e5c75369216a4bbce8749503236be86771c3
2020-03-03 11:45:41 +09:00
Dario Freni
18423788cb Pass apex_build_info to bundle base.zip file
Fix: 150077028
Test: manual inspection of com.android.wifi-base.zip
Change-Id: Id201a3410a46e0c88a77e6f88e5b85906c7a6c8b
2020-03-02 22:31:01 +00:00
Jooyung Han
c87a059c88 Make __ANDROID_APEX_<NAME>__ macro optional
This is rarely used feature but cost alot for the local build and build
inra.

Bug: 150506627
Test: m
Change-Id: Iec3ada4a97c7b228f2818563fa0e81b407f2715a
2020-03-02 17:44:33 +09:00
Automerger Merge Worker
44b9b1408d Runtime deps to a stubs lib crosses APEX boundary am: 323a4c3ab3 am: 695543b6d7
Change-Id: I2e48ed182174de136948b231b0ba423711ddac80
2020-03-02 00:48:40 +00:00
Jiyong Park
323a4c3ab3 Runtime deps to a stubs lib crosses APEX boundary
When there is a runtime depedency (via runtime_libs property) to a
library providing stable C APIs, the dependency is considered as
crossing APEX boundary. Therefore, the requested lib doesn't need to be
made available to the APEX where the requesting lib is in.

Bug: 147813447
Test: m
Change-Id: I9cf8a5877850fb85b92c851e15fac921b8b7641b
2020-03-01 17:29:06 +09:00
Jiyong Park
af8998cba6 bundle config contains (path,manifest) pairs of embedded APKs
If an APEX contains APKs and the manifest package name of the APKs are
overridden (either via override_android_app
orPRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES), that the path to the APK
(relative in the APEX) and the overridden manifest package name is
recorded in the bundle config file.

Exempt-From-Owner-Approval: cherry-pick from master

Bug: 148002117
Test: m

Merged-In: Ibb90bcefb77fa6b2dad77cb2facc6079de9ab154
(cherry picked from commit cfaa1643e8)
Change-Id: Ibb90bcefb77fa6b2dad77cb2facc6079de9ab154
2020-03-01 03:59:11 +00:00
Jiyong Park
d93e1b1e66 bundle config for apexes are auto-generated
bundle config file for apexes are auto-generated. It is included in the
<apex>-base.zip file, which is expected to be extracted and then fed
into the bundletool.

This change is in preparation for the upcoming change to include
information about embedded apks in the bundle confir file.

Exempt-From-Owner-Approval: cherry-pick from master

Bug: 148002117
Test: m

Merged-In: If25d75e0f62036dc777faf8593ed8eb9a74950b0
(cherry picked from commit bd15961043)
Change-Id: If25d75e0f62036dc777faf8593ed8eb9a74950b0
2020-03-01 03:56:51 +00:00
Automerger Merge Worker
3a58ea25c2 bundle config contains (path,manifest) pairs of embedded APKs am: cfaa1643e8 am: 9cb0071b9e
Change-Id: I1894098b8073f6ad0d83aa957a8bd4c149e904d2
2020-02-29 09:53:07 +00:00
Automerger Merge Worker
c62d85ffc9 bundle config for apexes are auto-generated am: bd15961043 am: 878e45861b
Change-Id: I81b00c7a680f8b5017eb299d2535690e74b68f30
2020-02-29 09:53:04 +00:00
Colin Cross
30ec3c97d2 Merge "Only dist apex sizes for checkbuild" into rvc-dev 2020-02-29 03:31:05 +00:00
Jiyong Park
cfaa1643e8 bundle config contains (path,manifest) pairs of embedded APKs
If an APEX contains APKs and the manifest package name of the APKs are
overridden (either via override_android_app
orPRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES), that the path to the APK
(relative in the APEX) and the overridden manifest package name is
recorded in the bundle config file.

Bug: 148002117
Test: m

Change-Id: Ibb90bcefb77fa6b2dad77cb2facc6079de9ab154
2020-02-29 09:07:46 +09:00
Jiyong Park
bd15961043 bundle config for apexes are auto-generated
bundle config file for apexes are auto-generated. It is included in the
<apex>-base.zip file, which is expected to be extracted and then fed
into the bundletool.

This change is in preparation for the upcoming change to include
information about embedded apks in the bundle confir file.

Bug: 148002117
Test: m

Change-Id: If25d75e0f62036dc777faf8593ed8eb9a74950b0
2020-02-29 09:07:08 +09:00
Colin Cross
cd33fa2668 Only dist apex sizes for checkbuild
Using $(call dist-for-goals,droidcore,...) for every apex
installed-files.txt causes every apex to be built for all builds,
causing a signficiant regression in build time.  For now only
dist them in checkbuilds, which were going to build all of them
anyways.

Ideally we would like to dist the installed-files.txt only if
the apex was already built, but there is not currently a way to
express that.

Test: treehugger
Bug: 149979076
Change-Id: I21edbc90980f94ad6d497cb86ee80223dd782fe1
Merged-In: I21edbc90980f94ad6d497cb86ee80223dd782fe1
(cherry picked from commit 1c85e8e019)
2020-02-28 10:43:10 -08:00
Automerger Merge Worker
d8c70e3f73 Merge "Add "jni_libs" property to apex module" am: c6e538406c am: 77de0c97a0
Change-Id: Ic6c20b4b5e8334f6fe5532f6da3d29797731620c
2020-02-28 17:32:43 +00:00
Automerger Merge Worker
eed20ed32a Merge changes I789b526c,Ie15c811f am: 6e147e4f54 am: 450510faa7
Change-Id: I5e1d927f6f586010ef59d5f3ff1c14b6273bf8f4
2020-02-28 17:32:35 +00:00
Jooyung Han
c6e538406c Merge "Add "jni_libs" property to apex module" 2020-02-28 17:12:53 +00:00
Jooyung Han
6e147e4f54 Merge changes I789b526c,Ie15c811f
* changes:
  apex: refactor apex properties
  apex: fix a test util (ensureExactContent)
2020-02-28 17:08:45 +00:00
Jiyong Park
0ffa3aba78 Merge "No symlink for host APEXes" 2020-02-27 23:56:24 +00:00
Automerger Merge Worker
d47d7d4076 Merge "Only dist apex sizes for checkbuild" am: 2d4b8d2188 am: dde07924cb
Change-Id: I1d15b5082255ea4653b7acebe3caa92a7918317e
2020-02-27 21:46:56 +00:00
Jooyung Han
643adc4896 Add "jni_libs" property to apex module
Which is the list of JNI libraries that are embeded inside the apex.
jni_libs is handled just like native_shared_libs except that it is
stored in apex_manifest.

When linkerconfig finds an apex with JNI libs, it exposes the namespace
for the apex as visible so that libnativeloader can link the namespace
to the corresponding classloader-namespace.

Bug: 149363889
Test: m nothing(runs soong test)
Change-Id: I52ebe38b44545e6e8853e34a3404a235c858112a
2020-02-27 13:50:06 +09:00
Jooyung Han
01a868d096 apex: refactor apex properties
Embed common properties (apexNativeDependencies) so that the logic for
adding dependencies for native modules can be reused.

Bug: N/A
Test: m

Change-Id: I789b526c09eea14213ab1544590ed2238ed8c625
2020-02-27 13:45:14 +09:00
Jooyung Han
e6436d7bf0 apex: fix a test util (ensureExactContent)
ensureExactContent shouldn't return immediately when it finds a match
from expected list of files.

Bug: N/A
Test: m nothing
Change-Id: Ie15c811f9cfcae7ede28dee0fcf203cee24659a0
2020-02-27 13:31:56 +09:00