Commit Graph

2576 Commits

Author SHA1 Message Date
Jooyung Han
39ee119de2 apex: respect filename property for apk-in-apex
android_app_import supports filename: property, which overrides .apk
filename.

Now, apex packaging rule respects it too.
(Previously, apex packaging ignored it)

Bug: 152163837
Test: m  (soong tests amended)
Change-Id: I72e2f1c923f4d01c42a87bf2232a025adca4c918
2020-04-06 21:25:06 +09:00
Przemysław Szczepaniak
2bce0e8002 Clean com.android.neuralnetworks APEX whitelist
Test: coral-userdebug build
Bug: 148593574
Change-Id: I1babea6c221dec1cd5364250d09f5ea541494942
Merged-In: I1babea6c221dec1cd5364250d09f5ea541494942
2020-04-06 12:05:53 +00:00
Przemysław Szczepaniak
e3842c49ef Clean com.android.neuralnetworks APEX whitelist
Test: coral-userdebug build
Bug: 148593574
Change-Id: I1babea6c221dec1cd5364250d09f5ea541494942
2020-04-06 12:59:33 +01:00
Treehugger Robot
4104db4d0d Merge changes from topic "no_whitelisting_apex_available" am: b9e4a3fdf4 am: bf4bc941a2 am: 678c8de79c am: 77fc7a3f3b am: a9b2c6855e
Change-Id: I8747bed86789a0cc7d16e9aa27683877b69364c3
2020-04-05 10:54:11 +00:00
Treehugger Robot
678c8de79c Merge changes from topic "no_whitelisting_apex_available" am: b9e4a3fdf4 am: bf4bc941a2
Change-Id: Ife369d5943e70b4d5a6836ca19d514dd1c38d658
2020-04-05 09:51:31 +00:00
Treehugger Robot
b9e4a3fdf4 Merge changes from topic "no_whitelisting_apex_available"
* changes:
  Remove some apex_available whitelist for the adbd APEX
  Make ndk_prebuilt_* be available to any apex
2020-04-05 09:10:47 +00:00
Jooyung Han
645874a39f Merge "Apex: support codenames for min_sdk_version" into rvc-dev am: 95148f607e am: 0091763e97 am: 3eb6dba2a4 am: 0826a4b03c
Change-Id: I8e4df132bca6f0eef58056461936a8cf45eb88b0
2020-04-05 01:41:26 +00:00
Jooyung Han
3eb6dba2a4 Merge "Apex: support codenames for min_sdk_version" into rvc-dev am: 95148f607e am: 0091763e97
Change-Id: I9e8f8a87c77105bd74b0f40be9d9861899006c9a
2020-04-05 01:02:18 +00:00
Jooyung Han
7e62fbe8e1 Merge "Apex: support codenames for min_sdk_version" into rvc-dev am: 95148f607e
Change-Id: Ib64f83d89dd7adeafa2b42bc81c7dd012fe13ff8
2020-04-05 00:32:30 +00:00
Jooyung Han
95148f607e Merge "Apex: support codenames for min_sdk_version" into rvc-dev 2020-04-05 00:14:37 +00:00
Bill Peckham
1c610cfed1 Include partition tag in apexkeys.txt.
The partition tag helps merge_target_files.py determine
which apexkeys.txt to select from the framework partial
target files and which to select from the vendor partial
target files. The partition tag is the pysical partition
name, for example, a system_ext module on a device where
system_ext is at system/system_ext has a system
partition tag.

Bug: 138942268
Change-Id: Ia07887b34f1aa77dae94ef23610dfef83c1a5849
Merged-In: Ia07887b34f1aa77dae94ef23610dfef83c1a5849
2020-04-02 17:15:47 +00:00
Jooyung Han
29e91d2121 Apex: support codenames for min_sdk_version
Apex can use codenames like "Q", "R" for its min_sdk_version property.
Also, cc_library can use codenames for its stubs.versions.

