Generate NetworkStackNext manifest from xml

Instead of a genrule, use an actual manifest merge with a separate
AndroidManifest_Next.xml for NetworkStackNext.

This is necessary as the tooling does not support injecting the train
version number to a genrule, it needs an actual manifest file.

Bug: 148907674
Test: m NetworkStackNext, diff aapt dump xmltree from parent build
Change-Id: I84d97e9108616cac1bd737dc0e4f250cc96a73da
diff --git a/Android.bp b/Android.bp
index 13eec44..91ed0ed 100644
--- a/Android.bp
+++ b/Android.bp
@@ -165,13 +165,21 @@
     required: ["PlatformNetworkPermissionConfig", "PlatformCaptivePortalLogin"],
 }
 
+// Pre-merge the AndroidManifest for NetworkStackNext, so that its manifest can be merged on top
+android_library {
+    name: "NetworkStackNextManifestBase",
+    defaults: ["NetworkStackAppDefaults", "NetworkStackDevApiLevel"],
+    static_libs: ["NetworkStackApiCurrentLib"],
+    manifest: "AndroidManifest.xml"
+}
+
 // NetworkStack build targeting the current API release, for testing on in-development SDK
 android_app {
     name: "NetworkStackNext",
     defaults: ["NetworkStackAppDefaults", "NetworkStackDevApiLevel"],
-    static_libs: ["NetworkStackApiCurrentLib"],
+    static_libs: ["NetworkStackNextManifestBase"],
     certificate: "networkstack",
-    manifest: ":NetworkStackNextAndroidManifest",
+    manifest: "AndroidManifest_Next.xml",
     // The permission configuration *must* be included to ensure security of the device
     required: ["NetworkPermissionConfig"],
 }
@@ -256,21 +264,6 @@
     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", "NetworkStackDevApiLevel"],