xref: /aosp_15_r20/frameworks/base/boot/Android.bp (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker// Copyright (C) 2021 The Android Open Source Project
2*d57664e9SAndroid Build Coastguard Worker//
3*d57664e9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d57664e9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d57664e9SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d57664e9SAndroid Build Coastguard Worker//
7*d57664e9SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*d57664e9SAndroid Build Coastguard Worker//
9*d57664e9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d57664e9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d57664e9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d57664e9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d57664e9SAndroid Build Coastguard Worker// limitations under the License.
14*d57664e9SAndroid Build Coastguard Worker
15*d57664e9SAndroid Build Coastguard Workerpackage {
16*d57664e9SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
17*d57664e9SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
18*d57664e9SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_base_license"
19*d57664e9SAndroid Build Coastguard Worker    // to get the below license kinds:
20*d57664e9SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
21*d57664e9SAndroid Build Coastguard Worker    //   SPDX-license-identifier-MIT
22*d57664e9SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Unicode-DFS
23*d57664e9SAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_base_license"],
24*d57664e9SAndroid Build Coastguard Worker}
25*d57664e9SAndroid Build Coastguard Worker
26*d57664e9SAndroid Build Coastguard Workersoong_config_module_type {
27*d57664e9SAndroid Build Coastguard Worker    name: "custom_platform_bootclasspath",
28*d57664e9SAndroid Build Coastguard Worker    module_type: "platform_bootclasspath",
29*d57664e9SAndroid Build Coastguard Worker    config_namespace: "bootclasspath",
30*d57664e9SAndroid Build Coastguard Worker    bool_variables: [
31*d57664e9SAndroid Build Coastguard Worker        "car_bootclasspath_fragment",
32*d57664e9SAndroid Build Coastguard Worker        "nfc_apex_bootclasspath_fragment",
33*d57664e9SAndroid Build Coastguard Worker        "release_crashrecovery_module",
34*d57664e9SAndroid Build Coastguard Worker        "release_ondevice_intelligence_module",
35*d57664e9SAndroid Build Coastguard Worker        "release_package_profiling_module",
36*d57664e9SAndroid Build Coastguard Worker    ],
37*d57664e9SAndroid Build Coastguard Worker    properties: [
38*d57664e9SAndroid Build Coastguard Worker        "fragments",
39*d57664e9SAndroid Build Coastguard Worker    ],
40*d57664e9SAndroid Build Coastguard Worker}
41*d57664e9SAndroid Build Coastguard Worker
42*d57664e9SAndroid Build Coastguard Worker// This module provides access to information Soong has related to the
43*d57664e9SAndroid Build Coastguard Worker// whole platform bootclasspath. Currently, that information is provided solely
44*d57664e9SAndroid Build Coastguard Worker// through configuration but additional information will be added here.
45*d57664e9SAndroid Build Coastguard Worker//
46*d57664e9SAndroid Build Coastguard Worker// This will provide support for the following:
47*d57664e9SAndroid Build Coastguard Worker// * Hidden API processing for those parts of the bootclasspath that are not
48*d57664e9SAndroid Build Coastguard Worker//   part of an APEX.
49*d57664e9SAndroid Build Coastguard Worker// * Compatibility checking to ensure that the hidden API bits encoded into the
50*d57664e9SAndroid Build Coastguard Worker//   dex files by the modularized hidden API processing is compatible with the
51*d57664e9SAndroid Build Coastguard Worker//   runtimes of earlier releases which expect the bits to have been computed
52*d57664e9SAndroid Build Coastguard Worker//   over the entirety of the bootclasspath in one go not separately.
53*d57664e9SAndroid Build Coastguard Worker// * Dexpreopting apps and other libraries not on the platform bootclasspath.
54*d57664e9SAndroid Build Coastguard Worker// * Generating and installing the appropriate files to the device which will
55*d57664e9SAndroid Build Coastguard Worker//   allow it to generate the bootclasspath related environment variables
56*d57664e9SAndroid Build Coastguard Worker//   dynamically.
57*d57664e9SAndroid Build Coastguard Worker//
58*d57664e9SAndroid Build Coastguard Worker// This module needs to be present in the build for the above processing to be
59*d57664e9SAndroid Build Coastguard Worker// done correctly.
60*d57664e9SAndroid Build Coastguard Workercustom_platform_bootclasspath {
61*d57664e9SAndroid Build Coastguard Worker    name: "platform-bootclasspath",
62*d57664e9SAndroid Build Coastguard Worker
63*d57664e9SAndroid Build Coastguard Worker    // The bootclasspath_fragments that contribute to the platform
64*d57664e9SAndroid Build Coastguard Worker    // bootclasspath.
65*d57664e9SAndroid Build Coastguard Worker    fragments: [
66*d57664e9SAndroid Build Coastguard Worker        {
67*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.adservices",
68*d57664e9SAndroid Build Coastguard Worker            module: "com.android.adservices-bootclasspath-fragment",
69*d57664e9SAndroid Build Coastguard Worker        },
70*d57664e9SAndroid Build Coastguard Worker        {
71*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.appsearch",
72*d57664e9SAndroid Build Coastguard Worker            module: "com.android.appsearch-bootclasspath-fragment",
73*d57664e9SAndroid Build Coastguard Worker        },
74*d57664e9SAndroid Build Coastguard Worker        {
75*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.art",
76*d57664e9SAndroid Build Coastguard Worker            module: "art-bootclasspath-fragment",
77*d57664e9SAndroid Build Coastguard Worker        },
78*d57664e9SAndroid Build Coastguard Worker        {
79*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.btservices",
80*d57664e9SAndroid Build Coastguard Worker            module: "com.android.btservices-bootclasspath-fragment",
81*d57664e9SAndroid Build Coastguard Worker        },
82*d57664e9SAndroid Build Coastguard Worker        {
83*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.configinfrastructure",
84*d57664e9SAndroid Build Coastguard Worker            module: "com.android.configinfrastructure-bootclasspath-fragment",
85*d57664e9SAndroid Build Coastguard Worker        },
86*d57664e9SAndroid Build Coastguard Worker        {
87*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.conscrypt",
88*d57664e9SAndroid Build Coastguard Worker            module: "com.android.conscrypt-bootclasspath-fragment",
89*d57664e9SAndroid Build Coastguard Worker        },
90*d57664e9SAndroid Build Coastguard Worker        {
91*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.devicelock",
92*d57664e9SAndroid Build Coastguard Worker            module: "com.android.devicelock-bootclasspath-fragment",
93*d57664e9SAndroid Build Coastguard Worker        },
94*d57664e9SAndroid Build Coastguard Worker        {
95*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.healthfitness",
96*d57664e9SAndroid Build Coastguard Worker            module: "com.android.healthfitness-bootclasspath-fragment",
97*d57664e9SAndroid Build Coastguard Worker        },
98*d57664e9SAndroid Build Coastguard Worker        {
99*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.i18n",
100*d57664e9SAndroid Build Coastguard Worker            module: "i18n-bootclasspath-fragment",
101*d57664e9SAndroid Build Coastguard Worker        },
102*d57664e9SAndroid Build Coastguard Worker        {
103*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.ipsec",
104*d57664e9SAndroid Build Coastguard Worker            module: "com.android.ipsec-bootclasspath-fragment",
105*d57664e9SAndroid Build Coastguard Worker        },
106*d57664e9SAndroid Build Coastguard Worker        {
107*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.media",
108*d57664e9SAndroid Build Coastguard Worker            module: "com.android.media-bootclasspath-fragment",
109*d57664e9SAndroid Build Coastguard Worker        },
110*d57664e9SAndroid Build Coastguard Worker        {
111*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.mediaprovider",
112*d57664e9SAndroid Build Coastguard Worker            module: "com.android.mediaprovider-bootclasspath-fragment",
113*d57664e9SAndroid Build Coastguard Worker        },
114*d57664e9SAndroid Build Coastguard Worker        {
115*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.ondevicepersonalization",
116*d57664e9SAndroid Build Coastguard Worker            module: "com.android.ondevicepersonalization-bootclasspath-fragment",
117*d57664e9SAndroid Build Coastguard Worker        },
118*d57664e9SAndroid Build Coastguard Worker        {
119*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.os.statsd",
120*d57664e9SAndroid Build Coastguard Worker            module: "com.android.os.statsd-bootclasspath-fragment",
121*d57664e9SAndroid Build Coastguard Worker        },
122*d57664e9SAndroid Build Coastguard Worker        {
123*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.permission",
124*d57664e9SAndroid Build Coastguard Worker            module: "com.android.permission-bootclasspath-fragment",
125*d57664e9SAndroid Build Coastguard Worker        },
126*d57664e9SAndroid Build Coastguard Worker        {
127*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.scheduling",
128*d57664e9SAndroid Build Coastguard Worker            module: "com.android.scheduling-bootclasspath-fragment",
129*d57664e9SAndroid Build Coastguard Worker        },
130*d57664e9SAndroid Build Coastguard Worker        {
131*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.sdkext",
132*d57664e9SAndroid Build Coastguard Worker            module: "com.android.sdkext-bootclasspath-fragment",
133*d57664e9SAndroid Build Coastguard Worker        },
134*d57664e9SAndroid Build Coastguard Worker        {
135*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.tethering",
136*d57664e9SAndroid Build Coastguard Worker            module: "com.android.tethering-bootclasspath-fragment",
137*d57664e9SAndroid Build Coastguard Worker        },
138*d57664e9SAndroid Build Coastguard Worker        {
139*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.uwb",
140*d57664e9SAndroid Build Coastguard Worker            module: "com.android.uwb-bootclasspath-fragment",
141*d57664e9SAndroid Build Coastguard Worker        },
142*d57664e9SAndroid Build Coastguard Worker        {
143*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.wifi",
144*d57664e9SAndroid Build Coastguard Worker            module: "com.android.wifi-bootclasspath-fragment",
145*d57664e9SAndroid Build Coastguard Worker        },
146*d57664e9SAndroid Build Coastguard Worker        {
147*d57664e9SAndroid Build Coastguard Worker            apex: "com.android.virt",
148*d57664e9SAndroid Build Coastguard Worker            module: "com.android.virt-bootclasspath-fragment",
149*d57664e9SAndroid Build Coastguard Worker        },
150*d57664e9SAndroid Build Coastguard Worker    ],
151*d57664e9SAndroid Build Coastguard Worker
152*d57664e9SAndroid Build Coastguard Worker    soong_config_variables: {
153*d57664e9SAndroid Build Coastguard Worker        car_bootclasspath_fragment: {
154*d57664e9SAndroid Build Coastguard Worker            fragments: [
155*d57664e9SAndroid Build Coastguard Worker                // only used for auto
156*d57664e9SAndroid Build Coastguard Worker                {
157*d57664e9SAndroid Build Coastguard Worker                    apex: "com.android.car.framework",
158*d57664e9SAndroid Build Coastguard Worker                    module: "com.android.car.framework-bootclasspath-fragment",
159*d57664e9SAndroid Build Coastguard Worker                },
160*d57664e9SAndroid Build Coastguard Worker            ],
161*d57664e9SAndroid Build Coastguard Worker        },
162*d57664e9SAndroid Build Coastguard Worker        nfc_apex_bootclasspath_fragment: {
163*d57664e9SAndroid Build Coastguard Worker            fragments: [
164*d57664e9SAndroid Build Coastguard Worker                // only used if NFC mainline is enabled.
165*d57664e9SAndroid Build Coastguard Worker                {
166*d57664e9SAndroid Build Coastguard Worker                    apex: "com.android.nfcservices",
167*d57664e9SAndroid Build Coastguard Worker                    module: "com.android.nfcservices-bootclasspath-fragment",
168*d57664e9SAndroid Build Coastguard Worker                },
169*d57664e9SAndroid Build Coastguard Worker            ],
170*d57664e9SAndroid Build Coastguard Worker        },
171*d57664e9SAndroid Build Coastguard Worker        release_crashrecovery_module: {
172*d57664e9SAndroid Build Coastguard Worker            fragments: [
173*d57664e9SAndroid Build Coastguard Worker                // only used when crashrecovery is enabled
174*d57664e9SAndroid Build Coastguard Worker                {
175*d57664e9SAndroid Build Coastguard Worker                    apex: "com.android.crashrecovery",
176*d57664e9SAndroid Build Coastguard Worker                    module: "com.android.crashrecovery-bootclasspath-fragment",
177*d57664e9SAndroid Build Coastguard Worker                },
178*d57664e9SAndroid Build Coastguard Worker            ],
179*d57664e9SAndroid Build Coastguard Worker        },
180*d57664e9SAndroid Build Coastguard Worker        release_ondevice_intelligence_module: {
181*d57664e9SAndroid Build Coastguard Worker            fragments: [
182*d57664e9SAndroid Build Coastguard Worker                // only used when ondeviceintelligence is moved to neuralnetworks module
183*d57664e9SAndroid Build Coastguard Worker                {
184*d57664e9SAndroid Build Coastguard Worker                    apex: "com.android.neuralnetworks",
185*d57664e9SAndroid Build Coastguard Worker                    module: "com.android.ondeviceintelligence-bootclasspath-fragment",
186*d57664e9SAndroid Build Coastguard Worker                },
187*d57664e9SAndroid Build Coastguard Worker            ],
188*d57664e9SAndroid Build Coastguard Worker        },
189*d57664e9SAndroid Build Coastguard Worker        release_package_profiling_module: {
190*d57664e9SAndroid Build Coastguard Worker            fragments: [
191*d57664e9SAndroid Build Coastguard Worker                // only used if profiling is enabled.
192*d57664e9SAndroid Build Coastguard Worker                {
193*d57664e9SAndroid Build Coastguard Worker                    apex: "com.android.profiling",
194*d57664e9SAndroid Build Coastguard Worker                    module: "com.android.profiling-bootclasspath-fragment",
195*d57664e9SAndroid Build Coastguard Worker                },
196*d57664e9SAndroid Build Coastguard Worker            ],
197*d57664e9SAndroid Build Coastguard Worker        },
198*d57664e9SAndroid Build Coastguard Worker    },
199*d57664e9SAndroid Build Coastguard Worker
200*d57664e9SAndroid Build Coastguard Worker    // Additional information needed by hidden api processing.
201*d57664e9SAndroid Build Coastguard Worker    hidden_api: {
202*d57664e9SAndroid Build Coastguard Worker        unsupported: [
203*d57664e9SAndroid Build Coastguard Worker            "hiddenapi/hiddenapi-unsupported.txt",
204*d57664e9SAndroid Build Coastguard Worker        ],
205*d57664e9SAndroid Build Coastguard Worker        removed: [
206*d57664e9SAndroid Build Coastguard Worker            ":combined-removed-dex",
207*d57664e9SAndroid Build Coastguard Worker        ],
208*d57664e9SAndroid Build Coastguard Worker        max_target_r_low_priority: [
209*d57664e9SAndroid Build Coastguard Worker            "hiddenapi/hiddenapi-max-target-r-loprio.txt",
210*d57664e9SAndroid Build Coastguard Worker        ],
211*d57664e9SAndroid Build Coastguard Worker        max_target_q: [
212*d57664e9SAndroid Build Coastguard Worker            "hiddenapi/hiddenapi-max-target-q.txt",
213*d57664e9SAndroid Build Coastguard Worker        ],
214*d57664e9SAndroid Build Coastguard Worker        max_target_p: [
215*d57664e9SAndroid Build Coastguard Worker            "hiddenapi/hiddenapi-max-target-p.txt",
216*d57664e9SAndroid Build Coastguard Worker        ],
217*d57664e9SAndroid Build Coastguard Worker        max_target_o_low_priority: [
218*d57664e9SAndroid Build Coastguard Worker            "hiddenapi/hiddenapi-max-target-o.txt",
219*d57664e9SAndroid Build Coastguard Worker        ],
220*d57664e9SAndroid Build Coastguard Worker        unsupported_packages: [
221*d57664e9SAndroid Build Coastguard Worker            "hiddenapi/hiddenapi-unsupported-packages.txt",
222*d57664e9SAndroid Build Coastguard Worker        ],
223*d57664e9SAndroid Build Coastguard Worker    },
224*d57664e9SAndroid Build Coastguard Worker
225*d57664e9SAndroid Build Coastguard Worker    dists: [
226*d57664e9SAndroid Build Coastguard Worker        {
227*d57664e9SAndroid Build Coastguard Worker            targets: ["droidcore"],
228*d57664e9SAndroid Build Coastguard Worker            tag: "hiddenapi-flags.csv",
229*d57664e9SAndroid Build Coastguard Worker        },
230*d57664e9SAndroid Build Coastguard Worker        {
231*d57664e9SAndroid Build Coastguard Worker            targets: ["droidcore"],
232*d57664e9SAndroid Build Coastguard Worker            tag: "hiddenapi-index.csv",
233*d57664e9SAndroid Build Coastguard Worker        },
234*d57664e9SAndroid Build Coastguard Worker        {
235*d57664e9SAndroid Build Coastguard Worker            targets: ["droidcore"],
236*d57664e9SAndroid Build Coastguard Worker            tag: "hiddenapi-metadata.csv",
237*d57664e9SAndroid Build Coastguard Worker            // Legacy name
238*d57664e9SAndroid Build Coastguard Worker            dest: "hiddenapi-unsupported.csv",
239*d57664e9SAndroid Build Coastguard Worker        },
240*d57664e9SAndroid Build Coastguard Worker    ],
241*d57664e9SAndroid Build Coastguard Worker
242*d57664e9SAndroid Build Coastguard Worker    required: [
243*d57664e9SAndroid Build Coastguard Worker        "platform-systemserverclasspath",
244*d57664e9SAndroid Build Coastguard Worker    ],
245*d57664e9SAndroid Build Coastguard Worker}
246*d57664e9SAndroid Build Coastguard Worker
247*d57664e9SAndroid Build Coastguard Workerjava_genrule { // This module exists to make the srcjar output available to Make.
248*d57664e9SAndroid Build Coastguard Worker    name: "platform-bootclasspath.srcjar",
249*d57664e9SAndroid Build Coastguard Worker    srcs: [":platform-bootclasspath{.srcjar}"],
250*d57664e9SAndroid Build Coastguard Worker    out: ["platform-bootclasspath.srcjar"],
251*d57664e9SAndroid Build Coastguard Worker    cmd: "cp $(in) $(out)",
252*d57664e9SAndroid Build Coastguard Worker}
253*d57664e9SAndroid Build Coastguard Worker
254*d57664e9SAndroid Build Coastguard Workerplatform_systemserverclasspath {
255*d57664e9SAndroid Build Coastguard Worker    name: "platform-systemserverclasspath",
256*d57664e9SAndroid Build Coastguard Worker}
257