summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"