diff options
author | Remi NGUYEN VAN <reminv@google.com> | 2019-03-27 12:04:27 +0900 |
---|---|---|
committer | Remi NGUYEN VAN <reminv@google.com> | 2019-03-27 12:04:27 +0900 |
commit | ab08de3764a3fe5c7954cd631ee8b472c2477975 (patch) | |
tree | 7c7bb86948602b5f087aec0fa6ec49343484400d | |
download | NetworkPermissionConfig-ab08de3764a3fe5c7954cd631ee8b472c2477975.tar.gz |
Rename NetworkStackPermissionStub
Use NetworkStackPermissionConfig instead.
Also remove the source directory: soong now manages to build the package
without it.
Bug: 129317412
Test: Flashed, booted, WiFi working
(clean cherry-pick of aosp I45299c12598cd3b33bfd78ae8698d98b77b18dc0)
Change-Id: I7bdc058dddfa483823074055ad5c9d7d2efd37b9
-rw-r--r-- | Android.bp | 28 | ||||
-rw-r--r-- | AndroidManifest.xml | 40 | ||||
-rw-r--r-- | src/com/android/server/NetworkPermissionConfig.java | 26 |
3 files changed, 94 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..d0d3276 --- /dev/null +++ b/Android.bp @@ -0,0 +1,28 @@ +// +// 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. +// + +// Stub APK to define permissions for NetworkStack +android_app { + name: "NetworkPermissionConfig", + // TODO: mark app as hasCode=false in manifest once soong stops complaining about apps without + // a classes.dex. + srcs: ["src/**/*.java"], + platform_apis: true, + min_sdk_version: "28", + certificate: "networkstack", + privileged: true, + manifest: "AndroidManifest.xml", +} diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 0000000..34f987c --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,40 @@ +<?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.permissionconfig" + android:sharedUserId="android.uid.networkstack" + android:versionCode="11" + android:versionName="Q-initial"> + <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> + <!-- + This package only exists to define the below permissions, and enforce that they are only + granted to apps sharing the same signature. + Permissions defined here are intended to be used only by the NetworkStack: both + NetworkStack and this stub APK are to be signed with a dedicated certificate to ensure + that, with the below permissions being signature permissions. + + This APK *must* be installed, even if the NetworkStack app is not installed, because otherwise, + any application will be able to define this permission and the system will give that application + full access to the network stack. + --> + <permission android:name="android.permission.MAINLINE_NETWORK_STACK" + android:protectionLevel="signature"/> + + <application android:name="com.android.server.NetworkPermissionConfig"/> +</manifest> diff --git a/src/com/android/server/NetworkPermissionConfig.java b/src/com/android/server/NetworkPermissionConfig.java new file mode 100644 index 0000000..c904e23 --- /dev/null +++ b/src/com/android/server/NetworkPermissionConfig.java @@ -0,0 +1,26 @@ +/* + * 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. + */ + +package com.android.server; + +import android.app.Application; + +/** + * Empty application for NetworkPermissionConfig that only exists because + * soong builds complain if APKs have no source file. + */ +public class NetworkPermissionConfig extends Application { +} |