diff --git a/Tethering/Android.bp b/Tethering/Android.bp index a7ae21acbd..06a1f11a8a 100644 --- a/Tethering/Android.bp +++ b/Tethering/Android.bp @@ -19,9 +19,13 @@ package { } java_defaults { - name: "TetheringAndroidLibraryDefaults", + name: "TetheringApiLevel", sdk_version: "module_current", min_sdk_version: "30", +} + +java_defaults { + name: "TetheringAndroidLibraryDefaults", srcs: [ "apishim/**/*.java", "src/**/*.java", @@ -30,7 +34,6 @@ java_defaults { ":services-tethering-shared-srcs", ], static_libs: [ - "NetworkStackApiStableShims", "androidx.annotation_annotation", "modules-utils-build", "modules-utils-statemachine", @@ -54,16 +57,35 @@ java_defaults { manifest: "AndroidManifestBase.xml", } -// Build tethering static library, used to compile both variants of the tethering. +// build tethering static library, used to compile both variants of the tethering. android_library { name: "TetheringApiCurrentLib", - defaults: ["TetheringAndroidLibraryDefaults"], + defaults: [ + "TetheringAndroidLibraryDefaults", + "TetheringApiLevel" + ], + static_libs: [ + "NetworkStackApiCurrentShims", + ], + apex_available: ["com.android.tethering"], +} + +android_library { + name: "TetheringApiStableLib", + defaults: [ + "TetheringAndroidLibraryDefaults", + "TetheringApiLevel" + ], + static_libs: [ + "NetworkStackApiStableShims", + ], + apex_available: ["com.android.tethering"], } // Due to b/143733063, APK can't access a jni lib that is in APEX (but not in the APK). cc_library { name: "libtetherutilsjni", - sdk_version: "current", + sdk_version: "30", apex_available: [ "//apex_available:platform", // Used by InProcessTethering "com.android.tethering", @@ -109,7 +131,6 @@ cc_library { // Common defaults for compiling the actual APK. java_defaults { name: "TetheringAppDefaults", - sdk_version: "module_current", privileged: true, jni_libs: [ "libtetherutilsjni", @@ -130,20 +151,34 @@ java_defaults { // Non-updatable tethering running in the system server process for devices not using the module android_app { name: "InProcessTethering", - defaults: ["TetheringAppDefaults"], + defaults: ["TetheringAppDefaults", "TetheringApiLevel"], static_libs: ["TetheringApiCurrentLib"], certificate: "platform", manifest: "AndroidManifest_InProcess.xml", // InProcessTethering is a replacement for Tethering overrides: ["Tethering"], apex_available: ["com.android.tethering"], - min_sdk_version: "30", } -// Updatable tethering packaged as an application +// Updatable tethering packaged for finalized API android_app { name: "Tethering", - defaults: ["TetheringAppDefaults"], + defaults: ["TetheringAppDefaults", "TetheringApiLevel"], + static_libs: ["TetheringApiStableLib"], + certificate: "networkstack", + manifest: "AndroidManifest.xml", + use_embedded_native_libs: true, + // The permission configuration *must* be included to ensure security of the device + required: [ + "NetworkPermissionConfig", + "privapp_whitelist_com.android.networkstack.tethering", + ], + apex_available: ["com.android.tethering"], +} + +android_app { + name: "TetheringNext", + defaults: ["TetheringAppDefaults", "TetheringApiLevel"], static_libs: ["TetheringApiCurrentLib"], certificate: "networkstack", manifest: "AndroidManifest.xml", @@ -154,7 +189,6 @@ android_app { "privapp_whitelist_com.android.networkstack.tethering", ], apex_available: ["com.android.tethering"], - min_sdk_version: "30", } sdk { diff --git a/Tethering/apex/Android.bp b/Tethering/apex/Android.bp index f86a79dcad..a5216f7105 100644 --- a/Tethering/apex/Android.bp +++ b/Tethering/apex/Android.bp @@ -43,7 +43,7 @@ apex { ], apps: [ "ServiceConnectivityResources", - "Tethering", + "TetheringNext", ], prebuilts: ["current_sdkinfo"], manifest: "manifest.json",