1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "frameworks_base_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    //   SPDX-license-identifier-BSD
8    //   legacy_unencumbered
9    default_applicable_licenses: ["frameworks_base_license"],
10}
11
12filegroup {
13    name: "framework-core-sources",
14    srcs: [
15        "**/*.java",
16        "**/*.aidl",
17    ],
18    visibility: ["//frameworks/base"],
19}
20
21filegroup {
22    name: "IKeyAttestationApplicationIdProvider.aidl",
23    srcs: ["android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl"],
24}
25
26filegroup {
27    name: "IDropBoxManagerService.aidl",
28    srcs: ["com/android/internal/os/IDropBoxManagerService.aidl"],
29}
30
31filegroup {
32    name: "ITracingServiceProxy.aidl",
33    srcs: ["android/tracing/ITracingServiceProxy.aidl"],
34}
35
36// These are subset of framework-core-sources that are needed by the
37// android.test.mock library. The implementation of android.test.mock references
38// private members of various components to allow mocking of classes that cannot
39// be mocked without access to those internal implementation details.
40filegroup {
41    name: "framework-core-sources-for-test-mock",
42    srcs: [
43        "android/accounts/AccountManagerCallback.java",
44        "android/accounts/AccountManagerFuture.java",
45        "android/accounts/AccountManager.java",
46        "android/accounts/AccountsException.java",
47        "android/accounts/AuthenticatorException.java",
48        "android/accounts/OperationCanceledException.java",
49        "android/app/Application.java",
50        "android/app/IApplicationThread.aidl",
51        "android/app/IServiceConnection.aidl",
52        "android/app/PackageDeleteObserver.java",
53        "android/content/ComponentCallbacks2.java",
54        "android/content/ComponentCallbacks.java",
55        "android/content/ContentInterface.java",
56        "android/content/ContentProvider.java",
57        "android/content/ContentProviderNative.java",
58        "android/content/ContentResolver.java",
59        "android/content/Context.java",
60        "android/content/ContextWrapper.java",
61        "android/content/DialogInterface.java",
62        "android/content/IContentProvider.java",
63        "android/content/Intent.java",
64        "android/content/IntentSender.java",
65        "android/content/OperationApplicationException.java",
66        "android/content/pm/ActivityInfo.java",
67        "android/content/pm/ApplicationInfo.java",
68        "android/content/pm/InstantAppInfo.java",
69        "android/content/pm/IPackageDataObserver.aidl",
70        "android/content/pm/KeySet.java",
71        "android/content/pm/PackageManager.java",
72        "android/content/pm/VerifierDeviceIdentity.java",
73        "android/content/res/Resources.java",
74        "android/database/CrossProcessCursor.java",
75        "android/database/CrossProcessCursorWrapper.java",
76        "android/database/Cursor.java",
77        "android/database/CursorWrapper.java",
78        "android/os/Binder.java",
79        "android/os/Bundle.java",
80        "android/os/IBinder.java",
81        "android/os/IInterface.java",
82        "android/os/Parcelable.java",
83        "android/os/ParcelFileDescriptor.java",
84        "android/os/RemoteException.java",
85        "android/os/storage/VolumeInfo.java",
86        "android/util/AndroidException.java",
87        "android/view/DisplayAdjustments.java",
88        "android/view/ViewDebug.java",
89    ],
90    visibility: ["//frameworks/base/test-mock"],
91}
92
93filegroup {
94    name: "libincident_aidl",
95    srcs: [
96        "android/os/IIncidentDumpCallback.aidl",
97        "android/os/IIncidentManager.aidl",
98        "android/os/IIncidentReportStatusListener.aidl",
99    ],
100}
101
102filegroup {
103    name: "libvibrator_aidl",
104    srcs: [
105        "android/os/IExternalVibrationController.aidl",
106        "android/os/IExternalVibratorService.aidl",
107    ],
108}
109
110filegroup {
111    name: "libpowermanager_aidl",
112    srcs: [
113        "android/os/Temperature.aidl",
114        "android/os/CoolingDevice.aidl",
115        "android/os/IHintManager.aidl",
116        "android/os/IHintSession.aidl",
117        "android/os/IThermalEventListener.aidl",
118        "android/os/IThermalStatusListener.aidl",
119        "android/os/IThermalService.aidl",
120        "android/os/IPowerManager.aidl",
121    ],
122}
123
124genrule {
125    name: "statslog-framework-java-gen",
126    tools: ["stats-log-api-gen"],
127    cmd: "$(location stats-log-api-gen) --java $(out) --module framework" +
128        " --javaPackage com.android.internal.util --javaClass FrameworkStatsLog --worksource",
129    out: ["com/android/internal/util/FrameworkStatsLog.java"],
130}
131
132java_library {
133    name: "uieventloggerlib",
134    srcs: [
135        "com/android/internal/logging/UiEvent.java",
136        "com/android/internal/logging/UiEventLogger.java",
137        "com/android/internal/logging/UiEventLoggerImpl.java",
138        "com/android/internal/logging/InstanceId.java",
139        "com/android/internal/logging/InstanceIdSequence.java",
140        ":statslog-framework-java-gen",
141    ],
142}
143
144filegroup {
145    name: "framework-services-net-module-wifi-shared-srcs",
146    srcs: [
147        "android/net/DhcpResults.java",
148        "android/util/LocalLog.java",
149    ],
150}
151
152// keep these files in sync with the package/Tethering/jarjar-rules.txt and
153// package/Connectivity/jarjar-rules.txt for the tethering module and connectivity module.
154filegroup {
155    name: "framework-connectivity-shared-srcs",
156    srcs: [
157        "android/util/IndentingPrintWriter.java",
158        "android/util/LocalLog.java",
159        // This should be android.util.IndentingPrintWriter, but it's not available in all branches.
160        "com/android/internal/util/IndentingPrintWriter.java",
161        "com/android/internal/util/IState.java",
162        "com/android/internal/util/MessageUtils.java",
163        "com/android/internal/util/State.java",
164        "com/android/internal/util/StateMachine.java",
165        "com/android/internal/util/WakeupMessage.java",
166    ],
167}
168
169// keep these files in sync with the apex/jobscheduler/service jarjar-rules.txt for
170// the jobscheduler module.
171filegroup {
172    name: "framework-jobscheduler-shared-srcs",
173    srcs: [
174        ":modules-utils-preconditions-srcs",
175        "com/android/internal/util/ArrayUtils.java",
176        "com/android/internal/util/BitUtils.java",
177        "com/android/internal/util/CollectionUtils.java",
178        "com/android/internal/util/ConcurrentUtils.java",
179        "com/android/internal/util/DumpUtils.java",
180        "com/android/internal/util/FastPrintWriter.java",
181        "com/android/internal/util/FastXmlSerializer.java",
182        "com/android/internal/util/FunctionalUtils.java",
183        "com/android/internal/util/ParseUtils.java",
184        "com/android/internal/util/RingBufferIndices.java",
185        "com/android/internal/util/StatLogger.java",
186        "com/android/internal/util/XmlUtils.java",
187    ],
188}
189
190// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module.
191filegroup {
192    name: "framework-permission-s-shared-srcs",
193    srcs: [
194        ":modules-utils-preconditions-srcs",
195        "com/android/internal/infra/AndroidFuture.java",
196        "com/android/internal/infra/ServiceConnector.java",
197        "com/android/internal/infra/AndroidFuture.aidl",
198        "com/android/internal/infra/IAndroidFuture.aidl",
199        "android/os/HandlerExecutor.java",
200    ],
201}
202
203// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module.
204filegroup {
205    name: "service-permission-shared-srcs",
206    srcs: [
207        "android/util/IndentingPrintWriter.java",
208        "com/android/internal/util/dump/DualDumpOutputStream.java",
209    ],
210}
211
212filegroup {
213    name: "incremental_aidl",
214    srcs: [
215        "android/os/incremental/IIncrementalServiceConnector.aidl",
216        "android/os/incremental/IncrementalFileSystemControlParcel.aidl",
217    ],
218}
219
220filegroup {
221    name: "dataloader_aidl",
222    srcs: [
223        "android/content/pm/DataLoaderParamsParcel.aidl",
224        "android/content/pm/DataLoaderType.aidl",
225        "android/content/pm/FileSystemControlParcel.aidl",
226        "android/content/pm/IDataLoader.aidl",
227        "android/content/pm/IDataLoaderManager.aidl",
228        "android/content/pm/InstallationFileParcel.aidl",
229        "android/content/pm/InstallationFileLocation.aidl",
230        "android/content/pm/IDataLoaderStatusListener.aidl",
231        "android/content/pm/IPackageInstallerSessionFileSystemConnector.aidl",
232    ],
233}
234
235filegroup {
236    name: "incremental_manager_aidl",
237    srcs: [
238        "android/os/incremental/IIncrementalService.aidl",
239        "android/os/incremental/IStorageLoadingProgressListener.aidl",
240        "android/os/incremental/IncrementalNewFileParams.aidl",
241        "android/os/incremental/IStorageHealthListener.aidl",
242        "android/os/incremental/PerUidReadTimeouts.aidl",
243        "android/os/incremental/StorageHealthCheckParams.aidl",
244    ],
245}
246
247filegroup {
248    name: "activity_manager_procstate_aidl",
249    srcs: [
250        "android/app/ProcessStateEnum.aidl",
251    ],
252}
253
254cc_defaults {
255    name: "incremental_default",
256    cflags: [
257        "-Wall",
258        "-Wextra",
259        "-Wextra-semi",
260        "-Werror",
261        "-Wzero-as-null-pointer-constant",
262        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
263    ],
264    shared_libs: [
265        "libbinder",
266        "libutils",
267    ],
268    aidl: {
269        include_dirs: [
270            "frameworks/native/aidl/binder",
271        ],
272        export_aidl_headers: true,
273    },
274}
275
276cc_library {
277    name: "libincremental_aidl-cpp",
278    srcs: [
279        ":incremental_aidl",
280    ],
281    defaults: ["incremental_default"],
282}
283
284cc_library {
285    name: "libdataloader_aidl-cpp",
286    srcs: [
287        ":dataloader_aidl",
288    ],
289    defaults: ["incremental_default"],
290    shared_libs: [
291        "libincremental_aidl-cpp",
292    ],
293}
294
295cc_library {
296    name: "libincremental_manager_aidl-cpp",
297    srcs: [
298        ":incremental_manager_aidl",
299    ],
300    defaults: ["incremental_default"],
301    shared_libs: [
302        "libincremental_aidl-cpp",
303        "libdataloader_aidl-cpp",
304    ],
305}
306
307// Build Rust bindings for PermissionController. Needed by keystore2.
308aidl_interface {
309    name: "android.os.permissions_aidl",
310    unstable: true,
311    local_include_dir: ".",
312    srcs: [
313        "android/os/IPermissionController.aidl",
314    ],
315    backend: {
316        rust: {
317            enabled: true,
318        },
319    },
320}
321
322// Avoid including Parcelable classes as we don't want to have two copies of
323// Parcelable cross the libraries. This is used by telephony-common (frameworks/opt/telephony)
324// and TeleService app (packages/services/Telephony).
325filegroup {
326    name: "framework-telephony-common-shared-srcs",
327    srcs: [
328        ":modules-utils-preconditions-srcs",
329        "android/os/RegistrantList.java",
330        "android/os/Registrant.java",
331        "android/util/IndentingPrintWriter.java",
332        "android/util/LocalLog.java",
333        "android/util/TimeUtils.java",
334        "com/android/internal/os/SomeArgs.java",
335        "com/android/internal/util/AsyncChannel.java",
336        "com/android/internal/util/AsyncService.java",
337        "com/android/internal/util/BitwiseInputStream.java",
338        "com/android/internal/util/FastXmlSerializer.java",
339        "com/android/internal/util/HexDump.java",
340        "com/android/internal/util/IState.java",
341        "com/android/internal/util/IndentingPrintWriter.java",
342        "com/android/internal/util/State.java",
343        "com/android/internal/util/StateMachine.java",
344        "com/android/internal/util/UserIcons.java",
345    ],
346}
347
348// Avoid including Parcelable classes as we don't want to have two copies of
349// Parcelable cross the process.
350filegroup {
351    name: "framework-cellbroadcast-shared-srcs",
352    srcs: [
353        ":modules-utils-preconditions-srcs",
354        "android/os/HandlerExecutor.java",
355        "android/util/LocalLog.java",
356        "com/android/internal/util/IState.java",
357        "com/android/internal/util/State.java",
358        "com/android/internal/util/StateMachine.java",
359    ],
360}
361
362filegroup {
363    name: "framework-ims-common-shared-srcs",
364    srcs: [
365        ":modules-utils-preconditions-srcs",
366        "android/os/RegistrantList.java",
367        "android/os/Registrant.java",
368        "com/android/internal/os/SomeArgs.java",
369    ],
370}
371
372// utility classes statically linked into wifi-service
373filegroup {
374    name: "framework-wifi-service-shared-srcs",
375    srcs: [
376        "android/net/InterfaceConfiguration.java",
377        "android/util/BackupUtils.java",
378        "android/util/Rational.java",
379        "com/android/internal/util/FastXmlSerializer.java",
380        "com/android/internal/util/HexDump.java",
381        "com/android/internal/util/IState.java",
382        "com/android/internal/util/MessageUtils.java",
383        "com/android/internal/util/State.java",
384        "com/android/internal/util/StateMachine.java",
385        "com/android/internal/util/WakeupMessage.java",
386    ],
387    visibility: [
388        "//frameworks/opt/net/wifi/service",
389        "//packages/modules/Wifi/service",
390    ],
391}
392
393// protolog start
394filegroup {
395    name: "protolog-common-src",
396    srcs: [
397        "com/android/internal/protolog/common/**/*.java",
398    ],
399}
400
401java_library {
402    name: "protolog-lib",
403    platform_apis: true,
404    srcs: [
405        "com/android/internal/protolog/ProtoLogImpl.java",
406        "com/android/internal/protolog/ProtoLogViewerConfigReader.java",
407        ":protolog-common-src",
408    ],
409}
410
411java_library {
412    name: "protolog-groups",
413    srcs: [
414        "com/android/internal/protolog/ProtoLogGroup.java",
415        ":protolog-common-src",
416    ],
417}
418
419// protolog end
420