summaryrefslogtreecommitdiff
path: root/Android.bp
blob: e65ba0f6a95fb9f373e9347c819e9e227972e985 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Build the master framework library.

// READ ME: ########################################################
//
// When updating this list of aidl files, consider if that aidl is
// part of the SDK API.  If it is, also add it to the list in Android.mk
// that is preprocessed and distributed with the SDK.  This list should
// not contain any aidl files for parcelables, but the one below should
// if you intend for 3rd parties to be able to send those objects
// across process boundaries.
//
// READ ME: ########################################################

java_library {
    name: "framework",

    srcs: [
        // From build/make/core/pathmap.mk FRAMEWORK_BASE_SUBDIRS
        "core/java/**/*.java",
        "graphics/java/**/*.java",
        "location/java/**/*.java",
        "lowpan/java/**/*.java",
        "media/java/**/*.java",
        "media/mca/effect/java/**/*.java",
        "media/mca/filterfw/java/**/*.java",
        "media/mca/filterpacks/java/**/*.java",
        "drm/java/**/*.java",
        "opengl/java/**/*.java",
        "sax/java/**/*.java",
        "telecomm/java/**/*.java",
        "telephony/java/**/*.java",
        "wifi/java/**/*.java",
        "keystore/java/**/*.java",
        "rs/java/**/*.java",

        ":framework-javastream-protos",

        "core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl",
        "core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl",
        "core/java/android/accounts/IAccountManager.aidl",
        "core/java/android/accounts/IAccountManagerResponse.aidl",
        "core/java/android/accounts/IAccountAuthenticator.aidl",
        "core/java/android/accounts/IAccountAuthenticatorResponse.aidl",
        "core/java/android/app/IActivityController.aidl",
        "core/java/android/app/IActivityManager.aidl",
        "core/java/android/app/IActivityPendingResult.aidl",
        "core/java/android/app/IAlarmCompleteListener.aidl",
        "core/java/android/app/IAlarmListener.aidl",
        "core/java/android/app/IAlarmManager.aidl",
        "core/java/android/app/IAppTask.aidl",
        "core/java/android/app/IApplicationThread.aidl",
        "core/java/android/app/IAssistDataReceiver.aidl",
        "core/java/android/app/ITaskStackListener.aidl",
        "core/java/android/app/IBackupAgent.aidl",
        "core/java/android/app/IEphemeralResolver.aidl",
        "core/java/android/app/IInputForwarder.aidl",
        "core/java/android/app/IInstantAppResolver.aidl",
        "core/java/android/app/IInstrumentationWatcher.aidl",
        "core/java/android/app/INotificationManager.aidl",
        "core/java/android/app/IProcessObserver.aidl",
        "core/java/android/app/ISearchManager.aidl",
        "core/java/android/app/ISearchManagerCallback.aidl",
        "core/java/android/app/IServiceConnection.aidl",
        "core/java/android/app/IStopUserCallback.aidl",
        "core/java/android/app/job/IJobCallback.aidl",
        "core/java/android/app/job/IJobScheduler.aidl",
        "core/java/android/app/job/IJobService.aidl",
        "core/java/android/app/ITransientNotification.aidl",
        "core/java/android/app/IUidObserver.aidl",
        "core/java/android/app/IUiAutomationConnection.aidl",
        "core/java/android/app/IUiModeManager.aidl",
        "core/java/android/app/IUserSwitchObserver.aidl",
        "core/java/android/app/IWallpaperManager.aidl",
        "core/java/android/app/IWallpaperManagerCallback.aidl",
        "core/java/android/app/admin/IDeviceAdminService.aidl",
        "core/java/android/app/admin/IDevicePolicyManager.aidl",
        "core/java/android/app/trust/IStrongAuthTracker.aidl",
        "core/java/android/app/trust/ITrustManager.aidl",
        "core/java/android/app/trust/ITrustListener.aidl",
        "core/java/android/app/backup/IBackupManager.aidl",
        "core/java/android/app/backup/IBackupObserver.aidl",
        "core/java/android/app/backup/IBackupManagerMonitor.aidl",
        "core/java/android/app/backup/IFullBackupRestoreObserver.aidl",
        "core/java/android/app/backup/IRestoreObserver.aidl",
        "core/java/android/app/backup/IRestoreSession.aidl",
        "core/java/android/app/backup/ISelectBackupTransportCallback.aidl",
        "core/java/android/app/slice/ISliceManager.aidl",
        "core/java/android/app/slice/ISliceListener.aidl",
        "core/java/android/app/timezone/ICallback.aidl",
        "core/java/android/app/timezone/IRulesManager.aidl",
        "core/java/android/app/usage/ICacheQuotaService.aidl",
        "core/java/android/app/usage/IStorageStatsManager.aidl",
        "core/java/android/app/usage/IUsageStatsManager.aidl",
        ":libbluetooth-binder-aidl",
        "core/java/android/content/IClipboard.aidl",
        "core/java/android/content/IContentService.aidl",
        "core/java/android/content/IIntentReceiver.aidl",
        "core/java/android/content/IIntentSender.aidl",
        "core/java/android/content/IOnPrimaryClipChangedListener.aidl",
        "core/java/android/content/IRestrictionsManager.aidl",
        "core/java/android/content/ISyncAdapter.aidl",
        "core/java/android/content/ISyncAdapterUnsyncableAccountCallback.aidl",
        "core/java/android/content/ISyncContext.aidl",
        "core/java/android/content/ISyncServiceAdapter.aidl",
        "core/java/android/content/ISyncStatusObserver.aidl",
        "core/java/android/content/om/IOverlayManager.aidl",
        "core/java/android/content/pm/ICrossProfileApps.aidl",
        "core/java/android/content/pm/IDexModuleRegisterCallback.aidl",
        "core/java/android/content/pm/ILauncherApps.aidl",
        "core/java/android/content/pm/IOnAppsChangedListener.aidl",
        "core/java/android/content/pm/IOnPermissionsChangeListener.aidl",
        "core/java/android/content/pm/IOtaDexopt.aidl",
        "core/java/android/content/pm/IPackageDataObserver.aidl",
        "core/java/android/content/pm/IPackageDeleteObserver.aidl",
        "core/java/android/content/pm/IPackageDeleteObserver2.aidl",
        "core/java/android/content/pm/IPackageInstallObserver2.aidl",
        "core/java/android/content/pm/IPackageInstaller.aidl",
        "core/java/android/content/pm/IPackageInstallerCallback.aidl",
        "core/java/android/content/pm/IPackageInstallerSession.aidl",
        "core/java/android/content/pm/IPackageManager.aidl",
        ":libbinder_aidl",
        "core/java/android/content/pm/IPackageMoveObserver.aidl",
        "core/java/android/content/pm/IPackageStatsObserver.aidl",
        "core/java/android/content/pm/IPinItemRequest.aidl",
        "core/java/android/content/pm/IShortcutService.aidl",
        "core/java/android/content/pm/dex/IArtManager.aidl",
        "core/java/android/content/pm/dex/ISnapshotRuntimeProfileCallback.aidl",
        "core/java/android/content/pm/permission/IRuntimePermissionPresenter.aidl",
        "core/java/android/database/IContentObserver.aidl",
        ":libcamera_client_aidl",
        ":libcamera_client_framework_aidl",
        "core/java/android/hardware/IConsumerIrService.aidl",
        "core/java/android/hardware/ISerialManager.aidl",
        "core/java/android/hardware/display/IDisplayManager.aidl",
        "core/java/android/hardware/display/IDisplayManagerCallback.aidl",
        "core/java/android/hardware/display/IVirtualDisplayCallback.aidl",
        "core/java/android/hardware/fingerprint/IFingerprintClientActiveCallback.aidl",
        "core/java/android/hardware/fingerprint/IFingerprintDialogReceiver.aidl",
        "core/java/android/hardware/fingerprint/IFingerprintService.aidl",
        "core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl",
        "core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl",
        "core/java/android/hardware/hdmi/IHdmiControlCallback.aidl",
        "core/java/android/hardware/hdmi/IHdmiControlService.aidl",
        "core/java/android/hardware/hdmi/IHdmiDeviceEventListener.aidl",
        "core/java/android/hardware/hdmi/IHdmiHotplugEventListener.aidl",
        "core/java/android/hardware/hdmi/IHdmiInputChangeListener.aidl",
        "core/java/android/hardware/hdmi/IHdmiMhlVendorCommandListener.aidl",
        "core/java/android/hardware/hdmi/IHdmiRecordListener.aidl",
        "core/java/android/hardware/hdmi/IHdmiSystemAudioModeChangeListener.aidl",
        "core/java/android/hardware/hdmi/IHdmiVendorCommandListener.aidl",
        "core/java/android/hardware/input/IInputManager.aidl",
        "core/java/android/hardware/input/IInputDevicesChangedListener.aidl",
        "core/java/android/hardware/input/ITabletModeChangedListener.aidl",
        "core/java/android/hardware/location/IActivityRecognitionHardware.aidl",
        "core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl",
        "core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl",
        "core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl",
        "core/java/android/hardware/location/IFusedLocationHardware.aidl",
        "core/java/android/hardware/location/IFusedLocationHardwareSink.aidl",
        "core/java/android/hardware/location/IGeofenceHardware.aidl",
        "core/java/android/hardware/location/IGeofenceHardwareCallback.aidl",
        "core/java/android/hardware/location/IGeofenceHardwareMonitorCallback.aidl",
        "core/java/android/hardware/location/IContextHubCallback.aidl",
        "core/java/android/hardware/location/IContextHubClient.aidl",
        "core/java/android/hardware/location/IContextHubClientCallback.aidl",
        "core/java/android/hardware/location/IContextHubService.aidl",
        "core/java/android/hardware/location/IContextHubTransactionCallback.aidl",
        "core/java/android/hardware/radio/IAnnouncementListener.aidl",
        "core/java/android/hardware/radio/ICloseHandle.aidl",
        "core/java/android/hardware/radio/IRadioService.aidl",
        "core/java/android/hardware/radio/ITuner.aidl",
        "core/java/android/hardware/radio/ITunerCallback.aidl",
        "core/java/android/hardware/soundtrigger/IRecognitionStatusCallback.aidl",
        "core/java/android/hardware/usb/IUsbManager.aidl",
        "core/java/android/net/ICaptivePortal.aidl",
        "core/java/android/net/IConnectivityManager.aidl",
        "core/java/android/net/IIpConnectivityMetrics.aidl",
        "core/java/android/net/IEthernetManager.aidl",
        "core/java/android/net/IEthernetServiceListener.aidl",
        "core/java/android/net/INetdEventCallback.aidl",
        "core/java/android/net/IIpSecService.aidl",
        "core/java/android/net/INetworkManagementEventObserver.aidl",
        "core/java/android/net/INetworkPolicyListener.aidl",
        "core/java/android/net/INetworkPolicyManager.aidl",
        "core/java/android/net/INetworkRecommendationProvider.aidl",
        "core/java/android/net/INetworkScoreCache.aidl",
        "core/java/android/net/INetworkScoreService.aidl",
        "core/java/android/net/INetworkStatsService.aidl",
        "core/java/android/net/INetworkStatsSession.aidl",
        "core/java/android/net/ITetheringStatsProvider.aidl",
        "core/java/android/net/nsd/INsdManager.aidl",
        "core/java/android/nfc/IAppCallback.aidl",
        "core/java/android/nfc/INfcAdapter.aidl",
        "core/java/android/nfc/INfcAdapterExtras.aidl",
        "core/java/android/nfc/INfcTag.aidl",
        "core/java/android/nfc/INfcCardEmulation.aidl",
        "core/java/android/nfc/INfcFCardEmulation.aidl",
        "core/java/android/nfc/INfcUnlockHandler.aidl",
        "core/java/android/nfc/INfcDta.aidl",
        "core/java/android/nfc/ITagRemovedCallback.aidl",
        "core/java/android/se/omapi/ISecureElementService.aidl",
        "core/java/android/se/omapi/ISecureElementListener.aidl",
        "core/java/android/se/omapi/ISecureElementChannel.aidl",
        "core/java/android/se/omapi/ISecureElementReader.aidl",
        "core/java/android/se/omapi/ISecureElementSession.aidl",
        "core/java/android/os/IBatteryPropertiesListener.aidl",
        "core/java/android/os/IBatteryPropertiesRegistrar.aidl",
        "core/java/android/os/ICancellationSignal.aidl",
        "core/java/android/os/IDeviceIdentifiersPolicyService.aidl",
        "core/java/android/os/IDeviceIdleController.aidl",
        "core/java/android/os/IHardwarePropertiesManager.aidl",
        "core/java/android/os/IIncidentManager.aidl",
        "core/java/android/os/IIncidentReportStatusListener.aidl",
        "core/java/android/os/IMaintenanceActivityListener.aidl",
        "core/java/android/os/IMessenger.aidl",
        "core/java/android/os/INetworkActivityListener.aidl",
        "core/java/android/os/INetworkManagementService.aidl",
        "core/java/android/os/IPermissionController.aidl",
        "core/java/android/os/IProcessInfoService.aidl",
        "core/java/android/os/IProgressListener.aidl",
        "core/java/android/os/IPowerManager.aidl",
        "core/java/android/os/IRecoverySystem.aidl",
        "core/java/android/os/IRecoverySystemProgressListener.aidl",
        "core/java/android/os/IRemoteCallback.aidl",
        "core/java/android/os/ISchedulingPolicyService.aidl",
        "core/java/android/os/IStatsCompanionService.aidl",
        "core/java/android/os/IStatsManager.aidl",
        "core/java/android/os/ISystemUpdateManager.aidl",
        "core/java/android/os/IThermalEventListener.aidl",
        "core/java/android/os/IThermalService.aidl",
        "core/java/android/os/IUpdateLock.aidl",
        "core/java/android/os/IUserManager.aidl",
        "core/java/android/os/IVibratorService.aidl",
        "core/java/android/os/storage/IStorageManager.aidl",
        "core/java/android/os/storage/IStorageEventListener.aidl",
        "core/java/android/os/storage/IStorageShutdownObserver.aidl",
        "core/java/android/os/storage/IObbActionListener.aidl",
        ":keystore_aidl",
        "core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl",
        "core/java/android/service/autofill/IAutoFillService.aidl",
        "core/java/android/service/autofill/IAutofillFieldClassificationService.aidl",
        "core/java/android/service/autofill/IFillCallback.aidl",
        "core/java/android/service/autofill/ISaveCallback.aidl",
        "core/java/android/service/carrier/ICarrierService.aidl",
        "core/java/android/service/carrier/ICarrierMessagingCallback.aidl",
        "core/java/android/service/carrier/ICarrierMessagingService.aidl",
        "core/java/android/service/euicc/IDeleteSubscriptionCallback.aidl",
        "core/java/android/service/euicc/IDownloadSubscriptionCallback.aidl",
        "core/java/android/service/euicc/IEraseSubscriptionsCallback.aidl",
        "core/java/android/service/euicc/IEuiccService.aidl",
        "core/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl",
        "core/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl",
        "core/java/android/service/euicc/IGetEidCallback.aidl",
        "core/java/android/service/euicc/IGetEuiccInfoCallback.aidl",
        "core/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl",
        "core/java/android/service/euicc/IGetOtaStatusCallback.aidl",
        "core/java/android/service/euicc/IOtaStatusChangedCallback.aidl",
        "core/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl",
        "core/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl",
        "core/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl",
        "core/java/android/service/gatekeeper/IGateKeeperService.aidl",
        "core/java/android/service/notification/INotificationListener.aidl",
        "core/java/android/service/notification/IStatusBarNotificationHolder.aidl",
        "core/java/android/service/notification/IConditionListener.aidl",
        "core/java/android/service/notification/IConditionProvider.aidl",
        "core/java/android/service/settings/suggestions/ISuggestionService.aidl",
        "core/java/android/service/vr/IPersistentVrStateCallbacks.aidl",
        "core/java/android/service/vr/IVrListener.aidl",
        "core/java/android/service/vr/IVrManager.aidl",
        "core/java/android/service/vr/IVrStateCallbacks.aidl",
        "core/java/android/print/ILayoutResultCallback.aidl",
        "core/java/android/print/IPrinterDiscoveryObserver.aidl",
        "core/java/android/print/IPrintDocumentAdapter.aidl",
        "core/java/android/print/IPrintDocumentAdapterObserver.aidl",
        "core/java/android/print/IPrintJobStateChangeListener.aidl",
        "core/java/android/print/IPrintServicesChangeListener.aidl",
        "core/java/android/printservice/recommendation/IRecommendationsChangeListener.aidl",
        "core/java/android/print/IPrintManager.aidl",
        "core/java/android/print/IPrintSpooler.aidl",
        "core/java/android/print/IPrintSpoolerCallbacks.aidl",
        "core/java/android/print/IPrintSpoolerClient.aidl",
        "core/java/android/printservice/recommendation/IRecommendationServiceCallbacks.aidl",
        "core/java/android/printservice/recommendation/IRecommendationService.aidl",
        "core/java/android/print/IWriteResultCallback.aidl",
        "core/java/android/printservice/IPrintService.aidl",
        "core/java/android/printservice/IPrintServiceClient.aidl",
        "core/java/android/companion/ICompanionDeviceManager.aidl",
        "core/java/android/companion/ICompanionDeviceDiscoveryService.aidl",
        "core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl",
        "core/java/android/companion/IFindDeviceCallback.aidl",
        "core/java/android/service/dreams/IDreamManager.aidl",
        "core/java/android/service/dreams/IDreamService.aidl",
        "core/java/android/service/oemlock/IOemLockService.aidl",
        "core/java/android/service/persistentdata/IPersistentDataBlockService.aidl",
        "core/java/android/service/trust/ITrustAgentService.aidl",
        "core/java/android/service/trust/ITrustAgentServiceCallback.aidl",
        "core/java/android/service/voice/IVoiceInteractionService.aidl",
        "core/java/android/service/voice/IVoiceInteractionSession.aidl",
        "core/java/android/service/voice/IVoiceInteractionSessionService.aidl",
        "core/java/android/service/wallpaper/IWallpaperConnection.aidl",
        "core/java/android/service/wallpaper/IWallpaperEngine.aidl",
        "core/java/android/service/wallpaper/IWallpaperService.aidl",
        "core/java/android/service/chooser/IChooserTargetService.aidl",
        "core/java/android/service/chooser/IChooserTargetResult.aidl",
        "core/java/android/service/resolver/IResolverRankerService.aidl",
        "core/java/android/service/resolver/IResolverRankerResult.aidl",
        "core/java/android/service/textclassifier/ITextClassificationCallback.aidl",
        "core/java/android/service/textclassifier/ITextClassifierService.aidl",
        "core/java/android/service/textclassifier/ITextLinksCallback.aidl",
        "core/java/android/service/textclassifier/ITextSelectionCallback.aidl",
        "core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl",
        "core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl",
        "core/java/android/view/accessibility/IAccessibilityManager.aidl",
        "core/java/android/view/accessibility/IAccessibilityManagerClient.aidl",
        "core/java/android/view/autofill/IAutoFillManager.aidl",
        "core/java/android/view/autofill/IAutoFillManagerClient.aidl",
        "core/java/android/view/autofill/IAutofillWindowPresenter.aidl",
        "core/java/android/view/IApplicationToken.aidl",
        "core/java/android/view/IAppTransitionAnimationSpecsFuture.aidl",
        "core/java/android/view/IDockedStackListener.aidl",
        "core/java/android/view/IGraphicsStats.aidl",
        "core/java/android/view/IGraphicsStatsCallback.aidl",
        "core/java/android/view/IInputFilter.aidl",
        "core/java/android/view/IInputFilterHost.aidl",
        "core/java/android/view/IOnKeyguardExitResult.aidl",
        "core/java/android/view/IPinnedStackController.aidl",
        "core/java/android/view/IPinnedStackListener.aidl",
        "core/java/android/view/IRemoteAnimationRunner.aidl",
        "core/java/android/view/IRecentsAnimationController.aidl",
        "core/java/android/view/IRecentsAnimationRunner.aidl",
        "core/java/android/view/IRemoteAnimationFinishedCallback.aidl",
        "core/java/android/view/IRotationWatcher.aidl",
        "core/java/android/view/IWallpaperVisibilityListener.aidl",
        "core/java/android/view/IWindow.aidl",
        "core/java/android/view/IWindowFocusObserver.aidl",
        "core/java/android/view/IWindowId.aidl",
        "core/java/android/view/IWindowManager.aidl",
        "core/java/android/view/IWindowSession.aidl",
        "core/java/android/view/IWindowSessionCallback.aidl",
        "core/java/android/webkit/IWebViewUpdateService.aidl",
        "core/java/android/speech/IRecognitionListener.aidl",
        "core/java/android/speech/IRecognitionService.aidl",
        "core/java/android/speech/tts/ITextToSpeechCallback.aidl",
        "core/java/android/speech/tts/ITextToSpeechService.aidl",
        "core/java/com/android/internal/app/IAppOpsCallback.aidl",
        "core/java/com/android/internal/app/IAppOpsService.aidl",
        "core/java/com/android/internal/app/IBatteryStats.aidl",
        "core/java/com/android/internal/app/ISoundTriggerService.aidl",
        "core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl",
        "core/java/com/android/internal/app/IVoiceInteractionSessionListener.aidl",
        "core/java/com/android/internal/app/IVoiceInteractionSessionShowCallback.aidl",
        "core/java/com/android/internal/app/IVoiceInteractor.aidl",
        "core/java/com/android/internal/app/IVoiceInteractorCallback.aidl",
        "core/java/com/android/internal/app/IVoiceInteractorRequest.aidl",
        "core/java/com/android/internal/app/IMediaContainerService.aidl",
        "core/java/com/android/internal/app/procstats/IProcessStats.aidl",
        "core/java/com/android/internal/appwidget/IAppWidgetService.aidl",
        "core/java/com/android/internal/appwidget/IAppWidgetHost.aidl",
        "core/java/com/android/internal/backup/IBackupTransport.aidl",
        "core/java/com/android/internal/backup/IObbBackupService.aidl",
        "core/java/com/android/internal/inputmethod/IInputContentUriToken.aidl",
        "core/java/com/android/internal/net/INetworkWatchlistManager.aidl",
        "core/java/com/android/internal/policy/IKeyguardDrawnCallback.aidl",
        "core/java/com/android/internal/policy/IKeyguardDismissCallback.aidl",
        "core/java/com/android/internal/policy/IKeyguardExitCallback.aidl",
        "core/java/com/android/internal/policy/IKeyguardService.aidl",
        "core/java/com/android/internal/policy/IKeyguardStateCallback.aidl",
        "core/java/com/android/internal/policy/IShortcutService.aidl",
        "core/java/com/android/internal/os/IDropBoxManagerService.aidl",
        "core/java/com/android/internal/os/IParcelFileDescriptorFactory.aidl",
        "core/java/com/android/internal/os/IResultReceiver.aidl",
        "core/java/com/android/internal/os/IShellCallback.aidl",
        "core/java/com/android/internal/statusbar/IStatusBar.aidl",
        "core/java/com/android/internal/statusbar/IStatusBarService.aidl",
        "core/java/com/android/internal/textservice/ISpellCheckerService.aidl",
        "core/java/com/android/internal/textservice/ISpellCheckerServiceCallback.aidl",
        "core/java/com/android/internal/textservice/ISpellCheckerSession.aidl",
        "core/java/com/android/internal/textservice/ISpellCheckerSessionListener.aidl",
        "core/java/com/android/internal/textservice/ITextServicesManager.aidl",
        "core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl",
        "core/java/com/android/internal/view/IDragAndDropPermissions.aidl",
        "core/java/com/android/internal/view/IInputContext.aidl",
        "core/java/com/android/internal/view/IInputContextCallback.aidl",
        "core/java/com/android/internal/view/IInputMethod.aidl",
        "core/java/com/android/internal/view/IInputMethodClient.aidl",
        "core/java/com/android/internal/view/IInputMethodManager.aidl",
        "core/java/com/android/internal/view/IInputMethodSession.aidl",
        "core/java/com/android/internal/view/IInputSessionCallback.aidl",
        "core/java/com/android/internal/widget/ICheckCredentialProgressCallback.aidl",
        "core/java/com/android/internal/widget/ILockSettings.aidl",
        "core/java/com/android/internal/widget/IRemoteViewsFactory.aidl",
        "keystore/java/android/security/IKeyChainAliasCallback.aidl",
        "keystore/java/android/security/IKeyChainService.aidl",
        "location/java/android/location/IBatchedLocationCallback.aidl",
        "location/java/android/location/ICountryDetector.aidl",
        "location/java/android/location/ICountryListener.aidl",
        "location/java/android/location/IFusedProvider.aidl",
        "location/java/android/location/IGeocodeProvider.aidl",
        "location/java/android/location/IGeofenceProvider.aidl",
        "location/java/android/location/IGnssStatusListener.aidl",
        "location/java/android/location/IGnssStatusProvider.aidl",
        "location/java/android/location/IGnssMeasurementsListener.aidl",
        "location/java/android/location/IGnssNavigationMessageListener.aidl",
        "location/java/android/location/ILocationListener.aidl",
        "location/java/android/location/ILocationManager.aidl",
        "location/java/android/location/IFusedGeofenceHardware.aidl",
        "location/java/android/location/IGpsGeofenceHardware.aidl",
        "location/java/android/location/INetInitiatedListener.aidl",
        "location/java/com/android/internal/location/ILocationProvider.aidl",
        "media/java/android/media/IAudioFocusDispatcher.aidl",
        "media/java/android/media/IAudioRoutesObserver.aidl",
        "media/java/android/media/IAudioService.aidl",
        "media/java/android/media/IAudioServerStateDispatcher.aidl",
        "media/java/android/media/IMediaHTTPConnection.aidl",
        "media/java/android/media/IMediaHTTPService.aidl",
        "media/java/android/media/IMediaResourceMonitor.aidl",
        "media/java/android/media/IMediaRouterClient.aidl",
        "media/java/android/media/IMediaRouterService.aidl",
        "media/java/android/media/IMediaScannerListener.aidl",
        "media/java/android/media/IMediaScannerService.aidl",
        "media/java/android/media/IPlaybackConfigDispatcher.aidl",
        "media/java/android/media/ISessionTokensListener.aidl",
        ":libaudioclient_aidl",
        "media/java/android/media/IRecordingConfigDispatcher.aidl",
        "media/java/android/media/IRemoteDisplayCallback.aidl",
        "media/java/android/media/IRemoteDisplayProvider.aidl",
        "media/java/android/media/IRemoteVolumeController.aidl",
        "media/java/android/media/IRemoteVolumeObserver.aidl",
        "media/java/android/media/IRingtonePlayer.aidl",
        "media/java/android/media/IVolumeController.aidl",
        "media/java/android/media/audiopolicy/IAudioPolicyCallback.aidl",
        "media/java/android/media/midi/IBluetoothMidiService.aidl",
        "media/java/android/media/midi/IMidiDeviceListener.aidl",
        "media/java/android/media/midi/IMidiDeviceOpenCallback.aidl",
        "media/java/android/media/midi/IMidiDeviceServer.aidl",
        "media/java/android/media/midi/IMidiManager.aidl",
        "media/java/android/media/projection/IMediaProjection.aidl",
        "media/java/android/media/projection/IMediaProjectionCallback.aidl",
        "media/java/android/media/projection/IMediaProjectionManager.aidl",
        "media/java/android/media/projection/IMediaProjectionWatcherCallback.aidl",
        "media/java/android/media/session/IActiveSessionsListener.aidl",
        "media/java/android/media/session/ICallback.aidl",
        "media/java/android/media/session/IOnMediaKeyListener.aidl",
        "media/java/android/media/session/IOnVolumeKeyLongPressListener.aidl",
        "media/java/android/media/session/ISession.aidl",
        "media/java/android/media/session/ISessionCallback.aidl",
        "media/java/android/media/session/ISessionController.aidl",
        "media/java/android/media/session/ISessionControllerCallback.aidl",
        "media/java/android/media/session/ISessionManager.aidl",
        "media/java/android/media/tv/ITvInputClient.aidl",
        "media/java/android/media/tv/ITvInputHardware.aidl",
        "media/java/android/media/tv/ITvInputHardwareCallback.aidl",
        "media/java/android/media/tv/ITvInputManager.aidl",
        "media/java/android/media/tv/ITvInputManagerCallback.aidl",
        "media/java/android/media/tv/ITvInputService.aidl",
        "media/java/android/media/tv/ITvInputServiceCallback.aidl",
        "media/java/android/media/tv/ITvInputSession.aidl",
        "media/java/android/media/tv/ITvInputSessionCallback.aidl",
        "media/java/android/media/tv/ITvRemoteProvider.aidl",
        "media/java/android/media/tv/ITvRemoteServiceInput.aidl",
        "media/java/android/service/media/IMediaBrowserService.aidl",
        "media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl",
        "telecomm/java/com/android/internal/telecom/ICallScreeningAdapter.aidl",
        "telecomm/java/com/android/internal/telecom/ICallScreeningService.aidl",
        "telecomm/java/com/android/internal/telecom/IVideoCallback.aidl",
        "telecomm/java/com/android/internal/telecom/IVideoProvider.aidl",
        "telecomm/java/com/android/internal/telecom/IConnectionService.aidl",
        "telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl",
        "telecomm/java/com/android/internal/telecom/IInCallAdapter.aidl",
        "telecomm/java/com/android/internal/telecom/IInCallService.aidl",
        "telecomm/java/com/android/internal/telecom/ITelecomService.aidl",
        "telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl",
        "telephony/java/android/telephony/data/IDataService.aidl",
        "telephony/java/android/telephony/data/IDataServiceCallback.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsCapabilityCallback.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsConfig.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsConfigCallback.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsMmTelFeature.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsMmTelListener.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsRegistration.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsRegistrationCallback.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsRcsFeature.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsServiceController.aidl",
        "telephony/java/android/telephony/ims/aidl/IImsServiceControllerListener.aidl",
	    "telephony/java/android/telephony/ims/aidl/IImsSmsListener.aidl",
        "telephony/java/android/telephony/mbms/IMbmsDownloadSessionCallback.aidl",
        "telephony/java/android/telephony/mbms/IMbmsStreamingSessionCallback.aidl",
        "telephony/java/android/telephony/mbms/IDownloadStateCallback.aidl",
        "telephony/java/android/telephony/mbms/IStreamingServiceCallback.aidl",
        "telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl",
        "telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl",
        "telephony/java/android/telephony/INetworkService.aidl",
        "telephony/java/android/telephony/INetworkServiceCallback.aidl",
        "telephony/java/com/android/ims/internal/IImsCallSession.aidl",
        "telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl",
        "telephony/java/com/android/ims/internal/IImsConfig.aidl",
        "telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl",
        "telephony/java/com/android/ims/internal/IImsEcbm.aidl",
        "telephony/java/com/android/ims/internal/IImsEcbmListener.aidl",
        "telephony/java/com/android/ims/internal/IImsExternalCallStateListener.aidl",
        "telephony/java/com/android/ims/internal/IImsFeatureStatusCallback.aidl",
        "telephony/java/com/android/ims/internal/IImsMMTelFeature.aidl",
        "telephony/java/com/android/ims/internal/IImsMultiEndpoint.aidl",
        "telephony/java/com/android/ims/internal/IImsRcsFeature.aidl",
        "telephony/java/com/android/ims/internal/IImsService.aidl",
        "telephony/java/com/android/ims/internal/IImsServiceController.aidl",
        "telephony/java/com/android/ims/internal/IImsServiceFeatureCallback.aidl",
        "telephony/java/com/android/ims/internal/IImsStreamMediaSession.aidl",
        "telephony/java/com/android/ims/internal/IImsUt.aidl",
        "telephony/java/com/android/ims/internal/IImsUtListener.aidl",
        "telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl",
        "telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl",
        "telephony/java/com/android/ims/internal/uce/uceservice/IUceService.aidl",
        "telephony/java/com/android/ims/internal/uce/uceservice/IUceListener.aidl",
        "telephony/java/com/android/ims/internal/uce/options/IOptionsService.aidl",
        "telephony/java/com/android/ims/internal/uce/options/IOptionsListener.aidl",
        "telephony/java/com/android/ims/internal/uce/presence/IPresenceService.aidl",
        "telephony/java/com/android/ims/internal/uce/presence/IPresenceListener.aidl",
        "telephony/java/com/android/ims/ImsConfigListener.aidl",
        "telephony/java/com/android/internal/telephony/IApnSourceService.aidl",
        "telephony/java/com/android/internal/telephony/ICarrierConfigLoader.aidl",
        "telephony/java/com/android/internal/telephony/IMms.aidl",
        "telephony/java/com/android/internal/telephony/IOnSubscriptionsChangedListener.aidl",
        "telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl",
        "telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl",
        "telephony/java/com/android/internal/telephony/ISms.aidl",
        "telephony/java/com/android/internal/telephony/ISub.aidl",
        "telephony/java/com/android/internal/telephony/ITelephony.aidl",
        "telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl",
        "telephony/java/com/android/internal/telephony/IWapPushManager.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IAuthenticateServerCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/ICancelSessionCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IDeleteProfileCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IDisableProfileCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IEuiccCardController.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IEuiccController.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetAllProfilesCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetDefaultSmdpAddressCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetEuiccChallengeCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo1Callback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo2Callback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetProfileCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetRulesAuthTableCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IGetSmdsAddressCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IListNotificationsCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IPrepareDownloadCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IRemoveNotificationFromListCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IResetMemoryCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationListCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/ISetDefaultSmdpAddressCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/ISetNicknameCallback.aidl",
        "telephony/java/com/android/internal/telephony/euicc/ISwitchToProfileCallback.aidl",
        "wifi/java/android/net/wifi/ISoftApCallback.aidl",
        "wifi/java/android/net/wifi/IWifiManager.aidl",
        "wifi/java/android/net/wifi/aware/IWifiAwareDiscoverySessionCallback.aidl",
        "wifi/java/android/net/wifi/aware/IWifiAwareEventCallback.aidl",
        "wifi/java/android/net/wifi/aware/IWifiAwareMacAddressProvider.aidl",
        "wifi/java/android/net/wifi/aware/IWifiAwareManager.aidl",
        "wifi/java/android/net/wifi/p2p/IWifiP2pManager.aidl",
        "wifi/java/android/net/wifi/rtt/IRttCallback.aidl",
        "wifi/java/android/net/wifi/rtt/IWifiRttManager.aidl",
        "wifi/java/android/net/wifi/hotspot2/IProvisioningCallback.aidl",
        "wifi/java/android/net/wifi/IWifiScanner.aidl",
        "packages/services/PacProcessor/com/android/net/IProxyService.aidl",
        "packages/services/Proxy/com/android/net/IProxyCallback.aidl",
        "packages/services/Proxy/com/android/net/IProxyPortListener.aidl",
        "core/java/android/service/quicksettings/IQSService.aidl",
        "core/java/android/service/quicksettings/IQSTileService.aidl",

        ":libupdate_engine_aidl",

        ":storaged_aidl",
        ":netd_aidl",
        ":vold_aidl",
        ":installd_aidl",

        "lowpan/java/android/net/lowpan/ILowpanEnergyScanCallback.aidl",
        "lowpan/java/android/net/lowpan/ILowpanNetScanCallback.aidl",
        "lowpan/java/android/net/lowpan/ILowpanInterfaceListener.aidl",
        "lowpan/java/android/net/lowpan/ILowpanInterface.aidl",
        "lowpan/java/android/net/lowpan/ILowpanManagerListener.aidl",
        "lowpan/java/android/net/lowpan/ILowpanManager.aidl",

        "core/java/android/app/admin/SecurityLogTags.logtags",
        "core/java/android/content/EventLogTags.logtags",
        "core/java/android/speech/tts/EventLogTags.logtags",
        "core/java/android/net/EventLogTags.logtags",
        "core/java/android/webkit/EventLogTags.logtags",
        "core/java/com/android/internal/app/EventLogTags.logtags",
        "core/java/com/android/internal/logging/EventLogTags.logtags",
        "core/java/com/android/server/DropboxLogTags.logtags",
        "core/java/org/chromium/arc/EventLogTags.logtags",

        ":framework-statslog-gen",
    ],

    aidl: {
        export_include_dirs: [
            // From build/make/core/pathmap.mk FRAMEWORK_BASE_SUBDIRS
            "core/java",
            "graphics/java",
            "location/java",
            "lowpan/java",
            "media/java",
            "media/mca/effect/java",
            "media/mca/filterfw/java",
            "media/mca/filterpacks/java",
            "drm/java",
            "opengl/java",
            "sax/java",
            "telecomm/java",
            "telephony/java",
            "wifi/java",
            "keystore/java",
            "rs/java",
        ],

        include_dirs: [
            "system/update_engine/binder_bindings",
            "frameworks/native/aidl/binder",
            "frameworks/av/camera/aidl",
            "frameworks/av/media/libaudioclient/aidl",
            "frameworks/native/aidl/gui",
            "system/core/storaged/binder",
            "system/netd/server/binder",
            "system/vold/binder",
            "system/bt/binder",
            "system/security/keystore/binder",
        ],
    },

    exclude_srcs: [
        // See comment on framework-atb-backward-compatibility module below
        "core/java/android/content/pm/AndroidTestBaseUpdater.java",
        // See comment on framework-oahl-backward-compatibility module below
        "core/java/android/content/pm/OrgApacheHttpLegacyUpdater.java",
    ],

    no_framework_libs: true,
    libs: [
        "conscrypt",
        "okhttp",
        "bouncycastle",
        "ext",
    ],

    static_libs: [
        "framework-protos",
        "android.hidl.base-V1.0-java",
        "android.hardware.cas-V1.0-java",
        "android.hardware.contexthub-V1.0-java",
        "android.hardware.health-V1.0-java-constants",
        "android.hardware.thermal-V1.0-java-constants",
        "android.hardware.tv.input-V1.0-java-constants",
        "android.hardware.usb-V1.0-java-constants",
        "android.hardware.usb-V1.1-java-constants",
        "android.hardware.vibrator-V1.0-java",
        "android.hardware.vibrator-V1.1-java",
        "android.hardware.vibrator-V1.2-java",
        "android.hardware.wifi-V1.0-java-constants",
        "android.hardware.radio-V1.0-java",
        "android.hardware.usb.gadget-V1.0-java",
    ],

    // Loaded with System.loadLibrary by android.view.textclassifier
    required: [
        "libtextclassifier",
        "libmedia2_jni",],

    javac_shard_size: 150,

    dxflags: [
        "--core-library",
        "--multi-dex",
    ],
}

