blob: c4a1139b70a41c37ab3dad6bf9e195efbb469394 [file] [log] [blame]
Paul Duffin11281142021-01-25 18:31:26 +00001// Copyright (C) 2021 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badour051ef782021-02-12 17:07:05 -080015package {
16 // See: http://go/android-license-faq
17 // A large-scale-change added 'default_applicable_licenses' to import
18 // all of the 'license_kinds' from "frameworks_base_license"
19 // to get the below license kinds:
20 // SPDX-license-identifier-Apache-2.0
21 // SPDX-license-identifier-MIT
22 // SPDX-license-identifier-Unicode-DFS
23 default_applicable_licenses: ["frameworks_base_license"],
24}
25
Paul Duffinc67e1df2023-01-09 12:03:59 +000026soong_config_module_type {
27 name: "custom_platform_bootclasspath",
28 module_type: "platform_bootclasspath",
Roshan Pius9667b042024-01-12 14:16:10 -080029 config_namespace: "bootclasspath",
Paul Duffinc67e1df2023-01-09 12:03:59 +000030 bool_variables: [
31 "car_bootclasspath_fragment",
Roshan Pius9667b042024-01-12 14:16:10 -080032 "nfc_apex_bootclasspath_fragment",
Paul Duffinc67e1df2023-01-09 12:03:59 +000033 ],
34 properties: [
35 "fragments",
36 ],
37}
38
Paul Duffin3e4ec3b2021-04-01 11:53:32 +010039// This module provides access to information Soong has related to the
40// whole platform bootclasspath. Currently, that information is provided solely
41// through configuration but additional information will be added here.
42//
43// This will provide support for the following:
44// * Hidden API processing for those parts of the bootclasspath that are not
45// part of an APEX.
46// * Compatibility checking to ensure that the hidden API bits encoded into the
47// dex files by the modularized hidden API processing is compatible with the
48// runtimes of earlier releases which expect the bits to have been computed
49// over the entirety of the bootclasspath in one go not separately.
50// * Dexpreopting apps and other libraries not on the platform bootclasspath.
51// * Generating and installing the appropriate files to the device which will
52// allow it to generate the bootclasspath related environment variables
53// dynamically.
54//
55// This module needs to be present in the build for the above processing to be
56// done correctly.
Paul Duffinc67e1df2023-01-09 12:03:59 +000057custom_platform_bootclasspath {
Paul Duffin3e4ec3b2021-04-01 11:53:32 +010058 name: "platform-bootclasspath",
Paul Duffin81af1f52021-04-08 19:22:50 +010059
Paul Duffinb2d391d2021-04-08 09:05:39 +010060 // The bootclasspath_fragments that contribute to the platform
61 // bootclasspath.
62 fragments: [
63 {
Neha Pattanfa46dd22022-02-18 19:46:09 +000064 apex: "com.android.adservices",
65 module: "com.android.adservices-bootclasspath-fragment",
66 },
67 {
Artur Satayeve19115d2021-05-25 16:46:33 +000068 apex: "com.android.appsearch",
69 module: "com.android.appsearch-bootclasspath-fragment",
70 },
71 {
Paul Duffinb2d391d2021-04-08 09:05:39 +010072 apex: "com.android.art",
73 module: "art-bootclasspath-fragment",
74 },
Paul Duffinfc8fd102021-04-14 19:17:52 +010075 {
William Escande7b012e92022-06-22 13:19:14 -070076 apex: "com.android.btservices",
77 module: "com.android.btservices-bootclasspath-fragment",
Roopa Sattiraju293ed882022-02-03 09:07:17 -080078 },
79 {
Hassan Ali482f91c2022-10-05 13:16:23 +000080 apex: "com.android.configinfrastructure",
81 module: "com.android.configinfrastructure-bootclasspath-fragment",
82 },
83 {
Artur Satayeve19115d2021-05-25 16:46:33 +000084 apex: "com.android.conscrypt",
85 module: "com.android.conscrypt-bootclasspath-fragment",
86 },
87 {
Amos Bianchi62e8cf32022-08-02 15:42:30 -070088 apex: "com.android.devicelock",
89 module: "com.android.devicelock-bootclasspath-fragment",
90 },
91 {
ronishfc97db52023-02-07 17:57:48 +000092 apex: "com.android.healthfitness",
93 module: "com.android.healthfitness-bootclasspath-fragment",
Anna Zhuravlevabdc7f992022-09-06 10:47:37 +000094 },
95 {
Paul Duffinfc8fd102021-04-14 19:17:52 +010096 apex: "com.android.i18n",
97 module: "i18n-bootclasspath-fragment",
98 },
Artur Satayeve19115d2021-05-25 16:46:33 +000099 {
100 apex: "com.android.ipsec",
101 module: "com.android.ipsec-bootclasspath-fragment",
102 },
103 {
104 apex: "com.android.media",
105 module: "com.android.media-bootclasspath-fragment",
106 },
107 {
108 apex: "com.android.mediaprovider",
109 module: "com.android.mediaprovider-bootclasspath-fragment",
110 },
111 {
Frank Wange97ff9e2022-02-13 07:06:31 +0000112 apex: "com.android.ondevicepersonalization",
113 module: "com.android.ondevicepersonalization-bootclasspath-fragment",
114 },
115 {
Artur Satayeve19115d2021-05-25 16:46:33 +0000116 apex: "com.android.os.statsd",
117 module: "com.android.os.statsd-bootclasspath-fragment",
118 },
119 {
120 apex: "com.android.permission",
121 module: "com.android.permission-bootclasspath-fragment",
122 },
123 {
124 apex: "com.android.scheduling",
125 module: "com.android.scheduling-bootclasspath-fragment",
126 },
127 {
128 apex: "com.android.sdkext",
129 module: "com.android.sdkext-bootclasspath-fragment",
130 },
131 {
132 apex: "com.android.tethering",
133 module: "com.android.tethering-bootclasspath-fragment",
134 },
135 {
Roshan Pius6c580dd2021-07-29 21:31:23 -0700136 apex: "com.android.uwb",
137 module: "com.android.uwb-bootclasspath-fragment",
138 },
139 {
Artur Satayeve19115d2021-05-25 16:46:33 +0000140 apex: "com.android.wifi",
141 module: "com.android.wifi-bootclasspath-fragment",
142 },
Nikita Ioffeceff6b82022-10-18 23:14:22 +0100143 {
144 apex: "com.android.virt",
145 module: "com.android.virt-bootclasspath-fragment",
146 },
Paul Duffinb2d391d2021-04-08 09:05:39 +0100147 ],
148
Paul Duffinc67e1df2023-01-09 12:03:59 +0000149 soong_config_variables: {
150 car_bootclasspath_fragment: {
151 fragments: [
152 // only used for auto
153 {
154 apex: "com.android.car.framework",
155 module: "com.android.car.framework-bootclasspath-fragment",
156 },
157 ],
158 },
Roshan Pius9667b042024-01-12 14:16:10 -0800159 nfc_apex_bootclasspath_fragment: {
160 fragments: [
161 // only used if NFC mainline is enabled.
162 {
163 apex: "com.android.nfcservices",
164 module: "com.android.nfcservices-bootclasspath-fragment",
165 },
166 ],
167 },
Paul Duffinc67e1df2023-01-09 12:03:59 +0000168 },
169
Paul Duffin81af1f52021-04-08 19:22:50 +0100170 // Additional information needed by hidden api processing.
171 hidden_api: {
172 unsupported: [
173 "hiddenapi/hiddenapi-unsupported.txt",
174 ],
175 removed: [
176 ":combined-removed-dex",
177 ],
178 max_target_r_low_priority: [
179 "hiddenapi/hiddenapi-max-target-r-loprio.txt",
180 ],
181 max_target_q: [
182 "hiddenapi/hiddenapi-max-target-q.txt",
183 ],
184 max_target_p: [
185 "hiddenapi/hiddenapi-max-target-p.txt",
186 ],
187 max_target_o_low_priority: [
188 "hiddenapi/hiddenapi-max-target-o.txt",
189 ],
Paul Duffin81af1f52021-04-08 19:22:50 +0100190 unsupported_packages: [
191 "hiddenapi/hiddenapi-unsupported-packages.txt",
192 ],
193 },
Paul Duffin3969fad2021-04-12 12:57:06 +0100194
195 dists: [
196 {
197 targets: ["droidcore"],
198 tag: "hiddenapi-flags.csv",
199 },
200 {
201 targets: ["droidcore"],
202 tag: "hiddenapi-index.csv",
203 },
204 {
205 targets: ["droidcore"],
206 tag: "hiddenapi-metadata.csv",
207 // Legacy name
208 dest: "hiddenapi-unsupported.csv",
209 },
210 ],
satayev8e93d882021-04-29 11:54:02 +0100211
212 required: [
213 "platform-systemserverclasspath",
214 ],
215}
216
Anton Hansson26c63d22023-09-22 10:16:00 +0000217genrule { // This module exists to make the srcjar output available to Make.
218 name: "platform-bootclasspath.srcjar",
219 srcs: [":platform-bootclasspath{.srcjar}"],
220 out: ["platform-bootclasspath.srcjar"],
221 cmd: "cp $(in) $(out)",
222}
223
satayev8e93d882021-04-29 11:54:02 +0100224platform_systemserverclasspath {
225 name: "platform-systemserverclasspath",
Paul Duffin11281142021-01-25 18:31:26 +0000226}