From 017fef23a0012bc82d98bd570c1b06734ed53dbf Mon Sep 17 00:00:00 2001 From: markchien Date: Tue, 27 Aug 2019 10:19:38 +0800 Subject: [PATCH] [Tether01] Add Tethering App This is initial patch that don't contain any service for now. Bug: 136040414 Test: -build, flash, boot Change-Id: I0b49d7e9c3fcba5af3025163f9cc9eafb0778116 --- packages/Tethering/Android.bp | 62 +++++++++++++++++++ packages/Tethering/AndroidManifest.xml | 29 +++++++++ packages/Tethering/AndroidManifestBase.xml | 29 +++++++++ .../Tethering/common/TetheringLib/Android.bp | 40 ++++++++++++ .../src/android/net/ITetheringConnector.aidl | 20 ++++++ packages/Tethering/proguard.flags | 1 + packages/Tethering/res/values/config.xml | 7 +++ services/net/Android.bp | 1 + 8 files changed, 189 insertions(+) create mode 100644 packages/Tethering/Android.bp create mode 100644 packages/Tethering/AndroidManifest.xml create mode 100644 packages/Tethering/AndroidManifestBase.xml create mode 100644 packages/Tethering/common/TetheringLib/Android.bp create mode 100644 packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl create mode 100644 packages/Tethering/proguard.flags create mode 100644 packages/Tethering/res/values/config.xml diff --git a/packages/Tethering/Android.bp b/packages/Tethering/Android.bp new file mode 100644 index 0000000000000..a8d3018bc1b3b --- /dev/null +++ b/packages/Tethering/Android.bp @@ -0,0 +1,62 @@ +// +// 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. +// + +java_defaults { + name: "TetheringAndroidLibraryDefaults", + platform_apis: true, + srcs: [ + "src/**/*.java", + ], + static_libs: [ + "androidx.annotation_annotation", + "tethering-client", + ], + manifest: "AndroidManifestBase.xml", +} + +// Build tethering static library, used to compile both variants of the tethering. +android_library { + name: "TetheringApiCurrentLib", + defaults: ["TetheringAndroidLibraryDefaults"], +} + +// Common defaults for compiling the actual APK. +java_defaults { + name: "TetheringAppDefaults", + platform_apis: true, + privileged: true, + resource_dirs: [ + "res", + ], + optimize: { + proguard_flags_files: ["proguard.flags"], + }, +} + +// Non-updatable tethering running in the system server process for devices not using the module +// TODO: build in-process tethering APK here. + +// Updatable tethering packaged as an application +android_app { + name: "Tethering", + defaults: ["TetheringAppDefaults"], + static_libs: ["TetheringApiCurrentLib"], + certificate: "networkstack", + manifest: "AndroidManifest.xml", + use_embedded_native_libs: true, + // The permission configuration *must* be included to ensure security of the device + required: ["NetworkPermissionConfig"], +} diff --git a/packages/Tethering/AndroidManifest.xml b/packages/Tethering/AndroidManifest.xml new file mode 100644 index 0000000000000..eb51593e45382 --- /dev/null +++ b/packages/Tethering/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/packages/Tethering/AndroidManifestBase.xml b/packages/Tethering/AndroidManifestBase.xml new file mode 100644 index 0000000000000..b9cac19943590 --- /dev/null +++ b/packages/Tethering/AndroidManifestBase.xml @@ -0,0 +1,29 @@ + + + + + + diff --git a/packages/Tethering/common/TetheringLib/Android.bp b/packages/Tethering/common/TetheringLib/Android.bp new file mode 100644 index 0000000000000..5b01b1e038c35 --- /dev/null +++ b/packages/Tethering/common/TetheringLib/Android.bp @@ -0,0 +1,40 @@ +// +// 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. +// + +// AIDL interfaces between the core system and the tethering mainline module. +aidl_interface { + name: "tethering-aidl-interfaces", + local_include_dir: "src", + srcs: [ + "src/android/net/ITetheringConnector.aidl", + ], + backend: { + ndk: { + enabled: false, + }, + cpp: { + enabled: false, + }, + }, +} + +java_library { + name: "tethering-client", + platform_apis: true, + static_libs: [ + "tethering-aidl-interfaces-java", + ], +} diff --git a/packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl b/packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl new file mode 100644 index 0000000000000..443481e33f8d8 --- /dev/null +++ b/packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl @@ -0,0 +1,20 @@ +/** + * 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 perNmissions and + * limitations under the License. + */ +package android.net; + +/** @hide */ +oneway interface ITetheringConnector { +} diff --git a/packages/Tethering/proguard.flags b/packages/Tethering/proguard.flags new file mode 100644 index 0000000000000..77fc024a8755e --- /dev/null +++ b/packages/Tethering/proguard.flags @@ -0,0 +1 @@ +#TBD diff --git a/packages/Tethering/res/values/config.xml b/packages/Tethering/res/values/config.xml new file mode 100644 index 0000000000000..37e679dbeb633 --- /dev/null +++ b/packages/Tethering/res/values/config.xml @@ -0,0 +1,7 @@ + + + + diff --git a/services/net/Android.bp b/services/net/Android.bp index 1ca96ed80e5e7..b0af599279451 100644 --- a/services/net/Android.bp +++ b/services/net/Android.bp @@ -5,6 +5,7 @@ java_library_static { "dnsresolver_aidl_interface-V2-java", "netd_aidl_interface-java", "networkstack-client", + "tethering-client", ], }