usb.proto revision 371a3b879ba82bbe5a4d914328a20659131d0220
1/* 2 * Copyright (C) 2018 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 17syntax = "proto2"; 18package android.service.usb; 19 20option java_multiple_files = true; 21option java_outer_classname = "UsbServiceProto"; 22 23import "frameworks/base/core/proto/android/content/component_name.proto"; 24import "frameworks/base/core/proto/android/service/enums.proto"; 25import "frameworks/base/libs/incident/proto/android/privacy.proto"; 26 27message UsbServiceDumpProto { 28 option (android.msg_privacy).dest = DEST_AUTOMATIC; 29 30 optional UsbDeviceManagerProto device_manager = 1; 31 optional UsbHostManagerProto host_manager = 2; 32 optional UsbPortManagerProto port_manager = 3; 33 optional UsbAlsaManagerProto alsa_manager = 4; 34 optional UsbSettingsManagerProto settings_manager = 5; 35} 36 37message UsbDeviceManagerProto { 38 option (android.msg_privacy).dest = DEST_AUTOMATIC; 39 40 optional UsbHandlerProto handler = 1; 41 optional UsbDebuggingManagerProto debugging_manager = 2; 42} 43 44message UsbHandlerProto { 45 option (android.msg_privacy).dest = DEST_AUTOMATIC; 46 47 /* Same as android.hardware.usb.gadget.V1_0.GadgetFunction.* */ 48 enum Function { 49 FUNCTION_ADB = 1; 50 FUNCTION_ACCESSORY = 2; 51 FUNCTION_MTP = 4; 52 FUNCTION_MIDI = 8; 53 FUNCTION_PTP = 16; 54 FUNCTION_RNDIS = 32; 55 FUNCTION_AUDIO_SOURCE = 64; 56 } 57 58 repeated Function current_functions = 1; 59 optional bool current_functions_applied = 2; 60 repeated Function screen_unlocked_functions = 3; 61 optional bool screen_locked = 4; 62 optional bool connected = 5; 63 optional bool configured = 6; 64 optional UsbAccessoryProto current_accessory = 7; 65 optional bool host_connected = 8; 66 optional bool source_power = 9; 67 optional bool sink_power = 10; 68 optional bool usb_charging = 11; 69 optional bool hide_usb_notification = 12; 70 optional bool audio_accessory_connected = 13; 71 optional bool adb_enabled = 14; 72 optional string kernel_state = 15; 73 optional string kernel_function_list = 16; 74} 75 76message UsbAccessoryProto { 77 option (android.msg_privacy).dest = DEST_AUTOMATIC; 78 79 optional string manufacturer = 1; 80 optional string model = 2; 81 optional string description = 3; 82 optional string version = 4; 83 optional string uri = 5; 84 optional string serial = 6 [ (android.privacy).dest = DEST_EXPLICIT ]; 85} 86 87message UsbDebuggingManagerProto { 88 option (android.msg_privacy).dest = DEST_AUTOMATIC; 89 90 optional bool connected_to_adb = 1; 91 optional string last_key_recevied = 2 [ (android.privacy).dest = DEST_EXPLICIT ]; 92 optional string user_keys = 3 [ (android.privacy).dest = DEST_LOCAL ]; 93 optional string system_keys = 4 [ (android.privacy).dest = DEST_LOCAL ]; 94} 95 96message UsbHostManagerProto { 97 option (android.msg_privacy).dest = DEST_AUTOMATIC; 98 99 optional android.content.ComponentNameProto default_usb_host_connection_handler = 1; 100 repeated UsbDeviceProto devices = 2; 101 optional int32 num_connects = 3; 102 repeated UsbConnectionRecordProto connections = 4; 103} 104 105message UsbDeviceProto { 106 option (android.msg_privacy).dest = DEST_AUTOMATIC; 107 108 optional string name = 1; 109 optional int32 vendor_id = 2; 110 optional int32 product_id = 3; 111 optional int32 class = 4; 112 optional int32 subclass = 5; 113 optional int32 protocol = 6; 114 optional string manufacturer_name = 7; 115 optional string product_name = 8; 116 optional string version = 9; 117 optional string serial_number = 10 [ (android.privacy).dest = DEST_EXPLICIT ]; 118 repeated UsbConfigurationProto configurations = 11; 119} 120 121message UsbConfigurationProto { 122 option (android.msg_privacy).dest = DEST_AUTOMATIC; 123 124 optional int32 id = 1; 125 optional string name = 2; 126 optional uint32 attributes = 3; 127 optional int32 max_power = 4; 128 repeated UsbInterfaceProto interfaces = 5; 129} 130 131message UsbInterfaceProto { 132 option (android.msg_privacy).dest = DEST_AUTOMATIC; 133 134 optional int32 id = 1; 135 optional int32 alternate_settings = 2; 136 optional string name = 3; 137 optional int32 class = 4; 138 optional int32 subclass = 5; 139 optional int32 protocol = 6; 140 repeated UsbEndPointProto endpoints = 7; 141} 142 143message UsbEndPointProto { 144 option (android.msg_privacy).dest = DEST_AUTOMATIC; 145 146 optional int32 endpoint_number = 1; 147 optional android.service.UsbEndPointDirection direction = 2; 148 optional int32 address = 3; 149 optional android.service.UsbEndPointType type = 4; 150 optional uint32 attributes = 5; 151 optional int32 max_packet_size = 6; 152 optional int32 interval = 7; 153} 154 155message UsbConnectionRecordProto { 156 option (android.msg_privacy).dest = DEST_AUTOMATIC; 157 158 optional string device_address = 1; 159 optional android.service.UsbConnectionRecordMode mode = 2; 160 optional int64 timestamp = 3; 161 optional int32 manufacturer = 4; 162 optional int32 product = 5; 163 optional UsbIsHeadsetProto is_headset = 6; 164} 165 166message UsbIsHeadsetProto { 167 option (android.msg_privacy).dest = DEST_AUTOMATIC; 168 169 optional bool in = 1; 170 optional bool out = 2; 171} 172 173message UsbPortManagerProto { 174 option (android.msg_privacy).dest = DEST_AUTOMATIC; 175 176 optional bool is_simulation_active = 1; 177 repeated UsbPortInfoProto usb_ports = 2; 178} 179 180message UsbPortInfoProto { 181 option (android.msg_privacy).dest = DEST_AUTOMATIC; 182 183 optional UsbPortProto port = 1; 184 optional UsbPortStatusProto status = 2; 185 optional bool can_change_mode = 3; 186 optional bool can_change_power_role = 4; 187 optional bool can_change_data_role = 5; 188} 189 190message UsbPortProto { 191 option (android.msg_privacy).dest = DEST_AUTOMATIC; 192 193 /* Same as android.hardware.usb.V1_1.Constants.PortMode_1_1 */ 194 enum Mode { 195 MODE_NONE = 0; 196 MODE_UFP = 1; 197 MODE_DFP = 2; 198 MODE_DRP = 3; 199 MODE_AUDIO_ACCESSORY = 4; 200 MODE_DEBUG_ACCESSORY = 8; 201 } 202 203 optional string id = 1; 204 repeated Mode supported_modes = 2; 205} 206 207message UsbPortStatusProto { 208 option (android.msg_privacy).dest = DEST_AUTOMATIC; 209 210 /* Same as android.hardware.usb.V1_0.Constants.PortPowerRole */ 211 enum PowerRole { 212 POWER_ROLE_NONE = 0; 213 POWER_ROLE_SOURCE = 1; 214 POWER_ROLE_SINK = 2; 215 } 216 217 /* Same as android.hardware.usb.V1_0.Constants.PortDataRole */ 218 enum DataRole { 219 DATA_ROLE_NONE = 0; 220 DATA_ROLE_HOST = 1; 221 DATA_ROLE_DEVICE = 2; 222 } 223 224 optional bool connected = 1; 225 optional UsbPortProto.Mode current_mode = 2; 226 optional PowerRole power_role = 3; 227 optional DataRole data_role = 4; 228 repeated UsbPortStatusRoleCombinationProto role_combinations = 5; 229} 230 231message UsbPortStatusRoleCombinationProto { 232 option (android.msg_privacy).dest = DEST_AUTOMATIC; 233 234 optional UsbPortStatusProto.PowerRole power_role = 1; 235 optional UsbPortStatusProto.DataRole data_role = 2; 236} 237 238message UsbAlsaManagerProto { 239 option (android.msg_privacy).dest = DEST_AUTOMATIC; 240 241 optional int32 cards_parser = 1; 242 repeated UsbAlsaDeviceProto alsa_devices = 2; 243 repeated UsbMidiDeviceProto midi_devices = 3; 244} 245 246message UsbAlsaDeviceProto { 247 option (android.msg_privacy).dest = DEST_AUTOMATIC; 248 249 optional int32 card = 1; 250 optional int32 device = 2; 251 optional string name = 3; 252 optional bool has_playback = 4; 253 optional bool has_capture = 5; 254 optional string address = 6; 255} 256 257message UsbMidiDeviceProto { 258 option (android.msg_privacy).dest = DEST_AUTOMATIC; 259 260 optional int32 card = 1; 261 optional int32 device = 2; 262 optional string device_address = 3; 263} 264 265message UsbSettingsManagerProto { 266 option (android.msg_privacy).dest = DEST_AUTOMATIC; 267 268 repeated UsbUserSettingsManagerProto user_settings = 1; 269 repeated UsbProfileGroupSettingsManagerProto profile_group_settings = 2; 270} 271 272message UsbUserSettingsManagerProto { 273 option (android.msg_privacy).dest = DEST_AUTOMATIC; 274 275 optional int32 user_id = 1; 276 repeated UsbSettingsDevicePermissionProto device_permissions = 2; 277 repeated UsbSettingsAccessoryPermissionProto accessory_permissions = 3; 278} 279 280message UsbSettingsDevicePermissionProto { 281 option (android.msg_privacy).dest = DEST_AUTOMATIC; 282 283 optional string device_name = 1; 284 repeated int32 uids = 2; 285} 286 287message UsbSettingsAccessoryPermissionProto { 288 option (android.msg_privacy).dest = DEST_AUTOMATIC; 289 290 optional string accessory_description = 1; 291 repeated int32 uids = 2; 292} 293 294message UsbProfileGroupSettingsManagerProto { 295 option (android.msg_privacy).dest = DEST_AUTOMATIC; 296 297 optional int32 parent_user_id = 1; 298 repeated UsbSettingsDevicePreferenceProto device_preferences = 2; 299 repeated UsbSettingsAccessoryPreferenceProto accessory_preferences = 3; 300} 301 302message UsbSettingsDevicePreferenceProto { 303 option (android.msg_privacy).dest = DEST_AUTOMATIC; 304 305 optional UsbDeviceFilterProto filter = 1; 306 optional UserPackageProto user_package = 2; 307} 308 309message UsbDeviceFilterProto { 310 option (android.msg_privacy).dest = DEST_AUTOMATIC; 311 312 optional int32 vendor_id = 1; 313 optional int32 product_id = 2; 314 optional int32 class = 3; 315 optional int32 subclass = 4; 316 optional int32 protocol = 5; 317 optional string manufacturer_name = 6; 318 optional string product_name = 7; 319 optional string serial_number = 8 [ (android.privacy).dest = DEST_EXPLICIT ]; 320} 321 322message UserPackageProto { 323 option (android.msg_privacy).dest = DEST_AUTOMATIC; 324 325 optional int32 user_id = 1; 326 optional string package_name =2; 327} 328 329message UsbSettingsAccessoryPreferenceProto { 330 option (android.msg_privacy).dest = DEST_AUTOMATIC; 331 332 optional UsbAccessoryFilterProto filter = 1; 333 optional UserPackageProto user_package = 2; 334} 335 336message UsbAccessoryFilterProto { 337 option (android.msg_privacy).dest = DEST_AUTOMATIC; 338 339 optional string manufacturer = 1; 340 optional string model = 2; 341 optional string version = 3; 342}