• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.statsd.shelltools;
17 
18 import com.android.internal.os.ExperimentIdsProto;
19 import com.android.internal.os.UidDataProto;
20 import com.android.os.ActiveConfigProto;
21 import com.android.os.ShellConfig;
22 import com.android.os.adservices.AdservicesExtensionAtoms;
23 import com.android.os.automotive.caruilib.AutomotiveCaruilibAtoms;
24 import com.android.os.devicelogs.DeviceLogsAtoms;
25 import com.android.os.dnd.DndAtoms;
26 import com.android.os.dnd.DndExtensionAtoms;
27 import com.android.os.expresslog.ExpresslogExtensionAtoms;
28 import com.android.os.framework.FrameworkExtensionAtoms;
29 import com.android.os.gps.GpsAtoms;
30 import com.android.os.grammaticalinflection.GrammaticalInflection;
31 import com.android.os.hardware.biometrics.BiometricsAtoms;
32 import com.android.os.healthfitness.api.ApiExtensionAtoms;
33 import com.android.os.healthfitness.ui.UiExtensionAtoms;
34 import com.android.os.hotword.HotwordAtoms;
35 import com.android.os.kernel.KernelAtoms;
36 import com.android.os.locale.LocaleAtoms;
37 import com.android.os.location.LocationAtoms;
38 import com.android.os.location.LocationExtensionAtoms;
39 import com.android.os.media.MediaDrmAtoms;
40 import com.android.os.memorysafety.MemorysafetyExtensionAtoms;
41 import com.android.os.permissioncontroller.PermissioncontrollerExtensionAtoms;
42 import com.android.os.providers.mediaprovider.MediaProviderAtoms;
43 import com.android.os.settings.SettingsExtensionAtoms;
44 import com.android.os.statsd.ShellDataProto;
45 import com.android.os.sysui.SysuiAtoms;
46 import com.android.os.telecom.TelecomExtensionAtom;
47 import com.android.os.telephony.SatelliteExtensionAtoms;
48 import com.android.os.telephony.TelephonyExtensionAtoms;
49 import com.android.os.telephony.qns.QnsExtensionAtoms;
50 import com.android.os.usb.UsbAtoms;
51 import com.android.os.uwb.UwbExtensionAtoms;
52 import com.android.os.view.inputmethod.InputmethodAtoms;
53 import com.android.os.wear.media.WearMediaAtoms;
54 import com.android.os.wear.media.WearMediaExtensionAtoms;
55 import com.android.os.wearpas.WearpasExtensionAtoms;
56 import com.android.os.wearservices.WearservicesAtoms;
57 import com.android.os.wearservices.WearservicesExtensionAtoms;
58 import com.android.os.wearsysui.WearsysuiAtoms;
59 import com.android.os.wifi.WifiExtensionAtoms;
60 import android.os.statsd.media.MediaCodecExtensionAtoms;
61 import com.android.os.credentials.CredentialsExtensionAtoms;
62 
63 import com.google.protobuf.ExtensionRegistry;
64 
65 /**
66  * CustomExtensionRegistry for local use of statsd.
67  */
68 public class CustomExtensionRegistry {
69 
70     public static ExtensionRegistry REGISTRY;
71 
72     static {
73         /** In Java, when parsing a message containing extensions, you must provide an
74          * ExtensionRegistry which contains definitions of all of the extensions which you
75          * want the parser to recognize. This is necessary because Java's bytecode loading
76          * semantics do not provide any way for the protocol buffers library to automatically
77          * discover all extensions defined in your binary.
78          *
79          * See http://sites/protocol-buffers/user-docs/miscellaneous-howtos/extensions
80          * #Java_ExtensionRegistry_
81          */
82         REGISTRY = ExtensionRegistry.newInstance();
83         registerAllExtensions(REGISTRY);
84         REGISTRY = REGISTRY.getUnmodifiable();
85     }
86 
87     /**
88      * Registers all proto2 extensions.
89      */
registerAllExtensions(ExtensionRegistry extensionRegistry)90     private static void registerAllExtensions(ExtensionRegistry extensionRegistry) {
91         ExperimentIdsProto.registerAllExtensions(extensionRegistry);
92         UidDataProto.registerAllExtensions(extensionRegistry);
93         ActiveConfigProto.registerAllExtensions(extensionRegistry);
94         ShellConfig.registerAllExtensions(extensionRegistry);
95         AdservicesExtensionAtoms.registerAllExtensions(extensionRegistry);
96         AutomotiveCaruilibAtoms.registerAllExtensions(extensionRegistry);
97         DeviceLogsAtoms.registerAllExtensions(extensionRegistry);
98         DndAtoms.registerAllExtensions(extensionRegistry);
99         DndExtensionAtoms.registerAllExtensions(extensionRegistry);
100         ExpresslogExtensionAtoms.registerAllExtensions(extensionRegistry);
101         FrameworkExtensionAtoms.registerAllExtensions(extensionRegistry);
102         GpsAtoms.registerAllExtensions(extensionRegistry);
103         GrammaticalInflection.registerAllExtensions(extensionRegistry);
104         BiometricsAtoms.registerAllExtensions(extensionRegistry);
105         ApiExtensionAtoms.registerAllExtensions(extensionRegistry);
106         UiExtensionAtoms.registerAllExtensions(extensionRegistry);
107         HotwordAtoms.registerAllExtensions(extensionRegistry);
108         KernelAtoms.registerAllExtensions(extensionRegistry);
109         LocaleAtoms.registerAllExtensions(extensionRegistry);
110         LocationAtoms.registerAllExtensions(extensionRegistry);
111         LocationExtensionAtoms.registerAllExtensions(extensionRegistry);
112         MediaDrmAtoms.registerAllExtensions(extensionRegistry);
113         MemorysafetyExtensionAtoms.registerAllExtensions(extensionRegistry);
114         PermissioncontrollerExtensionAtoms.registerAllExtensions(extensionRegistry);
115         MediaProviderAtoms.registerAllExtensions(extensionRegistry);
116         SettingsExtensionAtoms.registerAllExtensions(extensionRegistry);
117         ShellDataProto.registerAllExtensions(extensionRegistry);
118         SysuiAtoms.registerAllExtensions(extensionRegistry);
119         TelecomExtensionAtom.registerAllExtensions(extensionRegistry);
120         SatelliteExtensionAtoms.registerAllExtensions(extensionRegistry);
121         TelephonyExtensionAtoms.registerAllExtensions(extensionRegistry);
122         QnsExtensionAtoms.registerAllExtensions(extensionRegistry);
123         UsbAtoms.registerAllExtensions(extensionRegistry);
124         UwbExtensionAtoms.registerAllExtensions(extensionRegistry);
125         InputmethodAtoms.registerAllExtensions(extensionRegistry);
126         WearMediaAtoms.registerAllExtensions(extensionRegistry);
127         WearMediaExtensionAtoms.registerAllExtensions(extensionRegistry);
128         WearpasExtensionAtoms.registerAllExtensions(extensionRegistry);
129         WearservicesAtoms.registerAllExtensions(extensionRegistry);
130         WearservicesExtensionAtoms.registerAllExtensions(extensionRegistry);
131         WearsysuiAtoms.registerAllExtensions(extensionRegistry);
132         WifiExtensionAtoms.registerAllExtensions(extensionRegistry);
133         MediaCodecExtensionAtoms.registerAllExtensions(extensionRegistry);
134         CredentialsExtensionAtoms.registerAllExtensions(extensionRegistry);
135     }
136 }
137