Bug: 152655956
Test: vendor/google/build/build_mainline_modules.sh
Change-Id: I077ad7b2ac5d90b4c8708921e43846206f05ba70
2020-04-02 23:26:41 +09:00
Jooyung Han
7556839772 Enforce apex.min_sdk_version for bundled builds
Previously, when Q-targeting apexes are bundled-built, they are built
against the latest stubs.

It was because unwinder is linked dynamically in R and APIs are provided
by libc while Q apexes should run on Q where libc doesn't provide those
APIs. To make Q apexes run on Q device, libc++ should be linked with
static unwinder. But, because libc++ with static unwinder may cause problem
on HWASAN build, Q apexes were built against the latest stubs for bundled
build.

However, Q apexes should be built against Q stubs.

Now, only for HWASAN builds, Q apexes are built against the latest stubs
(and native modules are not linked with static unwinder).

Bug: 151912436
Test: TARGET_SANITIZE=hwaddress m
      => Q apexes(media, resolv, ..) are linked with the latest stubs
      m
      => Q apexes are linked with Q stubs,
         and Q apexes' libc++ is linked with static unwinder
Merged-In: If32f1b547e6d93e3955c7521eec8aef5851f908c
Change-Id: If32f1b547e6d93e3955c7521eec8aef5851f908c
(cherry picked from commit 7406660685)

Exempt-From-Owner-Approval: cp from internal
Change-Id: If32f1b547e6d93e3955c7521eec8aef5851f908c
2020-04-02 03:34:30 +00:00
Colin Cross
82e192c3ae 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
2020-04-01 16:09:05 -07:00
Paul Duffin
a87b1b2272 Merge "Allow walkPayloadDeps visitor to control walk flow" am: 4ac530d4c7 am: 94d5ca9d38 am: becaaba147 am: 942bfc5709 am: 67086a042c
Change-Id: Icf85610f5b581743b3289a0e0037414cbe656c64
2020-04-01 19:20:49 +00:00
Paul Duffin
becaaba147 Merge "Allow walkPayloadDeps visitor to control walk flow" am: 4ac530d4c7 am: 94d5ca9d38
Change-Id: I85dbe29fdc5b71fa923a2583621ef713d1b151a0
2020-04-01 18:29:06 +00:00
Paul Duffin
4ac530d4c7 Merge "Allow walkPayloadDeps visitor to control walk flow" 2020-04-01 17:54:04 +00:00
Jooyung Han
a899301b5b Merge "Enforce apex.min_sdk_version for bundled builds" into rvc-dev am: 42d7718086 am: 0a48853ad2 am: 4d3b2e800f am: 949dfa04ad
Change-Id: Ib6e4e141da83f77a1b7cef7838584638debd986d
2020-04-01 16:34:38 +00:00
Jooyung Han
4d3b2e800f Merge "Enforce apex.min_sdk_version for bundled builds" into rvc-dev am: 42d7718086 am: 0a48853ad2
Change-Id: I9045cf6c2fe01739e745fac5a932b1f2b85bb290
2020-04-01 16:07:29 +00:00
Jooyung Han
d15e45afc1 Merge "Enforce apex.min_sdk_version for bundled builds" into rvc-dev am: 42d7718086
Change-Id: Ic8e957c4f52542b39a3a6b5f9e8d3f910fe61ca8
2020-04-01 15:52:33 +00:00
Jooyung Han
42d7718086 Merge "Enforce apex.min_sdk_version for bundled builds" into rvc-dev 2020-04-01 15:37:23 +00:00
Jiyong Park
1a050ee6ae Merge "Remove some apex_available whitelist" am: 1cda30e211 am: 41110b1cfb am: f689b0ec7c am: d61952ee3e am: fadf53ab9e
Change-Id: If622b5e02c5bf931f350f73ef9dab151b4e727d9
2020-04-01 13:58:05 +00:00
Jiyong Park
f689b0ec7c Merge "Remove some apex_available whitelist" am: 1cda30e211 am: 41110b1cfb
Change-Id: Ieb597a084b56fbd3a18636f528e9fb1b6a963541
2020-04-01 13:36:05 +00:00
Jiyong Park
1cda30e211 Merge "Remove some apex_available whitelist" 2020-04-01 13:03:10 +00:00
Paul Duffin
be5a5be549 Allow walkPayloadDeps visitor to control walk flow
Delegate the responsibility for determining whether the
walkPayloadDeps() should visit a child dependency to its do function.
This is needed to allow the visitor in checkApexAvailability() to avoid
checking the apex_available setting after crossing the APEX boundary.

