diff --git a/Tethering/Android.bp b/Tethering/Android.bp new file mode 100644 index 0000000000..a8d3018bc1 --- /dev/null +++ b/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/Tethering/AndroidManifest.xml b/Tethering/AndroidManifest.xml new file mode 100644 index 0000000000..eb51593e45 --- /dev/null +++ b/Tethering/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/Tethering/AndroidManifestBase.xml b/Tethering/AndroidManifestBase.xml new file mode 100644 index 0000000000..b9cac19943 --- /dev/null +++ b/Tethering/AndroidManifestBase.xml @@ -0,0 +1,29 @@ + + + + + + diff --git a/Tethering/common/TetheringLib/Android.bp b/Tethering/common/TetheringLib/Android.bp new file mode 100644 index 0000000000..5b01b1e038 --- /dev/null +++ b/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/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl b/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl new file mode 100644 index 0000000000..443481e33f --- /dev/null +++ b/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/Tethering/proguard.flags b/Tethering/proguard.flags new file mode 100644 index 0000000000..77fc024a87 --- /dev/null +++ b/Tethering/proguard.flags @@ -0,0 +1 @@ +#TBD diff --git a/Tethering/res/values/config.xml b/Tethering/res/values/config.xml new file mode 100644 index 0000000000..37e679dbeb --- /dev/null +++ b/Tethering/res/values/config.xml @@ -0,0 +1,7 @@ + + + +