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: "IBinaryTransparencyService.aidl",
33    srcs: ["com/android/internal/os/IBinaryTransparencyService.aidl"],
34}
35
36filegroup {
37    name: "ITracingServiceProxy.aidl",
38    srcs: ["android/tracing/ITracingServiceProxy.aidl"],
39}
40
41filegroup {
42    name: "TraceReportParams.aidl",
43    srcs: ["android/tracing/TraceReportParams.aidl"],
44}
45
46filegroup {
47    name: "framework-internal-display-sources",
48    srcs: ["com/android/internal/display/BrightnessSynchronizer.java"],
49    visibility: ["//frameworks/base/services/tests/mockingservicestests"],
50}
51
52// These are subset of framework-core-sources that are needed by the
53// android.test.mock library. The implementation of android.test.mock references
54// private members of various components to allow mocking of classes that cannot
55// be mocked without access to those internal implementation details.
56filegroup {
57    name: "framework-core-sources-for-test-mock",
58    srcs: [
59        "android/accounts/AccountManagerCallback.java",
60        "android/accounts/AccountManagerFuture.java",
61        "android/accounts/AccountManager.java",
62        "android/accounts/AccountsException.java",
63        "android/accounts/AuthenticatorException.java",
64        "android/accounts/OperationCanceledException.java",
65        "android/app/Application.java",
66        "android/app/IApplicationThread.aidl",
67        "android/app/IServiceConnection.aidl",
68        "android/app/PackageDeleteObserver.java",
69        "android/content/ComponentCallbacks2.java",
70        "android/content/ComponentCallbacks.java",
71        "android/content/ContentInterface.java",
72        "android/content/ContentProvider.java",
73        "android/content/ContentProviderNative.java",
74        "android/content/ContentResolver.java",
75        "android/content/Context.java",
76        "android/content/ContextWrapper.java",
77        "android/content/DialogInterface.java",
78        "android/content/IContentProvider.java",
79        "android/content/Intent.java",
80        "android/content/IntentSender.java",
81        "android/content/OperationApplicationException.java",
82        "android/content/pm/ActivityInfo.java",
83        "android/content/pm/ApplicationInfo.java",
84        "android/content/pm/InstantAppInfo.java",
85        "android/content/pm/IPackageDataObserver.aidl",
86        "android/content/pm/KeySet.java",
87        "android/content/pm/PackageManager.java",
88        "android/content/pm/VerifierDeviceIdentity.java",
89        "android/content/res/Resources.java",
90        "android/database/CrossProcessCursor.java",
91        "android/database/CrossProcessCursorWrapper.java",
92        "android/database/Cursor.java",
93        "android/database/CursorWrapper.java",
94        "android/os/Binder.java",
95        "android/os/Bundle.java",
96        "android/os/IBinder.java",
97        "android/os/IInterface.java",
98        "android/os/Parcelable.java",
99        "android/os/ParcelFileDescriptor.java",
100        "android/os/RemoteException.java",
101        "android/os/storage/VolumeInfo.java",
102        "android/util/AndroidException.java",
103        "android/view/DisplayAdjustments.java",
104        "android/view/ViewDebug.java",
105    ],
106    visibility: ["//frameworks/base/test-mock"],
107}
108
109filegroup {
110    name: "libincident_aidl",
111    srcs: [
112        "android/os/IIncidentDumpCallback.aidl",
113        "android/os/IIncidentManager.aidl",
114        "android/os/IIncidentReportStatusListener.aidl",
115    ],
116}
117
118filegroup {
119    name: "libvibrator_aidl",
120    srcs: [
121        "android/os/IExternalVibrationController.aidl",
122        "android/os/IExternalVibratorService.aidl",
123    ],
124}
125
126filegroup {
127    name: "libpowermanager_aidl",
128    srcs: [
129        "android/os/Temperature.aidl",
130        "android/os/CoolingDevice.aidl",
131        "android/os/IHintManager.aidl",
132        "android/os/IHintSession.aidl",
133        "android/os/IThermalEventListener.aidl",
134        "android/os/IThermalStatusListener.aidl",
135        "android/os/IThermalService.aidl",
136        "android/os/IPowerManager.aidl",
137        "android/os/IWakeLockCallback.aidl",
138    ],
139}
140
141filegroup {
142    name: "ILogcatManagerService_aidl",
143    srcs: ["android/os/logcat/ILogcatManagerService.aidl"],
144}
145
146genrule {
147    name: "statslog-framework-java-gen",
148    tools: ["stats-log-api-gen"],
149    cmd: "$(location stats-log-api-gen) --java $(out) --module framework" +
150        " --javaPackage com.android.internal.util --javaClass FrameworkStatsLog --worksource",
151    out: ["com/android/internal/util/FrameworkStatsLog.java"],
152}
153
154// Library that provides functionality to log UiEvents in framework space.
155// If this functionality is needed outside the framework, the interfaces library
156// can be re-used and a local implementation is needed.
157java_library {
158    name: "uieventloggerlib",
159    srcs: [
160        "com/android/internal/logging/UiEventLoggerImpl.java",
161        ":statslog-framework-java-gen",
162    ],
163    static_libs: ["modules-utils-uieventlogger-interface"],
164}
165
166java_library {
167    name: "modules-utils-locallog",
168    srcs: ["android/util/LocalLog.java"],
169    libs: ["unsupportedappusage"],
170    sdk_version: "module_current",
171    min_sdk_version: "30",
172    apex_available: [
173        "//apex_available:anyapex",
174        "//apex_available:platform",
175    ],
176    visibility: ["//visibility:public"],
177}
178
179// keep these files in sync with the package/Tethering/jarjar-rules.txt and
180// package/Connectivity/jarjar-rules.txt for the tethering module and connectivity module.
181filegroup {
182    name: "framework-connectivity-shared-srcs",
183    srcs: [
184        "android/util/IndentingPrintWriter.java",
185        "android/util/LocalLog.java",
186        // This should be android.util.IndentingPrintWriter, but it's not available in all branches.
187        "com/android/internal/util/IndentingPrintWriter.java",
188        "com/android/internal/util/MessageUtils.java",
189        "com/android/internal/util/WakeupMessage.java",
190    ],
191}
192
193// keep these files in sync with the packages/modules/Connectivity jarjar-rules.txt for
194// the connectivity module.
195filegroup {
196    name: "framework-connectivity-api-shared-srcs",
197    srcs: [
198        "android/util/IndentingPrintWriter.java",
199        "com/android/internal/util/FileRotator.java",
200    ],
201}
202
203// keep these files in sync with the apex/jobscheduler/service jarjar-rules.txt for
204// the jobscheduler module.
205filegroup {
206    name: "framework-jobscheduler-shared-srcs",
207    srcs: [
208        ":modules-utils-preconditions-srcs",
209        "com/android/internal/util/ArrayUtils.java",
210        "com/android/internal/util/BitUtils.java",
211        "com/android/internal/util/CollectionUtils.java",
212        "com/android/internal/util/ConcurrentUtils.java",
213        "com/android/internal/util/DumpUtils.java",
214        "com/android/internal/util/FastPrintWriter.java",
215        "com/android/internal/util/FastXmlSerializer.java",
216        "com/android/internal/util/FunctionalUtils.java",
217        "com/android/internal/util/ParseUtils.java",
218        "com/android/internal/util/RingBufferIndices.java",
219        "com/android/internal/util/StatLogger.java",
220        "com/android/internal/util/XmlUtils.java",
221    ],
222}
223
224// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module.
225filegroup {
226    name: "framework-permission-s-shared-srcs",
227    srcs: [
228        ":modules-utils-preconditions-srcs",
229        "com/android/internal/infra/AndroidFuture.java",
230        "com/android/internal/infra/ServiceConnector.java",
231        "com/android/internal/infra/AndroidFuture.aidl",
232        "com/android/internal/infra/IAndroidFuture.aidl",
233        "android/os/HandlerExecutor.java",
234    ],
235}
236
237// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module.
238filegroup {
239    name: "service-permission-shared-srcs",
240    srcs: [
241        "android/util/IndentingPrintWriter.java",
242        "com/android/internal/util/dump/DualDumpOutputStream.java",
243    ],
244}
245
246filegroup {
247    name: "incremental_aidl",
248    srcs: [
249        "android/os/incremental/IIncrementalServiceConnector.aidl",
250        "android/os/incremental/IncrementalFileSystemControlParcel.aidl",
251    ],
252}
253
254filegroup {
255    name: "dataloader_aidl",
256    srcs: [
257        "android/content/pm/DataLoaderParamsParcel.aidl",
258        "android/content/pm/DataLoaderType.aidl",
259        "android/content/pm/FileSystemControlParcel.aidl",
260        "android/content/pm/IDataLoader.aidl",
261        "android/content/pm/IDataLoaderManager.aidl",
262        "android/content/pm/InstallationFileParcel.aidl",
263        "android/content/pm/InstallationFileLocation.aidl",
264        "android/content/pm/IDataLoaderStatusListener.aidl",
265        "android/content/pm/IPackageInstallerSessionFileSystemConnector.aidl",
266    ],
267}
268
269filegroup {
270    name: "incremental_manager_aidl",
271    srcs: [
272        "android/os/incremental/IIncrementalService.aidl",
273        "android/os/incremental/IStorageLoadingProgressListener.aidl",
274        "android/os/incremental/IncrementalNewFileParams.aidl",
275        "android/os/incremental/IStorageHealthListener.aidl",
276        "android/os/incremental/PerUidReadTimeouts.aidl",
277        "android/os/incremental/StorageHealthCheckParams.aidl",
278    ],
279}
280
281filegroup {
282    name: "activity_manager_procstate_aidl",
283    srcs: [
284        "android/app/ProcessStateEnum.aidl",
285    ],
286}
287
288filegroup {
289    name: "hwbinder-stubs-srcs",
290    srcs: [
291        "android/os/HidlSupport.java",
292        "android/os/HidlMemory.java",
293        "android/os/HwBinder.java",
294        "android/os/HwBlob.java",
295        "android/os/HwParcel.java",
296        "android/os/IHwBinder.java",
297        "android/os/IHwInterface.java",
298        "android/os/DeadObjectException.java",
299        "android/os/DeadSystemException.java",
300        "android/os/NativeHandle.java",
301        "android/os/RemoteException.java",
302        "android/util/AndroidException.java",
303    ],
304    visibility: [
305        "//frameworks/base",
306        "//frameworks/base/api",
307    ],
308}
309
310cc_defaults {
311    name: "incremental_default",
312    cflags: [
313        "-Wall",
314        "-Wextra",
315        "-Wextra-semi",
316        "-Werror",
317        "-Wzero-as-null-pointer-constant",
318        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
319    ],
320    shared_libs: [
321        "libbinder",
322        "libutils",
323    ],
324    aidl: {
325        include_dirs: [
326            "frameworks/native/aidl/binder",
327        ],
328        export_aidl_headers: true,
329    },
330}
331
332cc_library {
333    name: "libincremental_aidl-cpp",
334    srcs: [
335        ":incremental_aidl",
336    ],
337    defaults: ["incremental_default"],
338}
339
340cc_library {
341    name: "libdataloader_aidl-cpp",
342    srcs: [
343        ":dataloader_aidl",
344    ],
345    defaults: ["incremental_default"],
346    shared_libs: [
347        "libincremental_aidl-cpp",
348    ],
349}
350
351cc_library {
352    name: "libincremental_manager_aidl-cpp",
353    srcs: [
354        ":incremental_manager_aidl",
355    ],
356    defaults: ["incremental_default"],
357    shared_libs: [
358        "libincremental_aidl-cpp",
359        "libdataloader_aidl-cpp",
360    ],
361}
362
363cc_library {
364    name: "libactivity_manager_procstate_aidl-cpp",
365    host_supported: true,
366    srcs: [
367        ":activity_manager_procstate_aidl",
368    ],
369    aidl: {
370        export_aidl_headers: true,
371    },
372}
373
374// Build Rust bindings for PermissionController. Needed by keystore2.
375aidl_interface {
376    name: "android.os.permissions_aidl",
377    unstable: true,
378    local_include_dir: ".",
379    srcs: [
380        "android/os/IPermissionController.aidl",
381    ],
382    backend: {
383        rust: {
384            enabled: true,
385            apex_available: [
386                "//apex_available:platform",
387                "com.android.virt", // for virtualizationservice
388            ],
389        },
390    },
391}
392
393// Build Rust bindings for remote provisioning. Needed by keystore2.
394aidl_interface {
395    name: "android.security.rkp_aidl",
396    unstable: true,
397    srcs: [
398        "android/security/rkp/*.aidl",
399    ],
400    backend: {
401        rust: {
402            enabled: true,
403        },
404    },
405}
406
407aidl_interface {
408    name: "android.debug_aidl",
409    unstable: true,
410    srcs: [
411        "android/debug/AdbTransportType.aidl",
412        "android/debug/FingerprintAndPairDevice.aidl",
413        "android/debug/IAdbCallback.aidl",
414        "android/debug/IAdbManager.aidl",
415        "android/debug/PairDevice.aidl",
416    ],
417    backend: {
418        cpp: {
419            enabled: true,
420        },
421    },
422}
423
424filegroup {
425    name: "frameworks-base-java-overview",
426    srcs: ["overview.html"],
427}
428
429// Avoid including Parcelable classes as we don't want to have two copies of
430// Parcelable cross the libraries. This is used by telephony-common (frameworks/opt/telephony)
431// and TeleService app (packages/services/Telephony).
432filegroup {
433    name: "framework-telephony-common-shared-srcs",
434    srcs: [
435        "android/os/RegistrantList.java",
436        "android/os/Registrant.java",
437        "android/util/IndentingPrintWriter.java",
438        "android/util/LocalLog.java",
439        "android/util/TimeUtils.java",
440        "com/android/internal/os/SomeArgs.java",
441        "com/android/internal/util/AsyncChannel.java",
442        "com/android/internal/util/AsyncService.java",
443        "com/android/internal/util/BitwiseInputStream.java",
444        "com/android/internal/util/FastXmlSerializer.java",
445        "com/android/internal/util/HexDump.java",
446        "com/android/internal/util/IndentingPrintWriter.java",
447        "com/android/internal/util/UserIcons.java",
448    ],
449}
450
451filegroup {
452    name: "framework-ims-common-shared-srcs",
453    srcs: [
454        ":modules-utils-preconditions-srcs",
455        "android/os/RegistrantList.java",
456        "android/os/Registrant.java",
457        "com/android/internal/os/SomeArgs.java",
458    ],
459}
460
461// This file group is used by service fuzzer
462filegroup {
463    name: "framework-core-sources-for-fuzzers",
464    srcs: [
465        "android/os/IInterface.java",
466        "android/os/Binder.java",
467        "android/os/IBinder.java",
468        "android/os/Parcelable.java",
469    ],
470}
471
472aidl_interface {
473    name: "android.os.statsbootstrap_aidl",
474    unstable: true,
475    srcs: [
476        "android/os/IStatsBootstrapAtomService.aidl",
477        "android/os/StatsBootstrapAtom.aidl",
478        "android/os/StatsBootstrapAtomValue.aidl",
479    ],
480    backend: {
481        cpp: {
482            enabled: true,
483        },
484    },
485}
486
487// utility classes statically linked into wifi-service
488filegroup {
489    name: "framework-wifi-service-shared-srcs",
490    srcs: [
491        "android/net/InterfaceConfiguration.java",
492        "android/util/BackupUtils.java",
493        "android/util/Rational.java",
494        "com/android/internal/util/FastXmlSerializer.java",
495        "com/android/internal/util/HexDump.java",
496        "com/android/internal/util/MessageUtils.java",
497        "com/android/internal/util/WakeupMessage.java",
498    ],
499    visibility: [
500        "//frameworks/opt/net/wifi/service",
501        "//packages/modules/Wifi/service",
502    ],
503}
504
505// protolog start
506filegroup {
507    name: "protolog-common-src",
508    srcs: [
509        "com/android/internal/protolog/common/**/*.java",
510    ],
511}
512
513// common protolog sources without classes that rely on Android SDK
514filegroup {
515    name: "protolog-common-no-android-src",
516    srcs: [
517        ":protolog-common-src",
518    ],
519    exclude_srcs: [
520        "com/android/internal/protolog/common/ProtoLog.java",
521    ],
522}
523
524java_library {
525    name: "protolog-lib",
526    platform_apis: true,
527    srcs: [
528        "com/android/internal/protolog/ProtoLogImpl.java",
529        "com/android/internal/protolog/ProtoLogViewerConfigReader.java",
530        ":protolog-common-src",
531    ],
532}
533
534java_library {
535    name: "protolog-groups",
536    srcs: [
537        "com/android/internal/protolog/ProtoLogGroup.java",
538        ":protolog-common-src",
539    ],
540}
541
542// protolog end
543