Bug: 152878661
Test: m droid
Change-Id: If46a2f74b6eca670befc3aeae430650e85542346
2020-04-01 09:30:31 +01:00
Bill Peckham
446891c41a Merge "Include partition tag in apexkeys.txt." am: 0ad0e940c0 am: 525a0d1648 am: 0739dcaf61 am: 76150bc85c am: b0d71e1df4
Change-Id: Id9044dc443f7c10b39b5c4a9deecf7c5b610cbf1
2020-03-31 21:30:53 +00:00
Bill Peckham
0739dcaf61 Merge "Include partition tag in apexkeys.txt." am: 0ad0e940c0 am: 525a0d1648
Change-Id: I714cbb99d49d5e4f49e7a8a88ca1a2e400947fd6
2020-03-31 14:14:49 +00:00
Bill Peckham
0ad0e940c0 Merge "Include partition tag in apexkeys.txt." 2020-03-31 13:42:30 +00:00
Paul Duffin
9bfc84df43 Merge "Improve missing apex_available message" am: 4db3298d34 am: b0725e7dd0 am: 2b31dbcc56 am: 98dbef8262 am: ea479f649f
Change-Id: Ia3fb6c4cd876be273c98b7cc0665692c90e370de
2020-03-31 10:43:49 +00:00
Paul Duffin
76eb82f4d1 Merge "Split TestApexAvailable into separate tests" am: 33050c13c0 am: 20dbaf933b am: 20f73b22a2 am: db61da0c31 am: 8ea4ea1b71
Change-Id: Ie7c132730f3ca21c6cdf109ace68cce68aeb1fa9
2020-03-31 10:40:24 +00:00
Paul Duffin
2b31dbcc56 Merge "Improve missing apex_available message" am: 4db3298d34 am: b0725e7dd0
Change-Id: I22d65f68467dd0858361341da020b6e4866b7722
2020-03-31 09:40:05 +00:00
Paul Duffin
20f73b22a2 Merge "Split TestApexAvailable into separate tests" am: 33050c13c0 am: 20dbaf933b
Change-Id: I6da80e1b249f55a042f1f7f0d8dd97aafc823440
2020-03-31 09:39:54 +00:00
Bill Peckham
fff3f8a3f8 Include partition tag in apexkeys.txt.
The partition tag helps merge_target_files.py determine
which apexkeys.txt to select from the framework partial
target files and which to select from the vendor partial
target files. The partition tag is the pysical partition
name, for example, a system_ext module on a device where
system_ext is at system/system_ext has a system
partition tag.

Bug: 138942268
Change-Id: Ia07887b34f1aa77dae94ef23610dfef83c1a5849
2020-03-30 22:33:50 +00:00
Paul Duffin
df915ff3db Improve missing apex_available message
The apex available check can traverse quite a long path (5+ steps) to
get from the apex to a module that is missing the apex from its
apex_available property. Understanding where that dependency came from
can often require examining the dependency path which can be difficult.
This change adds the path to the error to simplify that process.

