Commit Graph

2576 Commits

Author SHA1 Message Date
Jiyong Park
63a3883802 Dependencies of tests are also included in APEX am: af9539fd14 am: 7e191d264a
Change-Id: Id6647ba0c1531e0605e5cedf921d3b01908d1ff5
2020-05-04 09:02:03 +00:00
Ulyana Trafimovich
2aa8e0be11 Merge "Use two-column format for PRODUCT_BOOT_JARS components." 2020-05-04 08:57:47 +00:00
Jeongik Cha
5bc011b479 Remove networkstack-aidl-interfaces-unstable-java from the whitelist
networkstack-aidl-interfaces-*java has explicit apex_available now.
Accordingly, remove it from the whitelist

Bug: 133526962
Test: m nothing
Change-Id: If5427afb2470a7dffbd418e1c405af508577ad93
Merged-In: If5427afb2470a7dffbd418e1c405af508577ad93
2020-05-04 08:32:41 +00:00
Jiyong Park
af9539fd14 Dependencies of tests are also included in APEX
Shared lib dependencies of a test is included in the APEX regardless of
whether the test has test_per_srcs or not.

Bug: N/A
Test: m (apex_test.go amended)
Change-Id: I6b16843cc7467c42e250aba88d79d5580ba47324
2020-05-04 10:31:32 +09:00
Colin Cross
2a5fb91370 Merge changes from topic "sdk_version_variant" into rvc-dev
* changes:
  Add sdk mutator for native modules
  Require apps built against the SDK to use JNI built against the NDK
2020-05-02 01:41:18 +00:00
Nicolas Geoffray
b8bb5d05ce Merge "Fix dex2oat symlink now that we generate dex2oat32/dex2oat64." 2020-05-01 13:49:51 +00:00
Nicolas Geoffray
2d4b70eb52 Fix dex2oat symlink now that we generate dex2oat32/dex2oat64. am: 101a7622fe am: f3b2f97ce9 am: 90f6ee5a48 am: 038ff1da89
Change-Id: I63387672e83eb836af71436e36a20e113246a388
2020-05-01 10:50:48 +00:00
Nicolas Geoffray
90f6ee5a48 Fix dex2oat symlink now that we generate dex2oat32/dex2oat64. am: 101a7622fe am: f3b2f97ce9
Change-Id: I153659ff05274f9c2d13b9a0fe435ce3f313d263
2020-05-01 10:30:50 +00:00
Nicolas Geoffray
0ed5ce26a5 Fix dex2oat symlink now that we generate dex2oat32/dex2oat64. am: 101a7622fe
Change-Id: I7e6e14bef3a46edfddf521a63af0c7280d31073a
2020-05-01 10:15:29 +00:00
Nicolas Geoffray
d2a61c8752 Fix dex2oat symlink now that we generate dex2oat32/dex2oat64.
Test: m
Bug: 155257660
Change-Id: I466feabc64c0fb77fcf652be81bc0c4944b84ac0
Merged-In: I466feabc64c0fb77fcf652be81bc0c4944b84ac0
(cherry picked from commit 101a7622fe)
2020-05-01 11:04:59 +01:00
Ulya Trafimovich
50c4a4b19f Use two-column format for PRODUCT_BOOT_JARS components.
The first component is the apex name, or a special name "platform"
if the boot jar is a platform jar rather than a part of some apex.
This is a prerequisite change for moving core-icu4j to a separate
com.android.i18n apex.

Old one-column format is still supported, but all unqualified
components of PRODUCT_BOOT_JARS get "platform:" prepended to them
after reading the product makefiles.

Test: aosp_walleye-userdebug boots
Bug: 138994281
Change-Id: Ic229159fdcdaf6182210a53b63850a389dd786fc
2020-04-30 14:42:32 +01:00
Nicolas Geoffray
101a7622fe Fix dex2oat symlink now that we generate dex2oat32/dex2oat64.
Test: m
Bug: 155257660
Change-Id: I466feabc64c0fb77fcf652be81bc0c4944b84ac0
2020-04-29 12:00:41 +01:00
Treehugger Robot
ae9092f388 Merge "runtime_resource_overlay can be included in APEXes" am: c869812b04 am: 765dbb0b83 am: a65a304368 am: fc4e97916b am: eafc78fb66
Change-Id: I669aca1f6d56a02cb832252d462bd7c58460ff94
2020-04-28 18:45:09 +00:00
Treehugger Robot
a65a304368 Merge "runtime_resource_overlay can be included in APEXes" am: c869812b04 am: 765dbb0b83
Change-Id: Ia5f4e186891206912ae5cac5a7b29896a57ce1c6
2020-04-28 17:51:21 +00:00
Treehugger Robot
c869812b04 Merge "runtime_resource_overlay can be included in APEXes" 2020-04-28 17:13:26 +00:00
Jiyong Park
23ba7cc000 Merge "Add test_for property" into rvc-dev 2020-04-28 14:27:07 +00:00
Jiyong Park
69aeba9982 runtime_resource_overlay can be included in APEXes
runtime_resource_overlay is put to an APEX via 'apps' property. It is
placed under ./overlay directory in it.