// A temporary build target that is conditionally included on the bootclasspath if
// org.apache.http.legacy library has been removed and which provides support for
// maintaining backwards compatibility for APKs that target pre-P and depend on
// org.apache.http.legacy classes. This is used iff REMOVE_OAHL_FROM_BCP=true is
// specified on the build command line.
java_library {
    name: "framework-oahl-backward-compatibility",
    srcs: [
        "core/java/android/content/pm/OrgApacheHttpLegacyUpdater.java",
    ],
}

// A temporary build target that is conditionally included on the bootclasspath if
// android.test.base library has been removed and which provides support for
// maintaining backwards compatibility for APKs that target pre-P and depend on
// android.test.base classes. This is used iff REMOVE_ATB_FROM_BCP=true is
// specified on the build command line.
java_library {
    name: "framework-atb-backward-compatibility",
    srcs: [
        "core/java/android/content/pm/AndroidTestBaseUpdater.java",
    ],
}

genrule {
    name: "framework-statslog-gen",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --java $(out)",
    out: ["android/util/StatsLogInternal.java"],
}

gensrcs {
    name: "framework-javastream-protos",
    depfile: true,

    tools: [
        "aprotoc",
        "protoc-gen-javastream",
        "soong_zip",
    ],

    cmd: "mkdir -p $(genDir)/$(in) " +
        "&& $(location aprotoc) " +
        "  --plugin=$(location protoc-gen-javastream) " +
        "  --dependency_out=$(depfile) " +
        "  --javastream_out=$(genDir)/$(in) " +
        "  -Iexternal/protobuf/src " +
        "  -I . " +
        "  $(in) " +
        "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",

    srcs: [
        "core/proto/**/*.proto",
        "libs/incident/**/*.proto",
    ],
    output_extension: "srcjar",
}

