blob: 48f6670b59fed6965095f293bebe6c63ed7cc1ba [file] [log] [blame]
/*
* Copyright (C) 2020 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.
*/
syntax = "proto2";
package android.service;
import "frameworks/base/core/proto/android/privacy.proto";
option java_multiple_files = true;
/*
* Notes:
* 1. When using ProtoOutputStream to write this proto message, must call
* token = ProtoOutputStream#start(fieldId) before and ProtoOutputStream#end(token) after
* writing a nested message.
* 2. Never reuse a proto field number. When removing a field, mark it as reserved.
*/
// Proto dump of android::SensorService. dumpsys sensorservice --proto
message SensorServiceProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
enum OperatingModeEnum {
OP_MODE_UNKNOWN = 0;
OP_MODE_NORMAL = 1;
OP_MODE_RESTRICTED = 2;
OP_MODE_DATA_INJECTION = 3;
}
optional sint32 init_status = 16;
optional int64 current_time_ms = 1;
optional SensorDeviceProto sensor_device = 2;
optional SensorListProto sensors = 3;
optional SensorFusionProto fusion_state = 4;
optional SensorEventsProto sensor_events = 5;
repeated ActiveSensorProto active_sensors = 6;
optional int32 socket_buffer_size = 7;
optional int32 socket_buffer_size_in_events = 8;
optional bool wake_lock_acquired = 9;
optional OperatingModeEnum operating_mode = 10;
// Non-empty only if operating_mode is RESTRICTED or DATA_INJECTION.
optional string whitelisted_package = 11;
optional bool sensor_privacy = 12;
repeated SensorEventConnectionProto active_connections = 13;
repeated SensorDirectConnectionProto direct_connections = 14;
repeated SensorRegistrationInfoProto previous_registrations = 15;
// Next tag: 17
}
// Proto dump of android::SensorDevice
message SensorDeviceProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional bool initialized = 1;
optional int32 total_sensors = 2;
optional int32 active_sensors = 3;
message SensorProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional int32 handle = 1;
optional int32 active_count = 2;
repeated float sampling_period_ms = 3;
optional float sampling_period_selected = 4;
repeated float batching_period_ms = 5;
optional float batching_period_selected = 6;
}
repeated SensorProto sensors = 4;
}
// Proto dump of android::SensorServiceUtil::SensorList
message SensorListProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
enum ReportingModeEnum {
RM_UNKNOWN = 0;
RM_CONTINUOUS = 1;
RM_ON_CHANGE = 2;
RM_ONE_SHOT = 3;
RM_SPECIAL_TRIGGER = 4;
}
message SensorProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional int32 handle = 1;
optional string name = 2;
optional string vendor = 3;
optional int32 version = 4;
optional string string_type = 5;
optional int32 type = 6;
optional string required_permission = 7;
optional int32 flags = 8;
optional ReportingModeEnum reporting_mode = 9;
optional int32 max_delay_us = 10;
optional int32 min_delay_us = 11;
optional int32 fifo_max_event_count = 12;
optional int32 fifo_reserved_event_count = 13;
optional bool is_wakeup = 14;
optional bool data_injection_supported = 15;
optional bool is_dynamic = 16;
optional bool has_additional_info = 17;
optional int32 highest_rate_level = 18;
optional bool ashmem = 19;
optional bool gralloc = 20;
optional float min_value = 21;
optional float max_value = 22;
optional float resolution = 23;
optional float power_usage = 24;
}
repeated SensorProto sensors = 1;
}
// Proto dump of android::SensorFusion
message SensorFusionProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
message FusionProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional bool enabled = 1;
optional int32 num_clients = 2;
optional float estimated_gyro_rate = 3;
optional float attitude_x = 4;
optional float attitude_y = 5;
optional float attitude_z = 6;
optional float attitude_w = 7;
optional float attitude_length = 8;
optional float bias_x = 9;
optional float bias_y = 10;
optional float bias_z = 11;
}
optional FusionProto fusion_9axis = 1;
optional FusionProto fusion_nomag = 2;
optional FusionProto fusion_nogyro = 3;
}
// Proto dump of android::SensorServiceUtil::RecentEventLogger
message SensorEventsProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
message Event {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional float timestamp_sec = 1;
optional int64 wall_timestamp_ms = 2;
optional bool masked = 3;
optional int64 int64_data = 4;
repeated float float_array = 5;
}
message RecentEventsLog {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional string name = 1;
optional int32 recent_events_count = 2;
repeated Event events = 3;
}
repeated RecentEventsLog recent_events_logs = 1;
}
message ActiveSensorProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional string name = 1;
optional int32 handle = 2;
optional int32 num_connections = 3;
}
// Proto dump of android::SensorService::SensorDirectConnection
message SensorDirectConnectionProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
message SensorProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional int32 sensor = 1;
optional int32 rate = 2;
}
optional string package_name = 1;
optional int32 hal_channel_handle = 2;
optional int32 num_sensor_activated = 3;
repeated SensorProto sensors = 4;
}
// Proto dump of android::SensorService::SensorEventConnection
message SensorEventConnectionProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
message FlushInfoProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional string sensor_name = 1;
optional int32 sensor_handle = 2;
optional bool first_flush_pending = 3;
optional int32 pending_flush_events_to_send = 4;
}
enum OperatingModeEnum {
OP_MODE_UNKNOWN = 0;
OP_MODE_NORMAL = 1;
OP_MODE_RESTRICTED = 2;
OP_MODE_DATA_INJECTION = 3;
}
optional OperatingModeEnum operating_mode = 1;
optional string package_name = 2;
optional int32 wake_lock_ref_count = 3;
optional int32 uid = 4;
optional int32 cache_size = 5;
optional int32 max_cache_size = 6;
repeated FlushInfoProto flush_infos = 7;
optional int32 events_received = 8;
optional int32 events_sent = 9;
optional int32 events_cache = 10;
optional int32 events_dropped = 11;
optional int32 total_acks_needed = 12;
optional int32 total_acks_received = 13;
}
// Proto dump of android::SensorService::SensorRegistrationInfo
message SensorRegistrationInfoProto {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
optional int64 timestamp_sec = 1;
optional int32 sensor_handle = 2;
optional string package_name = 3;
optional int32 pid = 4;
optional int32 uid = 5;
optional int64 sampling_rate_us = 6;
optional int64 max_report_latency_us = 7;
optional bool activated = 8;
}