Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 255d4913 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

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
parent 9018b1ca
Loading
Loading
Loading
Loading
+10 −17
Original line number Diff line number Diff line
@@ -165,13 +165,21 @@ android_app {
    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 @@ genrule {
    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"],
+22 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
  -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.android.networkstack"
          android:sharedUserId="android.uid.networkstack"
          android:versionCode="300000000"
          android:versionName="R-next">
</manifest>