diff options
author | Remi NGUYEN VAN <reminv@google.com> | 2020-01-16 13:48:38 +0900 |
---|---|---|
committer | Remi NGUYEN VAN <reminv@google.com> | 2020-01-30 18:51:45 +0900 |
commit | 16fe4543a2dd6392b9104612d35370adf44ffec6 (patch) | |
tree | 9301ff4ed3ca34ecc695ad32d3a4807f31b24f39 | |
parent | ef60e4614540d3c9974c259b7cf98e2f84f24efd (diff) |
Update NetworkStack, NetworkStackNext SDK versions
Set NetworkStackNext version to 300000000: it effectively targets R
APIs, so as per the version scheme, the leading digits should be 30 and
not 29.
This prevents accidental updates of NetworkStackNext with NetworkStack,
as R devices should stay on NetworkStackNext to provide test coverage
for new R APIs.
Set min_sdk_version and target_sdk_version to 29 on targets that build
against stable SDK.
Remove the above attributes on targets that build against current SDK;
the build system will automatically assign the appropriate min_sdk and
target_sdk for those.
This change also changes TestNetworkStackLib to use the release API
level instead of the development API level. This makes the tests closer
to the updates that are shipped, although it prevents the integration
tests from exercising development API-only logic. This is necessary as
the tests cannot both be compatible with stable API devices, and depend
on an android_library with a development min_sdk.
Test: aapt dump badging shows the new values for NetworkStack,
and for NetworkStackNext: NetworkStackNext has min_sdk and
target_sdk "R", NetworkStack is 29.
atest NetworkStackIntegrationTests FrameworksNetIntegrationTests
Change-Id: I9daed95697d21fb79af2514bbb0abc57bc6a4b5e
-rw-r--r-- | Android.bp | 57 | ||||
-rw-r--r-- | AndroidManifest.xml | 3 | ||||
-rw-r--r-- | AndroidManifest_InProcess.xml | 1 |
3 files changed, 39 insertions, 22 deletions
@@ -21,7 +21,7 @@ // NetworkStackAndroidLibraryDefaults <-- common defaults for android libs // / \ // +NetworkStackApiStableShims --> / \ <-- +NetworkStackApiCurrentShims -// +NetworkStackApiStableLevel / \ +NetworkStackApiCurrentLevel +// +NetworkStackReleaseApiLevel / \ +NetworkStackDevApiLevel // +jarjar apistub.api[latest].* / \ +module src/ // to apistub.* / \ // / \ @@ -34,7 +34,7 @@ // | <-- +NetworkStackAppDefaults --> | // | (APK build params) | // | | -// | <-- +NetworkStackApiStableLevel | <-- +NetworkStackApiCurrentLevel +// | <-- +NetworkStackReleaseApiLevel | <-- +NetworkStackDevApiLevel // | | // | | // NetworkStackApiStable NetworkStack, InProcessNetworkStack, <-- APKs @@ -42,15 +42,15 @@ // Common defaults to define SDK level java_defaults { - name: "NetworkStackApiCurrentLevel", + name: "NetworkStackDevApiLevel", sdk_version: "system_current", - min_sdk_version: "28", } java_defaults { - name: "NetworkStackApiStableLevel", + name: "NetworkStackReleaseApiLevel", sdk_version: "system_29", - min_sdk_version: "28", + min_sdk_version: "29", + target_sdk_version: "29", } // Filegroups for the API shims @@ -101,7 +101,7 @@ java_defaults { // there eventually), and to use the compat shim as fallback on older devices. android_library { name: "NetworkStackApiCurrentLib", - defaults: ["NetworkStackApiCurrentLevel", "NetworkStackAndroidLibraryDefaults"], + defaults: ["NetworkStackDevApiLevel", "NetworkStackAndroidLibraryDefaults"], srcs: [ ":NetworkStackApiCurrentShims", "src/**/*.java", @@ -114,14 +114,14 @@ android_library { // linking with the dependencies. java_library { name: "NetworkStackApiStableDependencies", - defaults: ["NetworkStackApiStableLevel", "NetworkStackAndroidLibraryDefaults"], + defaults: ["NetworkStackReleaseApiLevel", "NetworkStackAndroidLibraryDefaults"], srcs: [":NetworkStackApiStableShims"], jarjar_rules: "apishim/jarjar-rules-compat.txt", } android_library { name: "NetworkStackApiStableLib", - defaults: ["NetworkStackApiStableLevel"], + defaults: ["NetworkStackReleaseApiLevel"], srcs: [ "src/**/*.java", ":statslog-networkstack-java-gen-q", @@ -153,7 +153,7 @@ java_defaults { // Non-updatable network stack running in the system server process for devices not using the module android_app { name: "InProcessNetworkStack", - defaults: [ "NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], + defaults: [ "NetworkStackAppDefaults", "NetworkStackDevApiLevel"], static_libs: ["NetworkStackApiCurrentLib"], certificate: "platform", manifest: "AndroidManifest_InProcess.xml", @@ -165,13 +165,13 @@ android_app { required: ["PlatformNetworkPermissionConfig", "PlatformCaptivePortalLogin"], } -// Updatable network stack packaged as an application +// NetworkStack build targeting the current API release, for testing on in-development SDK android_app { name: "NetworkStackNext", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], + defaults: ["NetworkStackAppDefaults", "NetworkStackDevApiLevel"], static_libs: ["NetworkStackApiCurrentLib"], certificate: "networkstack", - manifest: "AndroidManifest.xml", + manifest: ":NetworkStackNextAndroidManifest", // The permission configuration *must* be included to ensure security of the device required: ["NetworkPermissionConfig"], } @@ -179,7 +179,7 @@ android_app { // Updatable network stack for finalized API android_app { name: "NetworkStack", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiStableLevel"], + defaults: ["NetworkStackAppDefaults", "NetworkStackReleaseApiLevel"], static_libs: ["NetworkStackApiStableLib"], certificate: "networkstack", manifest: "AndroidManifest.xml", @@ -190,8 +190,8 @@ android_app { // Android library to derive test APKs for integration tests android_library { name: "TestNetworkStackLib", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], - static_libs: ["NetworkStackApiCurrentLib"], + defaults: ["NetworkStackAppDefaults", "NetworkStackReleaseApiLevel"], + static_libs: ["NetworkStackApiStableLib"], manifest: "AndroidManifestBase.xml", } @@ -243,16 +243,37 @@ genrule { out: ["com/android/networkstack/metrics/NetworkStackStatsLog.java"], } +version_code_networkstack_next = "300000000" +version_code_networkstack_test = "999999999" + genrule { name: "NetworkStackTestAndroidManifest", srcs: ["AndroidManifest.xml"], out: ["TestAndroidManifest.xml"], - cmd: "sed 's/versionCode=\".*\"/versionCode=\"300000000\"/' $(in) > $(out)", + cmd: "sed -E 's/versionCode=\"[0-9]+\"/versionCode=\"" + + version_code_networkstack_test + + "\"/' $(in) > $(out)", + visibility: ["//visibility:private"], +} + +// genrule to modify the NetworkStack manifest for NetworkStackNext, which is the "next" version +// that builds against the "next", non-stable APIs. +// A genrule seems simpler than having yet another manifest to merge. The only elements that would +// change in the manifest are the version code, and the min/target SDK which are populated +// automatically on build with the current SDK. +genrule { + name: "NetworkStackNextAndroidManifest", + srcs: ["AndroidManifest.xml"], + out: ["NetworkStackNextAndroidManifest.xml"], + cmd: "sed -E 's/versionCode=\"[0-9]+\"/versionCode=\"" + + version_code_networkstack_next + + "\"/' $(in) > $(out)", + visibility: ["//visibility:private"], } android_app { name: "TestNetworkStack", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], + defaults: ["NetworkStackAppDefaults", "NetworkStackDevApiLevel"], static_libs: ["NetworkStackApiCurrentLib"], certificate: "networkstack", manifest: ":NetworkStackTestAndroidManifest", diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b1603d8..f68cdf9 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -22,9 +22,6 @@ android:versionCode="299900000" android:versionName="2019-09" > - - <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" /> - <!-- Permissions must be defined here, and not in the base manifest, as the network stack running in the system server process does not need any permission, and having privileged permissions added would cause crashes on startup unless they are also added to the diff --git a/AndroidManifest_InProcess.xml b/AndroidManifest_InProcess.xml index 723df09..41b2e86 100644 --- a/AndroidManifest_InProcess.xml +++ b/AndroidManifest_InProcess.xml @@ -20,7 +20,6 @@ package="com.android.networkstack.inprocess" android:sharedUserId="android.uid.system" android:process="system"> - <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> <application> <service android:name="com.android.server.NetworkStackService" android:process="system" |