diff options
-rw-r--r-- | Android.bp | 33 | ||||
-rw-r--r-- | AndroidManifest.xml | 24 | ||||
-rw-r--r-- | AndroidManifestBase.xml | 39 | ||||
-rw-r--r-- | AndroidManifest_InProcess.xml | 30 | ||||
-rw-r--r-- | tests/Android.bp | 2 |
5 files changed, 99 insertions, 29 deletions
@@ -14,12 +14,11 @@ // limitations under the License. // -// Library including the network stack, used to compile the network stack app, or linked into the -// system server on devices that run the stack there -java_library { - name: "NetworkStackLib", +// Library including the network stack, used to compile both variants of the network stack +android_library { + name: "NetworkStackBase", sdk_version: "system_current", - installable: true, + min_sdk_version: "28", srcs: [ "src/**/*.java", ":framework-networkstack-shared-srcs", @@ -29,7 +28,24 @@ java_library { "netd_aidl_interface-java", "networkstack-aidl-interfaces-java", "datastallprotosnano", - ] + ], + 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", + 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_InProcess.xml", } // Updatable network stack packaged as an application @@ -40,9 +56,10 @@ android_app { certificate: "networkstack", privileged: true, static_libs: [ - "NetworkStackLib" + "NetworkStackBase" ], jarjar_rules: "jarjar-rules-shared.txt", - manifest: "AndroidManifest.xml", + // The permission configuration *must* be included to ensure security of the device required: ["NetworkStackPermissionStub"], + manifest: "AndroidManifest.xml", } diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 003f1e5..a90db11 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!-- /* - * Copyright (C) 2014 The Android Open Source Project + * Copyright (C) 2019 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. @@ -18,30 +18,14 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.networkstack" - android:sharedUserId="android.uid.networkstack" - android:versionCode="11" - android:versionName="Q-initial"> - <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> - <uses-permission android:name="android.permission.INTERNET" /> - <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> - <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" /> + android:sharedUserId="android.uid.networkstack"> <!-- Signature permission defined in NetworkStackStub --> <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> - <!-- Send latency broadcast as current user --> - <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> - <uses-permission android:name="android.permission.WAKE_LOCK" /> - <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> - <application - android:label="NetworkStack" - android:defaultToDeviceProtectedStorage="true" - android:directBootAware="true" - android:usesCleartextTraffic="true"> + <application> <service android:name="com.android.server.NetworkStackService"> <intent-filter> <action android:name="android.net.INetworkStackConnector"/> </intent-filter> </service> </application> -</manifest> +</manifest>
\ No newline at end of file diff --git a/AndroidManifestBase.xml b/AndroidManifestBase.xml new file mode 100644 index 0000000..621d30c --- /dev/null +++ b/AndroidManifestBase.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* + * Copyright (C) 2019 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:versionCode="11" + android:versionName="Q-initial"> + <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> + <uses-permission android:name="android.permission.INTERNET" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> + <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" /> + <!-- Send latency broadcast as current user --> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> + <application + android:label="NetworkStack" + android:defaultToDeviceProtectedStorage="true" + android:directBootAware="true" + android:usesCleartextTraffic="true"> + </application> +</manifest> diff --git a/AndroidManifest_InProcess.xml b/AndroidManifest_InProcess.xml new file mode 100644 index 0000000..48fcecd --- /dev/null +++ b/AndroidManifest_InProcess.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* + * Copyright (C) 2019 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.inprocess" + android:sharedUserId="android.uid.system" + android:process="system"> + <application> + <service android:name="com.android.server.NetworkStackService" android:process="system"> + <intent-filter> + <action android:name="android.net.INetworkStackConnector.InProcess"/> + </intent-filter> + </service> + </application> +</manifest>
\ No newline at end of file diff --git a/tests/Android.bp b/tests/Android.bp index e64f284..aadf99e 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -23,7 +23,7 @@ android_test { static_libs: [ "androidx.test.rules", "mockito-target-extended-minus-junit4", - "NetworkStackLib", + "NetworkStackBase", "testables", ], libs: [ |