summaryrefslogtreecommitdiff
path: root/Android.bp
diff options
context:
space:
mode:
Diffstat (limited to 'Android.bp')
-rw-r--r--Android.bp57
1 files changed, 39 insertions, 18 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",