Bug: 154822536
Test: m
Change-Id: I8edf4a26c26368c52fb7b327b2ecc829f21ea148
2020-04-28 22:55:54 +09:00
Jiyong Park
f0d01b7c98 Add test_for property
This change adds 'test_for' property to cc_test_* types. The property is
used to mark a module as a test for one or more APEXes, in which case
the module has accecss to the private part of the listed APEXes. For
example, the module is linked with the actrual shared library in the
APEX instead of the stub of the shared library.

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

Bug: 129539670
Bug: 153046163
Test: m
Merged-In: I45ed0d7a15540b0d69b2a3b8d9c4cb202adff6f2
(cherry picked from commit 62304bbeec)
Change-Id: I45ed0d7a15540b0d69b2a3b8d9c4cb202adff6f2
2020-04-28 21:35:40 +09:00
Jiyong Park
5088a2cbd5 Set apex_available property
The marked library(ies) were available to the APEXes via the
hand-written whitelist in build/soong/apex/apex.go. Trying to remove the
whitelist by adding apex_available property to the Android.bp of the
libraries.

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

Bug: 150999716
Test: m
Merged-In: I11a4e877ee27f7c55e2f00371c6fa58daedb1a9f
(cherry picked from commit 601d31c234)
Change-Id: I11a4e877ee27f7c55e2f00371c6fa58daedb1a9f
2020-04-28 21:08:58 +09:00
Dario Freni
5c22c5cbcf Merge "Allow building unsigned APEXs payload for testing." into rvc-dev am: 73b6c98e10 am: ccd4f112b1 am: 9a43aba0e9 am: 5211c1ceb6
Change-Id: Iea9f2897a4134efbf2b29991300dbb730fd6569e
2020-04-28 09:12:07 +00:00
Dario Freni
ccd4f112b1 Merge "Allow building unsigned APEXs payload for testing." into rvc-dev am: 73b6c98e10
Change-Id: Ie46b70b3125b430f4586fb67ec0868acc7066dfc
2020-04-28 07:33:35 +00:00
Dario Freni
73b6c98e10 Merge "Allow building unsigned APEXs payload for testing." into rvc-dev 2020-04-28 07:13:07 +00:00
Jooyung Han
31f0798a88 Merge "apex: file_contexts for override_apex flattened" into rvc-dev am: d5c7ad63ec am: 5cf94ce9dc am: d5175f7952 am: 4458ce273b
Change-Id: I50e293fec75e0fb1656ff35bee0e51e3182adf8b
2020-04-28 04:09:01 +00:00
Jooyung Han
d5175f7952 Merge "apex: file_contexts for override_apex flattened" into rvc-dev am: d5c7ad63ec am: 5cf94ce9dc
Change-Id: Iccd0bfb2ba19555407600b6feedb308c38e38ab7
2020-04-28 03:35:32 +00:00
Jooyung Han
7e00c13d0e Merge "apex: file_contexts for override_apex flattened" into rvc-dev am: d5c7ad63ec
Change-Id: I75cd5ce07f79f1ea4cee8791ed8cf3c9ddd22c0d
2020-04-28 03:19:19 +00:00
Jooyung Han
d5c7ad63ec Merge "apex: file_contexts for override_apex flattened" into rvc-dev 2020-04-28 03:03:26 +00:00
Jiyong Park
28cb10ea68 Merge "mark platform un-availability" into rvc-dev 2020-04-28 02:29:55 +00:00
Jiyong Park
6a9ddc37a9 mark platform un-availability
A module is marked unavailable for platform when 1) it does not have
"//apex_available:platform" in its apex_available property, or 2)
it depends on another module that is unavailable for platform.

In that case, LOCAL_NOT_AVAILABLE_FOR_PLATFORM is set to true for the
module in the Make world. Later, that flag is used to ensure that there
is no module with the flag is installed to the device.

