1//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17package {
18    default_applicable_licenses: ["Android-Apache-2.0"],
19}
20
21apex {
22    name: "com.android.tethering",
23    compile_multilib: "both",
24    updatable: true,
25    min_sdk_version: "30",
26    bootclasspath_fragments: [
27        "com.android.tethering-bootclasspath-fragment",
28    ],
29    java_libs: [
30        "service-connectivity",
31    ],
32    multilib: {
33        first: {
34            jni_libs: ["libservice-connectivity"],
35        },
36        both: {
37            jni_libs: ["libframework-connectivity-jni"],
38        },
39    },
40    bpfs: [
41        "offload.o",
42        "test.o",
43    ],
44    apps: [
45        "ServiceConnectivityResources",
46        "Tethering",
47    ],
48    prebuilts: ["current_sdkinfo"],
49    manifest: "manifest.json",
50    key: "com.android.tethering.key",
51    // Indicates that pre-installed version of this apex can be compressed.
52    // Whether it actually will be compressed is controlled on per-device basis.
53    compressible: true,
54
55    androidManifest: "AndroidManifest.xml",
56}
57
58apex_key {
59    name: "com.android.tethering.key",
60    public_key: "com.android.tethering.avbpubkey",
61    private_key: "com.android.tethering.pem",
62}
63
64android_app_certificate {
65    name: "com.android.tethering.certificate",
66    certificate: "com.android.tethering",
67}
68
69// Encapsulate the contributions made by the com.android.tethering to the bootclasspath.
70bootclasspath_fragment {
71    name: "com.android.tethering-bootclasspath-fragment",
72    contents: [
73        "framework-connectivity",
74        "framework-tethering",
75    ],
76    apex_available: ["com.android.tethering"],
77
78    // The bootclasspath_fragments that provide APIs on which this depends.
79    fragments: [
80        {
81            apex: "com.android.art",
82            module: "art-bootclasspath-fragment",
83        },
84    ],
85
86    // Additional stubs libraries that this fragment's contents use which are
87    // not provided by another bootclasspath_fragment.
88    additional_stubs: [
89        "android-non-updatable",
90    ],
91
92    // Additional hidden API flag files to override the defaults. This must only be
93    // modified by the Soong or platform compat team.
94    hidden_api: {
95        max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
96        unsupported: ["hiddenapi/hiddenapi-unsupported.txt"],
97    },
98}
99
100override_apex {
101    name: "com.android.tethering.inprocess",
102    base: "com.android.tethering",
103    package_name: "com.android.tethering.inprocess",
104    apps: [
105        "ServiceConnectivityResources",
106        "InProcessTethering",
107    ],
108}
109