summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemi NGUYEN VAN <reminv@google.com>2020-01-16 13:48:38 +0900
committerRemi NGUYEN VAN <reminv@google.com>2020-01-30 18:51:45 +0900
commit16fe4543a2dd6392b9104612d35370adf44ffec6 (patch)
tree9301ff4ed3ca34ecc695ad32d3a4807f31b24f39
parentef60e4614540d3c9974c259b7cf98e2f84f24efd (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.bp57
-rw-r--r--AndroidManifest.xml3
-rw-r--r--AndroidManifest_InProcess.xml1
3 files changed, 39 insertions, 22 deletions
diff --git a/Android.bp b/Android.bp
index 54bea17..13eec44 100644
--- a/Android.bp
+++ b/Android.bp
@@ -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"