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