Test: m nothing
Bug: 152762638
Change-Id: Ic4eb169dc2026cd8339d49e23b25d6d1c3879750
2020-03-30 18:43:39 +01:00
Paul Duffin
e52e66fba0 Split TestApexAvailable into separate tests
Having multiple tests within one method makes debugging specific
failures more difficult so this change split the TestApexAvailable
test into multiple separate tests.

Test: m nothing
Bug: 152762638
Change-Id: I2b2408ef515fd79c078686ef29a6ee8fb0407e7e
2020-03-30 18:43:39 +01:00
Jiyong Park
285b47fd33 Don't run apex_available check for coverage builds am: 58d1090032 am: 774baea1fc am: a0b7fdee67 am: bbf10c4486 am: 0cb3ee8a9e
Change-Id: Ie6cd124402c7e5e59faa115471c9662aeffb7111
2020-03-30 06:39:01 +00:00
Jiyong Park
a0b7fdee67 Don't run apex_available check for coverage builds am: 58d1090032 am: 774baea1fc
Change-Id: I429a4e7edea72cdbb160d120ce85d921c185e9d7
2020-03-30 05:59:21 +00:00
Jiyong Park
58d1090032 Don't run apex_available check for coverage builds
Coverage build adds extra dependencies for the runtime libs. Marking
them and their transitive dependenciese with apex_available doesn't make
any value; it instead adds noise.

Bug: 150999716
Test: m
Change-Id: I08e51cec1de6ded624ef9d4c41c1e5b2e611ff38
2020-03-28 14:43:19 +09:00
Jooyung Han
65d8a6262c Build VNDK APEX for VNDK-Lite
For VNDK-Lite devices, which doesn't define BOARD_VNDK_VERSION, VNDK
APEX is built with only VNDK-Sp libraries with core variants.

Bug: 141908078
Bug: 152353068
Bug: 151635128
Test: TH
Change-Id: I0d08d32473368fd158818d4c2c72fc4cfad68ce6
2020-03-27 23:23:32 +09:00
Jaewoong Jung
37ca4a1e0d Add code coverage support to android_app JNI libs.
This is a cherry-pick change.

Test: Built mainline module coverage data
Bug: 152117890
Change-Id: I47bf3e5d6e78c4518729bdb52616e248156d3cec
Merged-In: I47bf3e5d6e78c4518729bdb52616e248156d3cec
2020-03-27 13:06:12 +00:00
Jaewoong Jung
df2ca84d36 Add code coverage support to android_app JNI libs. am: 87a33e72bc am: 7cbeeac835 am: 2bfe446496 am: 5be2136a35 am: d439c4c536
Change-Id: I4e66ebbeaddd6e3a22c8fd95dbf48a4a135b9542
2020-03-27 06:04:28 +00:00
Jaewoong Jung
2bfe446496 Add code coverage support to android_app JNI libs. am: 87a33e72bc am: 7cbeeac835
Change-Id: I910ed1a4ecd0c45f81d7ac555ee6cd4f6967aded
2020-03-27 05:13:24 +00:00
Jaewoong Jung
87a33e72bc Add code coverage support to android_app JNI libs.
Test: Built mainline module coverage data
Bug: 152117890
Change-Id: I47bf3e5d6e78c4518729bdb52616e248156d3cec
2020-03-27 01:39:54 +00:00
Jooyung Han
7406660685 Enforce apex.min_sdk_version for bundled builds
Previously, when Q-targeting apexes are bundled-built, they are built
against the latest stubs.

It was because unwinder is linked dynamically in R and APIs are provided
by libc while Q apexes should run on Q where libc doesn't provide those
APIs. To make Q apexes run on Q device, libc++ should be linked with
static unwinder. But, because libc++ with static unwinder may cause problem
on HWASAN build, Q apexes were built against the latest stubs for bundled
build.

However, Q apexes should be built against Q stubs.

Now, only for HWASAN builds, Q apexes are built against the latest stubs
(and native modules are not linked with static unwinder).

