• 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    bootclasspath_fragments: ["com.android.wifi-bootclasspath-fragment"],
72    systemserverclasspath_fragments: ["com.android.wifi-systemserverclasspath-fragment"],
73}
74
75// Encapsulate the contributions made by the com.android.wifi to the bootclasspath.
76bootclasspath_fragment {
77    name: "com.android.wifi-bootclasspath-fragment",
78    contents: ["framework-wifi"],
79    apex_available: ["com.android.wifi"],
80
81    // The bootclasspath_fragments that provide APIs on which this depends.
82    fragments: [
83        {
84            apex: "com.android.art",
85            module: "art-bootclasspath-fragment",
86        },
87    ],
88
89    // Additional stubs libraries that this fragment's contents use which are
90    // not provided by another bootclasspath_fragment.
91    additional_stubs: [
92        "android-non-updatable",
93    ],
94
95    // Additional hidden API flag files to override the defaults. This must only be
96    // modified by the Soong or platform compat team.
97    hidden_api: {
98        max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
99        max_target_r_low_priority: ["hiddenapi/hiddenapi-max-target-r-low-priority.txt"],
100        unsupported: ["hiddenapi/hiddenapi-unsupported.txt"],
101
102        // The following packages contain classes from other modules on the
103        // bootclasspath. That means that the hidden API flags for this module
104        // has to explicitly list every single class this module provides in
105        // that package to differentiate them from the classes provided by other
106        // modules. That can include private classes that are not part of the
107        // API.
108        split_packages: [
109            "android.net.wifi",
110        ],
111
112        // The following packages and all their subpackages currently only
113        // contain classes from this bootclasspath_fragment. Listing a package
114        // here won't prevent other bootclasspath modules from adding classes in
115        // any of those packages but it will prevent them from adding those
116        // classes into an API surface, e.g. public, system, etc.. Doing so will
117        // result in a build failure due to inconsistent flags.
118        package_prefixes: [
119            "android.net.wifi.aware",
120            "android.net.wifi.hotspot2",
121            "android.net.wifi.p2p",
122            "android.net.wifi.rtt",
123            "android.net.wifi.util",
124            "com.android.wifi",
125        ],
126    },
127}
128
129systemserverclasspath_fragment {
130    name: "com.android.wifi-systemserverclasspath-fragment",
131    standalone_contents: ["service-wifi"],
132    apex_available: ["com.android.wifi"],
133}
134