The reason why this isn't entirely done in Soong is because Soong
doesn't know if a module will be installed to the device or not. To
explain this, let's have an example.

cc_test { name: "mytest", static_libs: ["libfoo"]}
cc_library_static { name: "libfoo", static_libs: ["libbar"]}
cc_library { name: "libbar", apex_available: ["com.android.xxx"]}

Here, libbar is not available for platform, but is used by libfoo which
is available for platform (apex_available defaults to
"//apex_available:platform"). libfoo is again depended on by mytest
which again is available for platform. The use of libbar should be
allowed in the context of test; we don't want to make libbar available
to platform just for the dependency from test because it will allow
non-test uses of the library as well.

Soong by itself can't tell whether libfoo and libbar are used only in the
context of a test. There could be another module depending them, e.g.,

cc_library_shared { name: "mylib", static_libs: ["libfoo"] }

can exist and it might be installed to the device, in which case
we really should trigger an error.

Since Make has the knowledge of what's installed and what's not,
the check should be done there.

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

Bug: 153073816
Test: m
Test: remove "//apex_available:platform" from libmdnssd (it is currently
installed to /system/lib), and check that `m system_image` fails

Merged-In: Ia304cc5f41f173229e8a154e90cea4dce46dcebe
(cherry picked from commit 89e850ab84)
Change-Id: Ia304cc5f41f173229e8a154e90cea4dce46dcebe
2020-04-28 09:27:24 +09:00
TreeHugger Robot
ba505df1c4 Merge "Remove libopus from apex_available whitelist" into rvc-dev 2020-04-27 23:54:39 +00:00
Colin Cross
01fd7ccbc7 Add sdk mutator for native modules
Compiling native modules against the NDK disables platform features
like ASAN.  For anything shipped on the system image there is no
reason to compile against the NDK.  Add a new mutator to Soong that
creates a platform and an SDK variant for modules that set
sdk_version, and ignore sdk_version for the platform variant.  The
SDK variant will be used for embedding in APKs that may be installed
on older platforms.  Apexes use their own variants that enforce
backwards compatibility.

Test: sdk_test.go
Test: TestJNIPackaging
Bug: 149591340
Change-Id: I7d72934aaee2e1326cc0ba5f29f51f14feec4521
Merged-In: I7d72934aaee2e1326cc0ba5f29f51f14feec4521
(cherry picked from commit 82e192c3ae)
2020-04-27 14:45:05 -07:00
Colin Cross
1c93c299fb Require apps built against the SDK to use JNI built against the NDK
Apps that expect to run on older platforms should use JNI libraries
that will also run on older platforms.  Require that apps that set
sdk_version have jni_libs modules that also set sdk_version, or
set jni_uses_platform_apis: true to bypass the check.

Fixes: 149591057
Test: app_test.go
Change-Id: I76b9b45fb5773bc4dfc10520108f4f3578723909
Merged-In: I76b9b45fb5773bc4dfc10520108f4f3578723909
2020-04-27 14:45:05 -07:00
Dario Freni
ca9133907f Allow building unsigned APEXs payload for testing.
Bug: 148447155
Test: built a testing apex with unsigned payload.
Merged-In: I95aa3f11ff1adc1421fcd7ed5a356ee531a0a818
Change-Id: I95aa3f11ff1adc1421fcd7ed5a356ee531a0a818
(cherry picked from commit 98410fd9d6)
2020-04-27 21:02:18 +01:00
Dario Freni
98410fd9d6 Allow building unsigned APEXs payload for testing.
Bug: 148447155
Test: built a testing apex with unsigned payload.
Change-Id: I95aa3f11ff1adc1421fcd7ed5a356ee531a0a818
2020-04-27 20:52:09 +01:00
Artur Satayev
8cf899afcc Ensure APEX's Java deps use stable SDKs.
Test: m
Bug: 153333044
Change-Id: Ib1acf3073e96fe23c92d292ec0b1a91e2cd408db
2020-04-27 19:16:40 +01:00
Treehugger Robot
26bd43073e Merge "mark platform un-availability" am: 01db260858 am: 547c6087df am: 8ffac4e19d am: b8b0c65e99 am: 11a8439fbd
Change-Id: Ib13f957a283fd44d66a1e9e8beca51bd8a9bb7bf
2020-04-27 13:39:26 +00:00
Jooyung Han
6bfc04369b apex: file_contexts for override_apex flattened
Make-var APEX_FILE_CONTEXTS_INFOS should contain entries for
override_apex modules. Otherwise flattened override_apex modules can't
be correctly labeled.