Bug: 151912436
Test: TARGET_SANITIZE=hwaddress m
      => Q apexes(media, resolv, ..) are linked with the latest stubs
      m
      => Q apexes are linked with Q stubs,
         and Q apexes' libc++ is linked with static unwinder
Change-Id: If32f1b547e6d93e3955c7521eec8aef5851f908c
2020-03-27 02:58:20 +09:00
Jooyung Han
c3e9263d7e Pass min_sdk_version to cc __ANDROID_SDK_VERSION__
The macro is required only for apex variants regardless of useVndk.
Before the enforcement of LLNDK sdk version, the macro was not passed to
vendor variants.

Bug: 151689896
Test: TARGET_BUILD_APPS=com.android.media.swcodec m
      libbase in swcodec apex is linked with liblog#29
      (compiled with __ANDROID_SDK_VERSIO__=29)

Merged-In: I57fa4afe027eb39b98bd94d534be9ebe11713f19
Change-Id: I57fa4afe027eb39b98bd94d534be9ebe11713f19
(cherry picked from commit 24282778ee)

Exempt-From-Owner-Approval: cp from aosp
2020-03-25 23:23:26 +00:00
Jooyung Han
9728dd4eaf Merge changes from topic "reland-llndk-sdk-enforcement" am: eb4d9f2d68 am: 3f8aaea79f am: 3881983549 am: fa739f632a am: 0f4f4ed9d9
Change-Id: Ie615262524664d8766d27493f03877fa767bd109
2020-03-25 02:04:40 +00:00
Jooyung Han
67a96cd7cb Enforce min_sdk_version of apex(use_vendor:true)
Even though use_vendor:true is prohibited, there is media.swcodec apex
which is still use_vendor: true and also needs to support Android10.
(min_sdk_version: 29)

Because LLNDK stubs were provided only for the current VNDK version,
media.swcodec couldn't be built against min_sdk_version: 29.

This change introduces additional versions for LLNDK stubs which are
enforced when an apex with use_vendor: true sets min_sdk_version.

To make things easier, the versions of LLNDK stubs are borrowed from its
implementation libraries.

Bug: 147450930
Bug: 149591522
Test: TARGET_BUILD_APPS=com.android.media.swcodec m
      (with min_sdk_version: 29 set)
      check if liblog/libc/libm/libdl stubs are 29
      check if 29 stubs don't have new symbols.

Merged-In: I79946cbb4da6617138a96d2b254349d3a298e77b
Change-Id: I79946cbb4da6617138a96d2b254349d3a298e77b
(cherry picked from commit 380fc3615c)
2020-03-25 10:40:41 +09:00
Jooyung Han
3881983549 Merge changes from topic "reland-llndk-sdk-enforcement" am: eb4d9f2d68 am: 3f8aaea79f
Change-Id: Ie791157f1519ac2c88cd5470442df7435c2df994
2020-03-25 01:22:38 +00:00
Jooyung Han
0571adbe9b Merge "Revert "Enforce min_sdk_version of apex(use_vendor:true)"" am: b1eb4d4a94 am: 8c6d452d3f am: a5ba838a84 am: b1ccc6ef11 am: 2cd2d23cd8
Change-Id: I2e9fa6462d12172bb9945e4b09ba08c9583cab36
2020-03-21 15:06:38 +00:00
Jooyung Han
24282778ee Pass min_sdk_version to cc __ANDROID_SDK_VERSION__
The macro is required only for apex variants regardless of useVndk.
Before the enforcement of LLNDK sdk version, the macro was not passed to
vendor variants.

Bug: 151689896
Test: TARGET_BUILD_APPS=com.android.media.swcodec m
      libbase in swcodec apex is linked with liblog#29
      (compiled with __ANDROID_SDK_VERSIO__=29)

Change-Id: I57fa4afe027eb39b98bd94d534be9ebe11713f19
2020-03-21 23:29:59 +09:00