Compile NetworkStack resources only once
The current build files would compile resources both for the
android_library and the android_app build rules, since the android_app
build rule resource_dirs default to ["res"]. Set resource_dirs to [] for
these build rules so that resources are only inherited from the
android_library.
Also refactor the build file using java_defaults to avoid repeating
configuration.
Test: flashed, boots, WiFi working
Bug: 127908503
Change-Id: Ie51dd1bd1a8ee5145e3f1b95beb1de59665b4c51
diff --git a/Android.bp b/Android.bp
index 8872147..c303180 100644
--- a/Android.bp
+++ b/Android.bp
@@ -14,11 +14,16 @@
// limitations under the License.
//
+java_defaults {
+ name: "NetworkStackCommon",
+ sdk_version: "system_current",
+ min_sdk_version: "28",
+}
+
// Library including the network stack, used to compile both variants of the network stack
android_library {
name: "NetworkStackBase",
- sdk_version: "system_current",
- min_sdk_version: "28",
+ defaults: ["NetworkStackCommon"],
srcs: [
"src/**/*.java",
":framework-networkstack-shared-srcs",
@@ -33,34 +38,32 @@
manifest: "AndroidManifestBase.xml",
}
-// Non-updatable in-process network stack for devices not using the module
-android_app {
- name: "InProcessNetworkStack",
- sdk_version: "system_current",
- min_sdk_version: "28",
- certificate: "platform",
+java_defaults {
+ name: "NetworkStackAppCommon",
+ defaults: ["NetworkStackCommon"],
privileged: true,
static_libs: [
"NetworkStackBase",
],
+ // Resources already included in NetworkStackBase
+ resource_dirs: [],
jarjar_rules: "jarjar-rules-shared.txt",
// The permission configuration *must* be included to ensure security of the device
required: ["NetworkStackPermissionStub"],
+}
+
+// Non-updatable network stack running in the system server process for devices not using the module
+android_app {
+ name: "InProcessNetworkStack",
+ defaults: ["NetworkStackAppCommon"],
+ certificate: "platform",
manifest: "AndroidManifest_InProcess.xml",
}
// Updatable network stack packaged as an application
android_app {
name: "NetworkStack",
- sdk_version: "system_current",
- min_sdk_version: "28",
+ defaults: ["NetworkStackAppCommon"],
certificate: "networkstack",
- privileged: true,
- static_libs: [
- "NetworkStackBase"
- ],
- jarjar_rules: "jarjar-rules-shared.txt",
- // The permission configuration *must* be included to ensure security of the device
- required: ["NetworkStackPermissionStub"],
manifest: "AndroidManifest.xml",
}