Bug: 154031888
Test: lunch gsi_gms_arm64-userdebug
      m file_contexts.bin
      check ../file_contexts.bin_intermediates/file_contexts.concat.tmp
      if it contains entries for override_apex
Change-Id: I60fc3da1def0f5fe14cfeef32a4c2a07a65b056e
2020-04-27 22:18:19 +09:00
Treehugger Robot
8ffac4e19d Merge "mark platform un-availability" am: 01db260858 am: 547c6087df
Change-Id: Ida786db81d3bd1db40cfc28b6f3a013425781345
2020-04-27 13:03:05 +00:00
Treehugger Robot
01db260858 Merge "mark platform un-availability" 2020-04-27 12:37:45 +00:00
Treehugger Robot
0157f7971f Merge "enforce updatable apexes to set min_sdk_version" am: 4783297585 am: 09ae364a54 am: 35d20b1a4f am: 53b853c22d am: 7959f55cf3
Change-Id: I3e7bd4c0ed95405b4f1b0262532233084746cdb7
2020-04-27 11:02:19 +00:00
Jooyung Han
ced674e0e2 enforce updatable apexes to set min_sdk_version
updatable APEXes should set min_sdk_version as well.

Bug: 152655956
Test: m
Merged-In: I8192086eb89fa958dd8ff1b731e43e24bf217ce2
Change-Id: I8192086eb89fa958dd8ff1b731e43e24bf217ce2
(cherry picked from commit 548640b55f)
2020-04-27 19:44:06 +09:00
Treehugger Robot
35d20b1a4f Merge "enforce updatable apexes to set min_sdk_version" am: 4783297585 am: 09ae364a54
Change-Id: I2b2ce7dfb1dfc9cf498a7ed26a158a61548016c0
2020-04-27 10:20:32 +00:00
Jooyung Han
8c3b035045 Remove libopus from apex_available whitelist
libopus sets its own apex_available property.

Bug: 150999716
Test: m
Merged-In: I4cff3ebb7e017a1fb629b18b72238acf3df0d26e
Change-Id: I4cff3ebb7e017a1fb629b18b72238acf3df0d26e
(cherry picked from commit 47db5adb06)
2020-04-27 18:27:59 +09:00
Jooyung Han
ec74f2d154 Merge "Revert "Apex: add NeverAllowRule for updatable"" into rvc-dev am: b6e5e512de am: 3800e0687d am: 5a7ccd3a5b am: 9b27398629
Change-Id: Ie5ce9329f0662fe03708f2dc0953ec268efe8c06
2020-04-27 08:38:43 +00:00
Jooyung Han
5a7ccd3a5b Merge "Revert "Apex: add NeverAllowRule for updatable"" into rvc-dev am: b6e5e512de am: 3800e0687d
Change-Id: I60d01b6c6c4a0b59845873ebbb4492cebf6e5ca3
2020-04-27 08:08:29 +00:00
Jooyung Han
cd5b550fdf Merge "Revert "Apex: add NeverAllowRule for updatable"" into rvc-dev am: b6e5e512de
Change-Id: I17009a86082db0c606228df8ae7840d33186b8fa
2020-04-27 07:44:43 +00:00
Jooyung Han
548640b55f enforce updatable apexes to set min_sdk_version
updatable APEXes should set min_sdk_version as well.

Bug: 152655956
Test: m
Change-Id: I8192086eb89fa958dd8ff1b731e43e24bf217ce2
2020-04-27 16:33:37 +09:00
Jooyung Han
b6e5e512de Merge "Revert "Apex: add NeverAllowRule for updatable"" into rvc-dev 2020-04-27 07:30:27 +00:00
Jooyung Han
cf75798d8f Revert "Apex: add NeverAllowRule for updatable"
This reverts commit e17caa63a6.

Reason for revert: rewrite this in ag/11250335 without neverallow

Bug: 152655956
Change-Id: I24436720056ac1b9878e37c2ee45c5806714f3e9
2020-04-27 07:30:10 +00:00
Jiyong Park
f5e15b30a7 Merge "Add test_for property" am: 70b5c21270 am: b739f8d870 am: a7ca0120ad am: dce3cbb95a am: 8225ac0776
Change-Id: Ia43de4316e1d870555af1d81bde0d3f4cec842ec
2020-04-27 01:34:58 +00:00
Jiyong Park
a7ca0120ad Merge "Add test_for property" am: 70b5c21270 am: b739f8d870
Change-Id: If02ebcfee4195fbac05dd0b902958236c5a6346d
2020-04-27 00:50:02 +00:00