// Build ext.jar
// ============================================================
java_library {
    name: "ext",
    no_framework_libs: true,
    static_libs: [
        "libphonenumber-platform",
        "nist-sip",
        "tagsoup",
        "rappor",
    ],
    dxflags: ["--core-library"],
}

// ====  c++ proto device library  ==============================
cc_library {
    name: "libplatformprotos",
    host_supported: true,
    proto: {
        export_proto_headers: true,
        include_dirs: ["external/protobuf/src"],
    },

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
    ],

    srcs: [
        "core/proto/**/*.proto",
        "libs/incident/**/*.proto",
    ],

    target: {
        host: {
            proto: {
                type: "full",
            },
        },
        android: {
            proto: {
                type: "lite",
            },
            shared: {
                enabled: false,
            },
        },
    },
}

gensrcs {
    name: "gen-platform-proto-constants",
    depfile: true,

    tools: [
        "aprotoc",
        "protoc-gen-cppstream",
    ],

    srcs: [
        "core/proto/android/os/batterytype.proto",
        "core/proto/android/os/cpufreq.proto",
        "core/proto/android/os/cpuinfo.proto",
        "core/proto/android/os/kernelwake.proto",
        "core/proto/android/os/pagetypeinfo.proto",
        "core/proto/android/os/procrank.proto",
        "core/proto/android/os/ps.proto",
        "core/proto/android/os/system_properties.proto",
        "core/proto/android/util/event_log_tags.proto",
    ],

    // Append protoc-gen-cppstream tool's PATH otherwise aprotoc can't find the plugin tool
    cmd: "mkdir -p $(genDir) " +
        "&& $(location aprotoc) " +
        "  --plugin=$(location protoc-gen-cppstream) " +
        "  --dependency_out=$(depfile) " +
        "  --cppstream_out=$(genDir) " +
        "  -Iexternal/protobuf/src " +
        "  -I . " +
        "  $(in)",

    output_extension = "proto.h",
}

