• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_defaults {
22    name: "com.android.wifi-defaults",
23    androidManifest: ":com.android.wifi-androidManifest",
24    bootclasspath_fragments: ["com.android.wifi-bootclasspath-fragment"],
25    systemserverclasspath_fragments: ["com.android.wifi-systemserverclasspath-fragment"],
26    compat_configs: ["wifi-compat-config"],
27    // from build rule `cacerts_wfa`
28    prebuilts: [
29        "target-cacert-wifi-674b5f5b.0",
30        "target-cacert-wifi-21125ccd.0",
31        "target-cacert-wifi-ea93cb5b.0",
32    ],
33    key: "com.android.wifi.key",
34    certificate: ":com.android.wifi.certificate",
35    apps: [
36        "OsuLogin",
37        "ServiceWifiResources",
38        "WifiDialog",
39    ],
40    defaults: ["r-launched-apex-module"],
41    // Indicates that pre-installed version of this apex can be compressed.
42    // Whether it actually will be compressed is controlled on per-device basis.
43    compressible: true,
44}
45
46filegroup {
47    name: "com.android.wifi-androidManifest",
48    srcs: ["AndroidManifest.xml"],
49}
50
51// Mainline wifi apex module.
52apex {
53    name: "com.android.wifi",
54    defaults: ["com.android.wifi-defaults"],
55    manifest: "apex_manifest.json",
56}
57
58apex_key {
59    name: "com.android.wifi.key",
60    public_key: "com.android.wifi.avbpubkey",
61    private_key: "com.android.wifi.pem",
62}
63
64android_app_certificate {
65    name: "com.android.wifi.certificate",
66    certificate: "com.android.wifi",
67}
68
69sdk {
70    name: "wifi-module-sdk",
71    apexes: [
72        // Adds exportable dependencies of the APEX to the sdk,
73        // e.g. *classpath_fragments.
74        "com.android.wifi",
75    ],
76}
77
78// Encapsulate the contributions made by the com.android.wifi to the bootclasspath.
79bootclasspath_fragment {
80    name: "com.android.wifi-bootclasspath-fragment",
81    contents: ["framework-wifi"],
82    apex_available: ["com.android.wifi"],
83
84    // The bootclasspath_fragments that provide APIs on which this depends.
85    fragments: [
86        {
87            apex: "com.android.art",
88            module: "art-bootclasspath-fragment",
89        },
90    ],
91
92    // Additional stubs libraries that this fragment's contents use which are
93    // not provided by another bootclasspath_fragment.
94    additional_stubs: [
95        "android-non-updatable",
96    ],
97
98    // Additional hidden API flag files to override the defaults. This must only be
99    // modified by the Soong or platform compat team.
100    hidden_api: {
101        max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
102        max_target_r_low_priority: ["hiddenapi/hiddenapi-max-target-r-low-priority.txt"],
103        unsupported: ["hiddenapi/hiddenapi-unsupported.txt"],
104
105        // The following packages contain classes from other modules on the
106        // bootclasspath. That means that the hidden API flags for this module
107        // has to explicitly list every single class this module provides in
108        // that package to differentiate them from the classes provided by other
109        // modules. That can include private classes that are not part of the
110        // API.
111        split_packages: [
112            "android.net.wifi",
113        ],
114
115        // The following packages and all their subpackages currently only
116        // contain classes from this bootclasspath_fragment. Listing a package
117        // here won't prevent other bootclasspath modules from adding classes in
118        // any of those packages but it will prevent them from adding those
119        // classes into an API surface, e.g. public, system, etc.. Doing so will
120        // result in a build failure due to inconsistent flags.
121        package_prefixes: [
122            "android.net.wifi.aware",
123            "android.net.wifi.hotspot2",
124            "android.net.wifi.p2p",
125            "android.net.wifi.rtt",
126            "android.net.wifi.util",
127            "com.android.wifi",
128        ],
129    },
130}
131
132systemserverclasspath_fragment {
133    name: "com.android.wifi-systemserverclasspath-fragment",
134    standalone_contents: ["service-wifi"],
135    apex_available: ["com.android.wifi"],
136}
137