subdirs = [
    "cmds/*",
    "core/*",
    "libs/*",
    "media/*",
    "proto",
    "tools/*",
    "native/android",
    "native/graphics/jni",
]

optional_subdirs = [
    "core/tests/utiltests/jni",
]

java_library {
    name: "hwbinder",
    no_framework_libs: true,

    srcs: [
        "core/java/android/os/HidlSupport.java",
        "core/java/android/annotation/IntDef.java",
        "core/java/android/annotation/NonNull.java",
        "core/java/android/annotation/SystemApi.java",
        "core/java/android/os/HwBinder.java",
        "core/java/android/os/HwBlob.java",
        "core/java/android/os/HwParcel.java",
        "core/java/android/os/IHwBinder.java",
        "core/java/android/os/IHwInterface.java",
        "core/java/android/os/DeadObjectException.java",
        "core/java/android/os/DeadSystemException.java",
        "core/java/android/os/RemoteException.java",
        "core/java/android/util/AndroidException.java",
    ],

    dxflags: ["--core-library"],
    installable: false,
}

python_defaults {
    name: "base_default",
    version: {
        py2: {
            enabled: true,
            embedded_launcher: true,
        },
        py3: {
            enabled: false,
            embedded_launcher: false,
        },
    },
}

python_binary_host {
    name: "fontchain_linter",
    defaults: ["base_default"],
    main: "tools/fonts/fontchain_linter.py",
    srcs: [
        "tools/fonts/fontchain_linter.py",
    ],
    libs: [
        "fontTools",
    ],
}