diff options
-rw-r--r-- | cmds/incident_helper/src/ih_util.cpp | 79 | ||||
-rw-r--r-- | cmds/incident_helper/src/ih_util.h | 64 | ||||
-rw-r--r-- | cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp | 132 | ||||
-rw-r--r-- | cmds/incident_helper/testdata/system_properties.txt | 15 | ||||
-rw-r--r-- | cmds/incident_helper/tests/SystemPropertiesParser_test.cpp | 55 | ||||
-rw-r--r-- | core/proto/android/os/system_properties.proto | 1084 |
6 files changed, 764 insertions, 665 deletions
diff --git a/cmds/incident_helper/src/ih_util.cpp b/cmds/incident_helper/src/ih_util.cpp index db4f586c7e31..4bf956a9a03d 100644 --- a/cmds/incident_helper/src/ih_util.cpp +++ b/cmds/incident_helper/src/ih_util.cpp @@ -297,3 +297,82 @@ Table::insertField(ProtoOutputStream* proto, const std::string& name, const std: } return true; } + +// ================================================================================ +Message::Message(Table* table) + :mTable(table), + mPreviousField(""), + mTokens(), + mSubMessages() +{ +} + +Message::~Message() +{ +} + +void +Message::addSubMessage(uint64_t fieldId, Message* fieldMsg) +{ + for (auto iter = mTable->mFields.begin(); iter != mTable->mFields.end(); iter++) { + if (iter->second == fieldId) { + mSubMessages[iter->first] = fieldMsg; + return; + } + } +} + +bool +Message::insertField(ProtoOutputStream* proto, const std::string& name, const std::string& value) +{ + // If the field name can be found, it means the name is a primitive field. + if (mTable->mFields.find(name) != mTable->mFields.end()) { + endSession(proto); + // The only edge case is for example ro.hardware itself is a message, so a field called "value" + // would be defined in proto Ro::Hardware and it must be the first field. + if (mSubMessages.find(name) != mSubMessages.end()) { + startSession(proto, name); + return mSubMessages[name]->insertField(proto, "value", value); + } else { + return mTable->insertField(proto, name, value); + } + } + + // Try to find the message field which is the prefix of name, so the value would be inserted + // recursively into the submessage. + string mutableName = name; + for (auto iter = mSubMessages.begin(); iter != mSubMessages.end(); iter++) { + string fieldName = iter->first; + string prefix = fieldName + "_"; // underscore is the delimiter in the name + if (stripPrefix(&mutableName, prefix.c_str())) { + if (mPreviousField != fieldName) { + endSession(proto); + startSession(proto, fieldName); + } + return mSubMessages[fieldName]->insertField(proto, mutableName, value); + } + } + // Can't find the name in proto definition, handle it separately. + return false; +} + +void +Message::startSession(ProtoOutputStream* proto, const string& name) +{ + uint64_t fieldId = mTable->mFields[name]; + long long token = proto->start(fieldId); + mPreviousField = name; + mTokens.push(token); +} + +void +Message::endSession(ProtoOutputStream* proto) +{ + if (mPreviousField == "") return; + if (mSubMessages.find(mPreviousField) != mSubMessages.end()) { + mSubMessages[mPreviousField]->endSession(proto); + } + proto->end(mTokens.top()); + mTokens.pop(); + mPreviousField = ""; +} diff --git a/cmds/incident_helper/src/ih_util.h b/cmds/incident_helper/src/ih_util.h index 4a5fe1dd7a42..58ef29044048 100644 --- a/cmds/incident_helper/src/ih_util.h +++ b/cmds/incident_helper/src/ih_util.h @@ -18,6 +18,7 @@ #define INCIDENT_HELPER_UTIL_H #include <map> +#include <stack> #include <string> #include <vector> @@ -34,7 +35,7 @@ const std::string DEFAULT_NEWLINE = "\r\n"; const std::string TAB_DELIMITER = "\t"; const std::string COMMA_DELIMITER = ","; -// returns true if c is a-zA-Z0-9 or underscore _ +// returns true if c is a-zA-Z0-9 or underscore bool isValidChar(char c); // trim the string with the given charset @@ -102,11 +103,20 @@ private: }; /** - * The class contains a mapping between table headers to its field ids. - * And allow users to insert the field values to proto based on its header name. + * The Table class is constructed from two arrays generated by the given message with + * option (stream_proto.stream_msg).enable_fields_mapping = true. + * The names are each field's names in the message and must corresponding to the header/name of + * the text to be parsed, and the ids are the streaming proto encoded field ids. + * + * This class then allows users to insert the table values to proto based on its header. + * + * Advance feature: if some fields in the message are enums, user must explicitly add the + * mapping from enum name string to its enum values. */ +class Message; class Table { +friend class Message; public: Table(const char* names[], const uint64_t ids[], const int count); ~Table(); @@ -114,9 +124,12 @@ public: // Add enum names to values for parsing purpose. void addEnumTypeMap(const char* field, const char* enumNames[], const int enumValues[], const int enumSize); - // manually add enum names to values mapping, useful when an Enum type is used by a lot of fields, and there are no name conflicts + // Manually add enum names to values mapping, useful when an Enum type is used by + // a number of fields, there must not be any enum name conflicts. void addEnumNameToValue(const char* enumName, const int enumValue); + // Based on given name, find the right field id, parse the text value and insert to proto. + // Return false if the given name can't be found. bool insertField(ProtoOutputStream* proto, const std::string& name, const std::string& value); private: map<std::string, uint64_t> mFields; @@ -124,4 +137,47 @@ private: map<std::string, int> mEnumValuesByName; }; +/** + * Reconstructs a typical proto message given its message Table, adds submessage fields explicitly. + * It allows user to insert nested proto values purely by the names. See insertField for detail. + */ +class Message +{ +public: + Message(Table* table); + ~Message(); + + // Reconstructs the typical proto message by adding its message fields. + void addSubMessage(uint64_t fieldId, Message* fieldMsg); + + // Inserts value if the given name has the corresponding field in its message and return true. + // It will recursively search the name in submessages and find the correct field to insert. + // For example, when the name is dalvik_vm_heapsize, and the message's corresponding proto is: + // message Properties { + // message DalvikVm { + // int32 heapsize = 1; + // bool usejit = 2; + // } + // DalvikVm dalvik_vm = 1; + // string hack_in = 2; + // } + // The value will be inserted into field heapsize in dalvik_vm submessage. + // + // Also value belongs to same submessage MUST be inserted contiguously. + // For example, dalvik_vm_usejit must be inserted directly after dalvik_vm_heapsize, otherwise + // if hack_in attempts to be inserted before dalvik_vm_usejit, value of usejit isn't added as expected. + bool insertField(ProtoOutputStream* proto, const std::string& name, const std::string& value); + + // Starts a new message field proto session. + void startSession(ProtoOutputStream* proto, const string& name); + + // Ends the previous message field proto session. + void endSession(ProtoOutputStream* proto); +private: + Table* mTable; + std::string mPreviousField; + stack<long long> mTokens; + map<std::string, Message*> mSubMessages; +}; + #endif // INCIDENT_HELPER_UTIL_H diff --git a/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp b/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp index ee5feb03242e..a41ed6ebaa22 100644 --- a/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp +++ b/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp @@ -45,11 +45,119 @@ SystemPropertiesParser::Parse(const int in, const int out) const string line; string name; // the name of the property string value; // the string value of the property - ProtoOutputStream proto; - Table table(SystemPropertiesProto::_FIELD_NAMES, SystemPropertiesProto::_FIELD_IDS, SystemPropertiesProto::_FIELD_COUNT); - table.addEnumNameToValue("running", SystemPropertiesProto::STATUS_RUNNING); - table.addEnumNameToValue("stopped", SystemPropertiesProto::STATUS_STOPPED); + vector<pair<string, string>> extras; + + Table sysPropTable(SystemPropertiesProto::_FIELD_NAMES, + SystemPropertiesProto::_FIELD_IDS, + SystemPropertiesProto::_FIELD_COUNT); + Message sysProp(&sysPropTable); + + Table aaudioT(SystemPropertiesProto::Aaudio::_FIELD_NAMES, + SystemPropertiesProto::Aaudio::_FIELD_IDS, + SystemPropertiesProto::Aaudio::_FIELD_COUNT); + Message aaudio(&aaudioT); + sysProp.addSubMessage(SystemPropertiesProto::AAUDIO, &aaudio); + + Table cameraTable(SystemPropertiesProto::Camera::_FIELD_NAMES, + SystemPropertiesProto::Camera::_FIELD_IDS, + SystemPropertiesProto::Camera::_FIELD_COUNT); + Message camera(&cameraTable); + sysProp.addSubMessage(SystemPropertiesProto::CAMERA, &camera); + + Table dalvikVmTable(SystemPropertiesProto::DalvikVm::_FIELD_NAMES, + SystemPropertiesProto::DalvikVm::_FIELD_IDS, + SystemPropertiesProto::DalvikVm::_FIELD_COUNT); + Message dalvikVm(&dalvikVmTable); + sysProp.addSubMessage(SystemPropertiesProto::DALVIK_VM, &dalvikVm); + + Table initSvcTable(SystemPropertiesProto::InitSvc::_FIELD_NAMES, + SystemPropertiesProto::InitSvc::_FIELD_IDS, + SystemPropertiesProto::InitSvc::_FIELD_COUNT); + initSvcTable.addEnumNameToValue("running", SystemPropertiesProto::InitSvc::STATUS_RUNNING); + initSvcTable.addEnumNameToValue("stopped", SystemPropertiesProto::InitSvc::STATUS_STOPPED); + Message initSvc(&initSvcTable); + sysProp.addSubMessage(SystemPropertiesProto::INIT_SVC, &initSvc); + + Table logTable(SystemPropertiesProto::Log::_FIELD_NAMES, + SystemPropertiesProto::Log::_FIELD_IDS, + SystemPropertiesProto::Log::_FIELD_COUNT); + Message logMsg(&logTable); + sysProp.addSubMessage(SystemPropertiesProto::LOG, &logMsg); + + Table persistTable(SystemPropertiesProto::Persist::_FIELD_NAMES, + SystemPropertiesProto::Persist::_FIELD_IDS, + SystemPropertiesProto::Persist::_FIELD_COUNT); + Message persist(&persistTable); + sysProp.addSubMessage(SystemPropertiesProto::PERSIST, &persist); + + Table pmDexoptTable(SystemPropertiesProto::PmDexopt::_FIELD_NAMES, + SystemPropertiesProto::PmDexopt::_FIELD_IDS, + SystemPropertiesProto::PmDexopt::_FIELD_COUNT); + Message pmDexopt(&pmDexoptTable); + sysProp.addSubMessage(SystemPropertiesProto::PM_DEXOPT, &pmDexopt); + + Table roTable(SystemPropertiesProto::Ro::_FIELD_NAMES, + SystemPropertiesProto::Ro::_FIELD_IDS, + SystemPropertiesProto::Ro::_FIELD_COUNT); + Message ro(&roTable); + + Table bootTable(SystemPropertiesProto::Ro::Boot::_FIELD_NAMES, + SystemPropertiesProto::Ro::Boot::_FIELD_IDS, + SystemPropertiesProto::Ro::Boot::_FIELD_COUNT); + Message boot(&bootTable); + ro.addSubMessage(SystemPropertiesProto::Ro::BOOT, &boot); + + Table bootimageTable(SystemPropertiesProto::Ro::BootImage::_FIELD_NAMES, + SystemPropertiesProto::Ro::BootImage::_FIELD_IDS, + SystemPropertiesProto::Ro::BootImage::_FIELD_COUNT); + Message bootimage(&bootimageTable); + ro.addSubMessage(SystemPropertiesProto::Ro::BOOTIMAGE, &bootimage); + + Table buildTable(SystemPropertiesProto::Ro::Build::_FIELD_NAMES, + SystemPropertiesProto::Ro::Build::_FIELD_IDS, + SystemPropertiesProto::Ro::Build::_FIELD_COUNT); + Message build(&buildTable); + + Table versionTable(SystemPropertiesProto::Ro::Build::Version::_FIELD_NAMES, + SystemPropertiesProto::Ro::Build::Version::_FIELD_IDS, + SystemPropertiesProto::Ro::Build::Version::_FIELD_COUNT); + Message version(&versionTable); + build.addSubMessage(SystemPropertiesProto::Ro::Build::VERSION, &version); + ro.addSubMessage(SystemPropertiesProto::Ro::BUILD, &build); + + Table configTable(SystemPropertiesProto::Ro::Config::_FIELD_NAMES, + SystemPropertiesProto::Ro::Config::_FIELD_IDS, + SystemPropertiesProto::Ro::Config::_FIELD_COUNT); + Message config(&configTable); + ro.addSubMessage(SystemPropertiesProto::Ro::CONFIG, &config); + + Table hardwareTable(SystemPropertiesProto::Ro::Hardware::_FIELD_NAMES, + SystemPropertiesProto::Ro::Hardware::_FIELD_IDS, + SystemPropertiesProto::Ro::Hardware::_FIELD_COUNT); + Message hardware(&hardwareTable); + ro.addSubMessage(SystemPropertiesProto::Ro::HARDWARE, &hardware); + + Table productTable(SystemPropertiesProto::Ro::Product::_FIELD_NAMES, + SystemPropertiesProto::Ro::Product::_FIELD_IDS, + SystemPropertiesProto::Ro::Product::_FIELD_COUNT); + Message product(&productTable); + ro.addSubMessage(SystemPropertiesProto::Ro::PRODUCT, &product); + + sysProp.addSubMessage(SystemPropertiesProto::RO, &ro); + + Table sysTable(SystemPropertiesProto::Sys::_FIELD_NAMES, + SystemPropertiesProto::Sys::_FIELD_IDS, + SystemPropertiesProto::Sys::_FIELD_COUNT); + Message sys(&sysTable); + + Table usbTable(SystemPropertiesProto::Sys::Usb::_FIELD_NAMES, + SystemPropertiesProto::Sys::Usb::_FIELD_IDS, + SystemPropertiesProto::Sys::Usb::_FIELD_COUNT); + Message usb(&usbTable); + sys.addSubMessage(SystemPropertiesProto::Sys::USB, &usb); + + sysProp.addSubMessage(SystemPropertiesProto::SYS, &sys); // parse line by line while (reader.readLine(&line)) { @@ -67,13 +175,19 @@ SystemPropertiesParser::Parse(const int in, const int out) const // if the property name couldn't be found in proto definition or the value has mistype, // add to extra properties with its name and value - if (!table.insertField(&proto, convertToFieldName(name), value)) { - long long token = proto.start(SystemPropertiesProto::EXTRA_PROPERTIES); - proto.write(SystemPropertiesProto::Property::NAME, name); - proto.write(SystemPropertiesProto::Property::VALUE, value); - proto.end(token); + if (!sysProp.insertField(&proto, convertToFieldName(name), value)) { + extras.push_back(make_pair(name, value)); } } + // end session for the last write. + sysProp.endSession(&proto); + + for (auto it = extras.begin(); it != extras.end(); it++) { + long long token = proto.start(SystemPropertiesProto::EXTRA_PROPERTIES); + proto.write(SystemPropertiesProto::Property::NAME, it->first); + proto.write(SystemPropertiesProto::Property::VALUE, it->second); + proto.end(token); + } if (!reader.ok(&line)) { fprintf(stderr, "Bad read from fd %d: %s\n", in, line.c_str()); diff --git a/cmds/incident_helper/testdata/system_properties.txt b/cmds/incident_helper/testdata/system_properties.txt index 57c07ee9d75e..51a2dfd96869 100644 --- a/cmds/incident_helper/testdata/system_properties.txt +++ b/cmds/incident_helper/testdata/system_properties.txt @@ -1,14 +1,13 @@ [aaudio.hw_burst_min_usec]: [2000] [aaudio.mmap_exclusive_policy]: [2] [dalvik.vm.appimageformat]: [lz4] -[gsm.operator.isroaming]: [false] -[init.svc.vendor.imsqmidaemon]: [running] -[init.svc.vendor.init-radio-sh]: [stopped] -[net.dns1]: [2001:4860:4860::8844] -[net.tcp.buffersize.wifi]: [524288,2097152,4194304,262144,524288,1048576] -[nfc.initialized]: [True] -[persist_radio_VT_ENABLE]: [1] +[drm_64bit_enabled]: [false] +[init.svc.adbd]: [running] +[init.svc.lmkd]: [stopped] +[media_mediadrmservice_enable]: [True] [ro.boot.boottime]: [1BLL:85,1BLE:898,2BLL:0,2BLE:862,SW:6739,KL:340] [ro.bootimage.build.date.utc]: [1509394807] [ro.bootimage.build.fingerprint]: [google/marlin/marlin:P/MASTER/jinyithu10301320:eng/dev-keys] -[ro.wifi.channels]: []
\ No newline at end of file +[ro.hardware]: [marlin] +[ro.hardware.power]: [marlin-profile] +[ro.wifi.channels]: [] diff --git a/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp b/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp index 23e292a512b9..98838e98d796 100644 --- a/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp +++ b/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp @@ -61,29 +61,38 @@ TEST_F(SystemPropertiesParserTest, HasSwapInfo) { SystemPropertiesParser parser; SystemPropertiesProto expected; - expected.set_aaudio_hw_burst_min_usec(2000); - expected.set_aaudio_mmap_exclusive_policy(2); - expected.set_dalvik_vm_appimageformat("lz4"); - expected.set_gsm_operator_isroaming(false); - expected.set_init_svc_vendor_imsqmidaemon(SystemPropertiesProto_Status_STATUS_RUNNING); - expected.set_init_svc_vendor_init_radio_sh(SystemPropertiesProto_Status_STATUS_STOPPED); - expected.set_net_dns1("2001:4860:4860::8844"); - expected.add_net_tcp_buffersize_wifi(524288); - expected.add_net_tcp_buffersize_wifi(2097152); - expected.add_net_tcp_buffersize_wifi(4194304); - expected.add_net_tcp_buffersize_wifi(262144); - expected.add_net_tcp_buffersize_wifi(524288); - expected.add_net_tcp_buffersize_wifi(1048576); - expected.set_nfc_initialized(true); - expected.set_persist_radio_vt_enable(1); - expected.add_ro_boot_boottime("1BLL:85"); - expected.add_ro_boot_boottime("1BLE:898"); - expected.add_ro_boot_boottime("2BLL:0"); - expected.add_ro_boot_boottime("2BLE:862"); - expected.add_ro_boot_boottime("SW:6739"); - expected.add_ro_boot_boottime("KL:340"); - expected.set_ro_bootimage_build_date_utc(1509394807LL); - expected.set_ro_bootimage_build_fingerprint("google/marlin/marlin:P/MASTER/jinyithu10301320:eng/dev-keys"); + SystemPropertiesProto::Aaudio* aaudio = expected.mutable_aaudio(); + aaudio->set_hw_burst_min_usec(2000); + aaudio->set_mmap_exclusive_policy(2); + + SystemPropertiesProto::DalvikVm* dalvikVm = expected.mutable_dalvik_vm(); + dalvikVm->set_appimageformat("lz4"); + + expected.set_drm_64bit_enabled(false); + + SystemPropertiesProto::InitSvc* initSvc = expected.mutable_init_svc(); + initSvc->set_adbd(SystemPropertiesProto_InitSvc_Status_STATUS_RUNNING); + initSvc->set_lmkd(SystemPropertiesProto_InitSvc_Status_STATUS_STOPPED); + + expected.set_media_mediadrmservice_enable(true); + + SystemPropertiesProto::Ro* ro = expected.mutable_ro(); + + SystemPropertiesProto::Ro::Boot* boot = ro->mutable_boot(); + boot->add_boottime("1BLL:85"); + boot->add_boottime("1BLE:898"); + boot->add_boottime("2BLL:0"); + boot->add_boottime("2BLE:862"); + boot->add_boottime("SW:6739"); + boot->add_boottime("KL:340"); + + SystemPropertiesProto::Ro::BootImage* bootimage = ro->mutable_bootimage(); + bootimage->set_build_date_utc(1509394807LL); + bootimage->set_build_fingerprint("google/marlin/marlin:P/MASTER/jinyithu10301320:eng/dev-keys"); + + SystemPropertiesProto::Ro::Hardware* hardware = ro->mutable_hardware(); + hardware->set_value("marlin"); + hardware->set_power("marlin-profile"); int fd = open(testFile.c_str(), O_RDONLY); ASSERT_TRUE(fd != -1); diff --git a/core/proto/android/os/system_properties.proto b/core/proto/android/os/system_properties.proto index 921bb5a4b471..7ffdc9628cc6 100644 --- a/core/proto/android/os/system_properties.proto +++ b/core/proto/android/os/system_properties.proto @@ -17,641 +17,483 @@ syntax = "proto2"; option java_multiple_files = true; -option java_outer_classname = "SystemPropertiesProtoMetadata"; +import "frameworks/base/libs/incident/proto/android/privacy.proto"; import "frameworks/base/tools/streaming_proto/stream.proto"; package android.os; -// System Properties from getprop +// Android Platform Exported System Properties +// TODO: This is not the completed list, new properties need to be whitelisted. message SystemPropertiesProto { option (stream_proto.stream_msg).enable_fields_mapping = true; - // Properties that are not specified below are appended here. + // Properties that are not specified below would be appended here. + // These values stay on device only. message Property { + option (android.msg_privacy).dest = DEST_LOCAL; + optional string name = 1; optional string value = 2; } repeated Property extra_properties = 1; - optional int32 aaudio_hw_burst_min_usec = 2; - optional int32 aaudio_mmap_exclusive_policy = 3; - optional int32 aaudio_mmap_policy = 4; - - optional int32 af_fast_track_multiplier = 5; - - optional int32 audio_adm_buffering_ms = 6; - optional int32 audio_hal_period_size = 7; - - optional string dalvik_vm_appimageformat = 8; - optional string dalvik_vm_dex2oat_Xms = 9; - optional string dalvik_vm_dex2oat_Xmx = 10; - optional bool dalvik_vm_dexopt_secondary = 11; - optional string dalvik_vm_heapgrowthlimit = 12; - optional string dalvik_vm_heapmaxfree = 13; - optional string dalvik_vm_heapminfree = 14; - optional string dalvik_vm_heapsize = 15; - optional string dalvik_vm_heapstartsize = 16; - optional float dalvik_vm_heaptargetutilization = 17; - optional string dalvik_vm_image_dex2oat_Xms = 18; - optional string dalvik_vm_image_dex2oat_Xmx = 19; - optional string dalvik_vm_image_dex2oat_filter = 20; - optional string dalvik_vm_isa_arm_features = 21; - optional string dalvik_vm_isa_arm_variant = 22; - optional string dalvik_vm_isa_arm64_features = 23; - optional string dalvik_vm_isa_arm64_variant = 24; - optional int32 dalvik_vm_lockprof_threshold = 25; - optional string dalvik_vm_stack_trace_dir = 26; - optional bool dalvik_vm_usejit = 27; - optional bool dalvik_vm_usejitprofiles = 28; - - optional int32 debug_atrace_tags_enableflags = 29; - optional int32 debug_force_rtl = 30; - optional string debug_htc_hrdump = 31; - - optional int32 dev_bootcomplete = 32; - - optional bool drm_service_enabled = 33; - - optional int32 fmas_hdph_sgain = 34; - - optional int32 gsm_current_phone_type = 35; - optional string gsm_network_type = 36; - optional string gsm_operator_alpha = 37; - optional string gsm_operator_iso_country = 38; - optional bool gsm_operator_isroaming = 39; - optional string gsm_operator_numeric = 40; - optional string gsm_sim_operator_alpha = 41; - optional string gsm_sim_operator_iso_country = 42; - optional int32 gsm_sim_operator_numeric = 43; - optional string gsm_sim_state = 44; - optional string gsm_version_baseband = 45; - optional string gsm_version_ril_impl = 46; - - optional sint32 htc_camera_sensor_inf = 47; - - optional bool hwservicemanager_ready = 48; - - // Enum values for a lot of system properties - enum Status { - STATUS_UNKNOWN = 0; - STATUS_RUNNING = 1; - STATUS_STOPPED = 2; + optional int32 aac_drc_boost = 2; + optional int32 aac_drc_cut = 3; + optional int32 aac_drc_enc_target_level = 4; + optional int32 aac_drc_heavy = 5; + optional int32 aac_drc_reference_level = 6; + + message Aaudio { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional int32 hw_burst_min_usec = 1; + optional int32 minimum_sleep_usec = 2; + optional int32 mixer_bursts = 3; + optional int32 mmap_exclusive_policy = 4; + optional int32 mmap_policy = 5; + optional int32 wakeup_delay_usec = 6; + + // Next Tag: 7 + } + optional Aaudio aaudio = 7; + + optional int32 af_fast_track_multiplier = 8; + + message Camera { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional bool disable_zsl_mode = 1; + optional int32 fifo_disable = 2; + + // Next Tag: 3 + } + optional Camera camera = 9; + + message DalvikVm { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string appimageformat = 1; + optional string backgroundgctype = 2; + optional bool checkjni = 3; + optional string dex2oat_filter = 4; + optional string dex2oat_flags = 5; + optional int32 dex2oat_threads = 6; + optional string dex2oat_Xms = 7; + optional string dex2oat_Xmx = 8; + optional bool dexopt_secondary = 9; + optional string execution_mode = 10; + optional string extra_opts = 11; + optional string gctype = 12; + optional string heapgrowthlimit = 13; + optional string heapmaxfree = 14; + optional string heapminfree = 15; + optional string heapsize = 16; + optional string heapstartsize = 17; + optional double heaptargetutilization = 18; + optional int32 hot_startup_method_samples = 19; + optional string image_dex2oat_filter = 20; + optional string image_dex2oat_flags = 21; + optional int32 image_dex2oat_threads = 22; + optional string image_dex2oat_Xms = 23; + optional string image_dex2oat_Xmx = 24; + optional string isa_arm_features = 25; + optional string isa_arm_variant = 26; + optional string isa_arm64_features = 27; + optional string isa_arm64_variant = 28; + optional string isa_mips_features = 29; + optional string isa_mips_variant = 30; + optional string isa_mips64_features = 31; + optional string isa_mips64_variant = 32; + optional string isa_unknown_features = 33; + optional string isa_unknown_variant = 34; + optional string isa_x86_64_features = 35; + optional string isa_x86_64_variant = 36; + optional string isa_x86_features = 37; + optional string isa_x86_variant = 38; + optional string jitinitialsize = 39; + optional string jitmaxsize = 40; + optional int32 jitprithreadweight = 41; + optional int32 jitthreshold = 42; + optional int32 jittransitionweight = 43; + optional string jniopts = 44; + optional int32 lockprof_threshold = 45; + optional bool method_trace = 46; + optional string method_trace_file = 47; + optional int32 method_trace_file_siz = 48; + optional bool method_trace_stream = 49; + optional bool profilesystemserver = 50; + optional string stack_trace_dir = 51; + optional bool usejit = 52; + optional bool usejitprofiles = 53; + optional int32 zygote_max_boot_retry = 54; + + // Next Tag: 55 + } + optional DalvikVm dalvik_vm = 10; + + optional bool drm_64bit_enabled = 11; + optional bool drm_service_enabled = 12; + optional bool dumpstate_dry_run = 13; + optional string gsm_sim_operator_numeric = 14; + optional bool hal_instrumentation_enable = 15; + + message InitSvc { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + enum Status { + STATUS_UNKNOWN = 0; + STATUS_RUNNING = 1; + STATUS_STOPPED = 2; + } + optional Status adbd = 1; + optional Status audioserver = 2; + optional Status bootanim = 3; + optional Status bufferhubd = 4; + optional Status cameraserver = 5; + optional Status clear_bcb = 6; + optional Status drm = 7; + optional Status gatekeeperd = 8; + optional Status healthd = 9; + optional Status hidl_memory = 10; + optional Status hostapd = 11; + optional Status hwservicemanager = 12; + optional Status installd = 13; + optional Status keystore = 14; + optional Status lmkd = 15; + optional Status logd = 16; + optional Status logd_reinit = 17; + optional Status media = 18; + optional Status mediadrm = 19; + optional Status mediaextractor = 20; + optional Status mediametrics = 21; + optional Status netd = 22; + optional Status performanced = 23; + optional Status ril_daemon = 24; + optional Status servicemanager = 25; + optional Status storaged = 26; + optional Status surfaceflinger = 27; + optional Status thermalservice = 28; + optional Status tombstoned = 29; + optional Status ueventd = 30; + optional Status update_engine = 31; + optional Status update_verifier_nonencrypted = 32; + optional Status virtual_touchpad = 33; + optional Status vndservicemanager = 34; + optional Status vold = 35; + optional Status vr_hwc = 36; + optional Status webview_zygote32 = 37; + optional Status wificond = 38; + optional Status wpa_supplicant = 39; + optional Status zygote = 40; + optional Status zygote_secondary = 41; + + // Next Tag: 42 + } + optional InitSvc init_svc = 16; + + optional bool keyguard_no_require_sim = 17; + optional string libc_debug_malloc_options = 18; + optional string libc_debug_malloc_program = 19; + + message Log { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string tag_WifiHAL = 1; + optional string tag_stats_log = 2; + + // Next Tag: 3 } - optional Status init_svc_adbd = 49; - optional Status init_svc_audioserver = 50; - optional Status init_svc_bootanim = 51; - optional Status init_svc_bufferhubd = 52; - optional Status init_svc_cameraserver = 53; - optional Status init_svc_clear_bcb = 54; - optional Status init_svc_drm = 55; - optional Status init_svc_gatekeeperd = 56; - optional Status init_svc_healthd = 57; - optional Status init_svc_hidl_memory = 58; - optional Status init_svc_hostapd = 59; - optional Status init_svc_hwservicemanager = 60; - optional Status init_svc_installd = 61; - optional Status init_svc_keystore = 62; - optional Status init_svc_lmkd = 63; - optional Status init_svc_logd = 64; - optional Status init_svc_logd_reinit = 65; - optional Status init_svc_media = 66; - optional Status init_svc_mediadrm = 67; - optional Status init_svc_mediaextractor = 68; - optional Status init_svc_mediametrics = 69; - optional Status init_svc_netd = 70; - optional Status init_svc_performanced = 71; - optional Status init_svc_ril_daemon = 72; - optional Status init_svc_servicemanager = 73; - optional Status init_svc_storaged = 74; - optional Status init_svc_surfaceflinger = 75; - optional Status init_svc_thermalservice = 76; - optional Status init_svc_tombstoned = 77; - optional Status init_svc_ueventd = 78; - optional Status init_svc_update_engine = 79; - optional Status init_svc_update_verifier_nonencrypted = 80; - optional Status init_svc_vendor_adsprpcd = 81; - optional Status init_svc_vendor_atfwd = 82; - optional Status init_svc_vendor_audio_hal_2_0 = 83; - optional Status init_svc_vendor_bluetooth_1_0 = 84; - optional Status init_svc_vendor_boot_hal_1_0 = 85; - optional Status init_svc_vendor_camera_provider_2_4 = 86; - optional Status init_svc_vendor_cas_hal_1_0 = 87; - optional Status init_svc_vendor_cnd = 88; - optional Status init_svc_vendor_cnss_daemon = 89; - optional Status init_svc_vendor_cnss_diag = 90; - optional Status init_svc_vendor_configstore_hal = 91; - optional Status init_svc_vendor_contexthub_hal_1_0 = 92; - optional Status init_svc_vendor_devstart_sh = 93; - optional Status init_svc_vendor_drm_hal_1_0 = 94; - optional Status init_svc_vendor_drm_widevine_hal_1_0 = 95; - optional Status init_svc_vendor_dumpstate_1_0 = 96; - optional Status init_svc_vendor_flash_nanohub_fw = 97; - optional Status init_svc_vendor_foreground_sh = 98; - optional Status init_svc_vendor_fps_hal = 99; - optional Status init_svc_vendor_gatekeeper_1_0 = 100; - optional Status init_svc_vendor_gnss_service = 101; - optional Status init_svc_vendor_gralloc_2_0 = 102; - optional Status init_svc_vendor_hci_filter_root = 103; - optional Status init_svc_vendor_hwcomposer_2_1 = 104; - optional Status init_svc_vendor_imsdatadaemon = 105; - optional Status init_svc_vendor_imsqmidaemon = 106; - optional Status init_svc_vendor_init_radio_sh = 107; - optional Status init_svc_vendor_irsc_util = 108; - optional Status init_svc_vendor_keymaster_3_0 = 109; - optional Status init_svc_vendor_light_hal_2_0 = 110; - optional Status init_svc_vendor_loc_launcher = 111; - optional Status init_svc_vendor_media_omx = 112; - optional Status init_svc_vendor_memtrack_hal_1_0 = 113; - optional Status init_svc_vendor_mid_sh = 114; - optional Status init_svc_vendor_msm_irqbalance = 115; - optional Status init_svc_vendor_nanohub_slpi = 116; - optional Status init_svc_vendor_netmgrd = 117; - optional Status init_svc_vendor_nfc_hal_service = 118; - optional Status init_svc_vendor_per_mgr = 119; - optional Status init_svc_vendor_per_proxy = 120; - optional Status init_svc_vendor_perfd = 121; - optional Status init_svc_vendor_port_bridge = 122; - optional Status init_svc_vendor_power_hal_1_1 = 123; - optional Status init_svc_vendor_power_sh = 124; - optional Status init_svc_vendor_qseecomd = 125; - optional Status init_svc_vendor_ramdump_auto = 126; - optional Status init_svc_vendor_rmt_storage = 127; - optional Status init_svc_vendor_sensors_hal_1_0 = 128; - optional Status init_svc_vendor_ss_ramdump = 129; - optional Status init_svc_vendor_ssr_setup = 130; - optional Status init_svc_vendor_thermal_engine = 131; - optional Status init_svc_vendor_time_daemon = 132; - optional Status init_svc_vendor_usb_hal_1_1 = 133; - optional Status init_svc_vendor_vibrator_1_0 = 134; - optional Status init_svc_vendor_vr_1_0 = 135; - optional Status init_svc_vendor_wifi_hal_legacy = 136; - optional Status init_svc_virtual_touchpad = 137; - optional Status init_svc_vndservicemanager = 138; - optional Status init_svc_vold = 139; - optional Status init_svc_vr_hwc = 140; - optional Status init_svc_webview_zygote32 = 141; - optional Status init_svc_wificond = 142; - optional Status init_svc_wpa_supplicant = 143; - optional Status init_svc_zygote = 144; - optional Status init_svc_zygote_secondary = 145; - - optional bool keyguard_no_require_sim = 146; - - optional string log_tag_WifiHAL = 147; - - optional bool logd_logpersistd_enable = 148; - - optional bool media_mediadrmservice_enable = 149; - optional bool media_recorder_show_manufacturer_and_model = 150; - - optional string net_bt_name = 151; - optional string net_dns1 = 152; - optional string net_dns2 = 153; - optional string net_dns3 = 154; - optional string net_dns4 = 155; - optional bool net_lte_ims_data_enabled = 156; - optional int32 net_qtaguid_enabled = 157; - optional int32 net_tcp_2g_init_rwnd = 158; - repeated int32 net_tcp_buffersize_default = 159; - repeated int32 net_tcp_buffersize_edge = 160; - repeated int32 net_tcp_buffersize_evdo = 161; - repeated int32 net_tcp_buffersize_gprs = 162; - repeated int32 net_tcp_buffersize_hsdpa = 163; - repeated int32 net_tcp_buffersize_hspa = 164; - repeated int32 net_tcp_buffersize_hspap = 165; - repeated int32 net_tcp_buffersize_hsupa = 166; - repeated int32 net_tcp_buffersize_lte = 167; - repeated int32 net_tcp_buffersize_umts = 168; - repeated int32 net_tcp_buffersize_wifi = 169; - optional int32 net_tcp_default_init_rwnd = 170; - - optional bool nfc_initialized = 171; - - optional bool persist_audio_fluence_speaker = 172; - optional bool persist_audio_fluence_voicecall = 173; - optional bool persist_audio_fluence_voicecomm = 174; - optional bool persist_audio_fluence_voicerec = 175; - - optional int32 persist_camera_debug_logfile = 176; - optional int32 persist_camera_eis_enable = 177; - optional int32 persist_camera_gyro_android = 178; - optional int32 persist_camera_is_type = 179; - optional int32 persist_camera_tnr_preview = 180; - optional int32 persist_camera_tnr_video = 181; - optional int32 persist_camera_tof_direct = 182; - - optional int32 persist_cne_feature = 183; - - optional bool persist_data_iwlan_enable = 184; - optional string persist_data_mode = 185; - - optional int32 persist_radio_RATE_ADAPT_ENABLE = 186; - optional int32 persist_radio_ROTATION_ENABLE = 187; - optional int32 persist_radio_VT_ENABLE = 188; - optional int32 persist_radio_VT_HYBRID_ENABLE = 189; - optional int32 persist_radio_adb_log_on = 190; - optional int32 persist_radio_airplane_mode_on = 191; - optional int32 persist_radio_apm_sim_not_pwdn = 192; - optional int32 persist_radio_custom_ecc = 193; - optional bool persist_radio_data_con_rprt = 194; - optional int32 persist_radio_data_ltd_sys_ind = 195; - optional string persist_radio_enable_tel_mon = 196; - optional bool persist_radio_eons_enabled = 197; - optional bool persist_radio_is_wps_enabled = 198; - optional int32 persist_radio_pwropt_modepref_0 = 199; - optional int32 persist_radio_ril_payload_on = 200; - optional int32 persist_radio_sglte_target = 201; - optional int32 persist_radio_sib16_support = 202; - optional int32 persist_radio_smlog_switch = 203; - optional int32 persist_radio_snapshot_enabled = 204; - optional int32 persist_radio_snapshot_timer = 205; - optional int32 persist_radio_sw_mbn_loaded = 206; - optional int32 persist_radio_sw_mbn_update = 207; - optional string persist_radio_ver_info = 208; - optional int32 persist_radio_videopause_mode = 209; - - optional int32 persist_rcs_supported = 210; - - optional string persist_sys_boot_reason = 211; - optional int32 persist_sys_cnd_iwlan = 212; - optional string persist_sys_dalvik_vm_lib_2 = 213; - optional string persist_sys_gps_lpp = 214; - optional string persist_sys_locale = 215; - optional int32 persist_sys_ssr_enable_ramdumps = 216; - optional string persist_sys_ssr_restart_level = 217; - optional string persist_sys_timezone = 218; - optional string persist_sys_usb_config = 219; - optional int32 persist_sys_webview_vmsize = 220; - - optional string pm_dexopt_ab_ota = 221; - optional string pm_dexopt_bg_dexopt = 222; - optional string pm_dexopt_boot = 223; - optional string pm_dexopt_first_boot = 224; - optional string pm_dexopt_inactive = 225; - optional string pm_dexopt_install = 226; - optional string pm_dexopt_shared = 227; - - optional string qcom_bluetooth_soc = 228; - - optional int32 qdcm_diagonal_matrix_mode = 229; - optional int32 qdcm_only_pcc_for_trans = 230; - - repeated string ril_ecclist = 231; - optional int32 ril_power_backoff_suppressed = 232; - optional int32 ril_qcril_pre_init_lock_held = 233; - optional string ril_voice_network_type = 234; - optional string rild_libpath = 235; - - optional int32 ro_adb_secure = 236; - optional int32 ro_allow_mock_location = 237; - repeated string ro_atrace_core_services = 238; - optional string ro_baseband = 239; - optional int32 ro_bionic_ld_warning = 240; - optional bool ro_bluetooth_dun = 241; - optional string ro_bluetooth_hfp_ver = 242; - optional bool ro_bluetooth_sap = 243; - optional string ro_board_platform = 244; - - optional string ro_boot_baseband = 245; - optional string ro_boot_bootdevice = 246; - optional string ro_boot_bootloader = 247; - optional string ro_boot_bootreason = 248; - repeated string ro_boot_boottime = 249; - optional int32 ro_boot_cid = 250; - optional string ro_boot_console = 251; - optional string ro_boot_ddrinfo = 252; - optional string ro_boot_ddrsize = 253; - optional int32 ro_boot_flash_locked = 254; - optional int32 ro_boot_fp_src = 255; - optional string ro_boot_hardware = 256; - optional string ro_boot_hardware_color = 257; - optional string ro_boot_hardware_ddr = 258; - optional string ro_boot_hardware_revision = 259; - optional string ro_boot_hardware_sku = 260; - optional string ro_boot_hardware_ufs = 261; - optional string ro_boot_htc_hrdump = 262; - optional int32 ro_boot_keymaster = 263; - optional string ro_boot_mid = 264; - optional int32 ro_boot_msm_hw_ver_id = 265; - optional int32 ro_boot_oem_unlock_support = 266; - optional int32 ro_boot_qf_st = 267; - optional int32 ro_boot_ramdump_enable = 268; - optional string ro_boot_serialno = 269; - optional string ro_boot_slot_suffix = 270; - optional int32 ro_boot_temp_protect_ignore = 271; - optional string ro_boot_vendor_overlay_theme = 272; - optional string ro_boot_verifiedbootstate = 273; - optional string ro_boot_veritymode = 274; - optional string ro_boot_wificountrycode = 275; - - optional string ro_bootimage_build_date = 276; - optional int64 ro_bootimage_build_date_utc = 277; - optional string ro_bootimage_build_fingerprint = 278; - - optional string ro_bootloader = 279; - optional string ro_bootmode = 280; - - optional int64 ro_boottime_adbd = 281; - optional int64 ro_boottime_audioserver = 282; - optional int64 ro_boottime_bootanim = 283; - optional int64 ro_boottime_bufferhubd = 284; - optional int64 ro_boottime_cameraserver = 285; - optional int64 ro_boottime_clear_bcb = 286; - optional int64 ro_boottime_drm = 287; - optional int64 ro_boottime_gatekeeperd = 288; - optional int64 ro_boottime_healthd = 289; - optional int64 ro_boottime_hidl_memory = 290; - optional int64 ro_boottime_hwservicemanager = 291; - optional int64 ro_boottime_init = 292; - optional int64 ro_boottime_init_cold_boot_wait = 293; - optional int32 ro_boottime_init_mount_all_early = 294; - optional int32 ro_boottime_init_mount_all_late = 295; - optional int32 ro_boottime_init_selinux = 296; - optional int64 ro_boottime_installd = 297; - optional int64 ro_boottime_keystore = 298; - optional int64 ro_boottime_lmkd = 299; - optional int64 ro_boottime_logd = 300; - optional int64 ro_boottime_logd_reinit = 301; - optional int64 ro_boottime_media = 302; - optional int64 ro_boottime_mediadrm = 303; - optional int64 ro_boottime_mediaextractor = 304; - optional int64 ro_boottime_mediametrics = 305; - optional int64 ro_boottime_netd = 306; - optional int64 ro_boottime_performanced = 307; - optional int64 ro_boottime_ril_daemon = 308; - optional int64 ro_boottime_servicemanager = 309; - optional int64 ro_boottime_storaged = 310; - optional int64 ro_boottime_surfaceflinger = 311; - optional int64 ro_boottime_thermalservice = 312; - optional int64 ro_boottime_tombstoned = 313; - optional int64 ro_boottime_ueventd = 314; - optional int64 ro_boottime_update_engine = 315; - optional int64 ro_boottime_update_verifier_nonencrypted = 316; - optional int64 ro_boottime_vendor_adsprpcd = 317; - optional int64 ro_boottime_vendor_atfwd = 318; - optional int64 ro_boottime_vendor_audio_hal_2_0 = 319; - optional int64 ro_boottime_vendor_bluetooth_1_0 = 320; - optional int64 ro_boottime_vendor_boot_hal_1_0 = 321; - optional int64 ro_boottime_vendor_camera_provider_2_4 = 322; - optional int64 ro_boottime_vendor_cas_hal_1_0 = 323; - optional int64 ro_boottime_vendor_cnd = 324; - optional int64 ro_boottime_vendor_cnss_daemon = 325; - optional int64 ro_boottime_vendor_cnss_diag = 326; - optional int64 ro_boottime_vendor_configstore_hal = 327; - optional int64 ro_boottime_vendor_contexthub_hal_1_0 = 328; - optional int64 ro_boottime_vendor_devstart_sh = 329; - optional int64 ro_boottime_vendor_drm_hal_1_0 = 330; - optional int64 ro_boottime_vendor_drm_widevine_hal_1_0 = 331; - optional int64 ro_boottime_vendor_dumpstate_1_0 = 332; - optional int64 ro_boottime_vendor_flash_nanohub_fw = 333; - optional int64 ro_boottime_vendor_foreground_sh = 334; - optional int64 ro_boottime_vendor_fps_hal = 335; - optional int64 ro_boottime_vendor_gatekeeper_1_0 = 336; - optional int64 ro_boottime_vendor_gnss_service = 337; - optional int64 ro_boottime_vendor_gralloc_2_0 = 338; - optional int64 ro_boottime_vendor_hci_filter_root = 339; - optional int64 ro_boottime_vendor_hwcomposer_2_1 = 340; - optional int64 ro_boottime_vendor_imsdatadaemon = 341; - optional int64 ro_boottime_vendor_imsqmidaemon = 342; - optional int64 ro_boottime_vendor_init_radio_sh = 343; - optional int64 ro_boottime_vendor_irsc_util = 344; - optional int64 ro_boottime_vendor_keymaster_3_0 = 345; - optional int64 ro_boottime_vendor_light_hal_2_0 = 346; - optional int64 ro_boottime_vendor_loc_launcher = 347; - optional int64 ro_boottime_vendor_media_omx = 348; - optional int64 ro_boottime_vendor_memtrack_hal_1_0 = 349; - optional int64 ro_boottime_vendor_mid_sh = 350; - optional int64 ro_boottime_vendor_msm_irqbalance = 351; - optional int64 ro_boottime_vendor_nanohub_slpi = 352; - optional int64 ro_boottime_vendor_netmgrd = 353; - optional int64 ro_boottime_vendor_nfc_hal_service = 354; - optional int64 ro_boottime_vendor_per_mgr = 355; - optional int64 ro_boottime_vendor_per_proxy = 356; - optional int64 ro_boottime_vendor_perfd = 357; - optional int64 ro_boottime_vendor_port_bridge = 358; - optional int64 ro_boottime_vendor_power_hal_1_1 = 359; - optional int64 ro_boottime_vendor_power_sh = 360; - optional int64 ro_boottime_vendor_qseecomd = 361; - optional int64 ro_boottime_vendor_ramdump_auto = 362; - optional int64 ro_boottime_vendor_rmt_storage = 363; - optional int64 ro_boottime_vendor_sensors_hal_1_0 = 364; - optional int64 ro_boottime_vendor_ss_ramdump = 365; - optional int64 ro_boottime_vendor_ssr_setup = 366; - optional int64 ro_boottime_vendor_thermal_engine = 367; - optional int64 ro_boottime_vendor_time_daemon = 368; - optional int64 ro_boottime_vendor_usb_hal_1_1 = 369; - optional int64 ro_boottime_vendor_vibrator_1_0 = 370; - optional int64 ro_boottime_vendor_vr_1_0 = 371; - optional int64 ro_boottime_vendor_wifi_hal_legacy = 372; - optional int64 ro_boottime_virtual_touchpad = 373; - optional int64 ro_boottime_vndservicemanager = 374; - optional int64 ro_boottime_vold = 375; - optional int64 ro_boottime_vr_hwc = 376; - optional int64 ro_boottime_webview_zygote32 = 377; - optional int64 ro_boottime_wificond = 378; - optional int64 ro_boottime_wpa_supplicant = 379; - optional int64 ro_boottime_zygote = 380; - optional int64 ro_boottime_zygote_secondary = 381; - - optional string ro_bt_bdaddr_path = 382; - - optional bool ro_build_ab_update = 383; - optional string ro_build_characteristics = 384; - optional string ro_build_date = 385; - optional int64 ro_build_date_utc = 386; - optional string ro_build_description = 387; - optional string ro_build_display_id = 388; - optional string ro_build_expect_baseband = 389; - optional string ro_build_expect_bootloader = 390; - optional string ro_build_fingerprint = 391; - optional string ro_build_flavor = 392; - optional string ro_build_host = 393; - optional string ro_build_id = 394; - optional string ro_build_product = 395; - optional bool ro_build_system_root_image = 396; - optional string ro_build_tags = 397; - optional string ro_build_type = 398; - optional string ro_build_user = 399; - optional string ro_build_version_all_codenames = 400; - optional string ro_build_version_base_os = 401; - optional string ro_build_version_codename = 402; - optional string ro_build_version_incremental = 403; - optional int32 ro_build_version_preview_sdk = 404; - optional string ro_build_version_release = 405; - optional int32 ro_build_version_sdk = 406; - optional string ro_build_version_security_patch = 407; - - optional int32 ro_camera_notify_nfc = 408; - optional string ro_carrier = 409; - optional bool ro_com_android_dataroaming = 410; - optional bool ro_com_android_prov_mobiledata = 411; - optional string ro_com_google_clientidbase = 412; - optional int32 ro_com_google_ime_theme_id = 413; - - optional string ro_config_alarm_alert = 414; - optional string ro_config_notification_sound = 415; - optional string ro_config_ringtone = 416; - optional int32 ro_config_vc_call_vol_steps = 417; - optional string ro_control_privapp_permissions = 418; - optional int32 ro_cp_system_other_odex = 419; - - optional string ro_crypto_scrypt_params = 420; - optional string ro_crypto_state = 421; - optional string ro_crypto_type = 422; - optional string ro_crypto_volume_filenames_mode = 423; - optional int32 ro_dalvik_vm_native_bridge = 424; - optional int32 ro_debuggable = 425; - optional bool ro_device_owner = 426; - optional string ro_error_receiver_system_apps = 427; - - optional int32 ro_facelock_black_timeout = 428; - optional int32 ro_facelock_det_timeout = 429; - optional int32 ro_facelock_est_max_time = 430; - optional int32 ro_facelock_rec_timeout = 431; - - optional string ro_frp_pst = 432; - - optional string ro_hardware = 433; - optional string ro_hardware_power = 434; - - optional int32 ro_hwui_drop_shadow_cache_size = 435; - optional int32 ro_hwui_gradient_cache_size = 436; - optional int32 ro_hwui_layer_cache_size = 437; - optional int32 ro_hwui_path_cache_size = 438; - optional int32 ro_hwui_r_buffer_cache_size = 439; - optional int32 ro_hwui_text_large_cache_height = 440; - optional int32 ro_hwui_text_large_cache_width = 441; - optional int32 ro_hwui_text_small_cache_height = 442; - optional int32 ro_hwui_text_small_cache_width = 443; - optional float ro_hwui_texture_cache_flushrate = 444; - optional int32 ro_hwui_texture_cache_size = 445; - - optional bool ro_init_subcontexts_enabled = 446; - optional int32 ro_kernel_android_checkjni = 447; - optional string ro_logd_size = 448; - optional int32 ro_min_freq_0 = 449; - optional int32 ro_oem_unlock_supported = 450; - optional bool ro_opa_eligible_device = 451; - optional int32 ro_opengles_version = 452; - optional bool ro_persistent_properties_ready = 453; - - optional string ro_product_board = 454; - optional string ro_product_brand = 455; - optional string ro_product_cpu_abi = 456; - repeated string ro_product_cpu_abilist = 457; - repeated string ro_product_cpu_abilist32 = 458; - optional string ro_product_cpu_abilist64 = 459; - optional string ro_product_device = 460; - optional int32 ro_product_first_api_level = 461; - optional string ro_product_locale = 462; - optional string ro_product_manufacturer = 463; - optional string ro_product_model = 464; - optional string ro_product_name = 465; - optional string ro_product_vendor_brand = 466; - optional string ro_product_vendor_device = 467; - optional string ro_product_vendor_manufacturer = 468; - optional string ro_product_vendor_model = 469; - optional string ro_product_vendor_name = 470; - - optional int32 ro_property_service_version = 471; - optional string ro_qc_sdk_audio_fluencetype = 472; - optional int32 ro_qcom_adreno_qgl_ShaderStorageImageExtendedFormats = 473; - optional bool ro_qualcomm_bluetooth_ftp = 474; - optional bool ro_qualcomm_bluetooth_hfp = 475; - optional bool ro_qualcomm_bluetooth_hsp = 476; - optional bool ro_qualcomm_bluetooth_map = 477; - optional bool ro_qualcomm_bluetooth_nap = 478; - optional bool ro_qualcomm_bluetooth_opp = 479; - optional bool ro_qualcomm_bluetooth_pbap = 480; - - optional string ro_radio_log_loc = 481; - optional string ro_radio_log_prefix = 482; - optional int32 ro_revision = 483; - optional bool ro_ril_svdo = 484; - optional bool ro_ril_svlte1x = 485; - optional int64 ro_runtime_firstboot = 486; - optional int32 ro_secure = 487; - optional string ro_serialno = 488; - optional int32 ro_setupwizard_enterprise_mode = 489; - optional bool ro_setupwizard_rotation_locked = 490; - optional int32 ro_sf_lcd_density = 491; - optional bool ro_storage_manager_enabled = 492; - optional bool ro_telephony_call_ring_multiple = 493; - optional int32 ro_telephony_default_cdma_sub = 494; - optional int32 ro_telephony_default_network = 495; - optional bool ro_treble_enabled = 496; - optional string ro_url_legal = 497; - optional string ro_url_legal_android_privacy = 498; - optional string ro_vendor_build_date = 499; - optional int64 ro_vendor_build_date_utc = 500; - optional string ro_vendor_build_fingerprint = 501; - optional string ro_vendor_extension_library = 502; - optional bool ro_wallpapers_loc_request_suw = 503; - optional string ro_wifi_channels = 504; - optional string ro_zygote = 505; - - optional int32 sdm_debug_disable_rotator_split = 506; - - optional string selinux_restorecon_recursive = 507; - - optional string sendbug_preferred_domain = 508; - - optional string sensors_contexthub_lid_state = 509; - - optional int32 service_bootanim_exit = 510; - optional int32 service_sf_present_timestamp = 511; - - optional string setupwizard_theme = 512; - - optional string sys_boot_reason = 513; - optional int32 sys_boot_completed = 514; - optional int32 sys_ims_QMI_DAEMON_STATUS = 515; - optional bool sys_keymaster_loaded = 516; - optional bool sys_listeners_registered = 517; - optional int32 sys_logbootcomplete = 518; - optional int32 sys_oem_unlock_allowed = 519; - optional int32 sys_post_boot_parsed = 520; - optional int32 sys_qcom_devup = 521; - optional int32 sys_retaildemo_enabled = 522; - optional string sys_slpi_firmware_version = 523; - optional int32 sys_sysctl_extra_free_kbytes = 524; - optional int32 sys_sysctl_tcp_def_init_rwnd = 525; - optional bool sys_time_set = 526; - optional string sys_usb_config = 527; - optional int32 sys_usb_configfs = 528; - optional string sys_usb_controller = 529; - optional int32 sys_usb_ffs_max_read = 530; - optional int32 sys_usb_ffs_max_write = 531; - optional int32 sys_usb_ffs_mtp_ready = 532; - optional int32 sys_usb_ffs_ready = 533; - optional int32 sys_usb_mtp_device_type = 534; - optional int32 sys_usb_rps_mask = 535; - optional string sys_usb_state = 536; - optional bool sys_user_0_ce_available = 537; - optional int32 sys_wifitracing_started = 538; - - optional int32 telephony_lteOnCdmaDevice = 539; - - optional int32 tombstoned_max_tombstone_count = 540; - - optional int32 vidc_debug_perf_mode = 541; - - optional int32 vold_has_adoptable = 542; - optional int32 vold_has_quota = 543; - optional int32 vold_post_fs_data_done = 544; - - optional int32 wc_transport_clean_up = 545; - optional int32 wc_transport_hci_filter_status = 546; - optional string wc_transport_patch_dnld_inprog = 547; - optional int32 wc_transport_ref_count = 548; - optional int32 wc_transport_soc_initialized = 549; - optional bool wc_transport_start_root = 550; - optional int32 wc_transport_vnd_power = 551; - - optional string wifi_interface = 552; - optional string wlan_driver_status = 553; - - // Next Tag: 554 + optional Log log = 20; + + optional bool media_mediadrmservice_enable = 21; + optional bool media_recorder_show_manufacturer_and_model = 22; + + message Persist { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string config_calibration_fac = 1; + optional int32 dbg_volte_avail_ovr = 2; + optional int32 dbg_vt_avail_ovr = 3; + optional int32 dbg_wfc_avail_ovr = 4; + optional int32 radio_airplane_mode_on = 5; + optional string radio_multisim_config = 6; + optional int32 rcs_supported = 7; + optional bool sys_crash_rcu = 8; + optional string sys_dalvik_vm_lib_2 = 9; + optional float sys_sf_color_saturation = 10; + optional string sys_timezone = 11; + + // Next Tag: 12 + } + optional Persist persist = 23; + + message PmDexopt { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string ab_ota = 1; + optional string bg_dexopt = 2; + optional string boot = 3; + optional string first_boot = 4; + optional string install = 5; + + // Next Tag: 6 + } + optional PmDexopt pm_dexopt = 24; + + message Ro { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional int32 adb_secure = 1; + optional string arch = 2; + optional bool audio_ignore_effects = 3; + optional bool audio_monitorRotation = 4; + optional string baseband = 5; + optional string board_platform = 6; + + message Boot { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string avb_version = 1; + optional string baseband = 2; + optional string bootdevice = 3; + optional string bootloader = 4; + repeated string boottime = 5; + optional string console = 6; + optional int32 fake_battery = 7; + optional string hardware = 8; + optional string hardware_color = 9; + optional string hardware_revision = 10; + optional string hardware_sku = 11; + optional string keymaster = 12; + optional string mode = 13; + optional string revision = 14; + optional string slot_suffix = 15; + optional string vbmeta_avb_version = 16; + optional string vendor_overlay_theme = 17; + optional string verifiedbootstate = 18; + optional string veritymode = 19; + optional string wificountrycode = 20; + + // Next Tag: 21 + } + optional Boot boot = 7; + + message BootImage { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string build_date = 1; + optional int32 build_date_utc = 2; + optional string build_fingerprint = 3; + + // Next Tag: 4 + } + optional BootImage bootimage = 8; + + optional string bootloader = 9; + optional string bootmode = 10; + + message Build { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string date = 1; + optional int32 date_utc = 2; + optional string description = 3; + optional string display_id = 4; + optional string host = 5; + optional string id = 6; + optional string product = 7; + optional bool system_root_image = 8; + optional string tags = 9; + optional string type = 10; + optional string user = 11; + + message Version { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string version_base_os = 1; + optional string version_codename = 2; + optional string version_incremental = 3; + optional int32 version_preview_sdk = 4; + optional string version_release = 5; + optional int32 version_sdk = 6; + optional string version_security_patch = 7; + + // Next Tag: 8 + } + optional Version version = 12; + + // Next Tag: 13 + } + optional Build build = 11; + + optional int32 camera_notify_nfc = 12; + optional string carrier = 13; + optional bool com_android_dataroaming = 14; + optional bool com_android_prov_mobiledata = 15; + optional string com_google_clientidbase = 16; + + message Config { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string alarm_alert = 1; + optional int32 media_vol_steps = 2; + optional string notification_sound = 3; + optional string ringtone = 4; + optional int32 vc_call_vol_steps = 5; + + // Next Tag: 6 + } + optional Config config = 17; + + optional string control_privapp_permissions = 18; + optional int32 cp_system_other_odex = 19; + optional string crypto_scrypt_params = 20; + optional string crypto_state = 21; + optional string crypto_type = 22; + optional string dalvik_vm_native_bridge = 23; + optional int32 debuggable = 24; + optional string frp_pst = 25; + optional string gfx_driver_0 = 26; + + message Hardware { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string value = 1; // value of ro.hardware itself + + optional string activity_recognition = 2; + optional string audio = 3; + optional string audio_policy = 4; + optional string audio_a2dp = 5; + optional string audio_primary = 6; + optional string audio_usb = 7; + optional string bootctrl = 8; + optional string camera = 9; + optional string consumerir = 10; + optional string context_hub = 11; + optional string egl = 12; + optional string fingerprint = 13; + optional string flp = 14; + optional string gatekeeper = 15; + optional string gps = 16; + optional string gralloc = 17; + optional string hdmi_cec = 18; + optional string hwcomposer = 19; + optional string input = 20; + optional string keystore = 21; + optional string lights = 22; + optional string local_time = 23; + optional string memtrack = 24; + optional string nfc = 25; + optional string nfc_nci = 26; + optional string nfc_tag = 27; + optional string nvram = 28; + optional string power = 29; + optional string radio = 30; + optional string sensors = 31; + optional string sound_trigger = 32; + optional string thermal = 33; + optional string tv_input = 34; + optional string type = 35; + optional string vehicle = 36; + optional string vibrator = 37; + optional string virtual_device = 38; + optional string vulkan = 39; + + // Next Tag: 40 + } + optional Hardware hardware = 27; + + optional int32 kernel_qemu = 28; + optional int32 kernel_qemu_gles = 29; + optional int32 oem_unlock_supported = 30; + optional int32 opengles_version = 31; + + message Product { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string board = 1; + optional string brand = 2; + optional string cpu_abi = 3; + optional string cpu_abilist = 4; + optional string cpu_abilist32 = 5; + optional string cpu_abilist64 = 6; + optional string device = 7; + optional int32 first_api_level = 8; + optional string manufacturer = 9; + optional string model = 10; + optional string name = 11; + optional string vendor_brand = 12; + optional string vendor_device = 13; + optional string vendor_manufacturer = 14; + optional string vendor_model = 15; + optional string vendor_name = 16; + + // Next Tag: 17 + } + optional Product product = 32; + + optional int32 property_service_version = 33; + optional string retaildemo_video_path = 34; + optional string revision = 35; + optional int32 sf_lcd_density = 36; + optional bool storage_manager_enabled = 37; + optional bool telephony_call_ring_multiple = 38; + optional int32 telephony_default_cdma_sub = 39; + optional int32 telephony_default_network = 40; + optional string url_legal = 41; + optional string url_legal_android_privacy = 42; + optional string vendor_build_date = 43; + optional int32 vendor_build_date_utc = 44; + optional string vendor_build_fingerprint = 45; + optional string vndk_version = 46; + optional int32 vts_coverage = 47; + optional string zygote = 48; + + // Next Tag: 49 + } + optional Ro ro = 25; + + optional string sendbug_preferred_domain = 26; + optional int32 service_bootanim_exit = 27; + + message Sys { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional int32 boot_completed = 1; + optional int32 boot_from_charger_mode = 2; + optional int32 retaildemo_enabled = 3; + optional string shutdown_requested = 4; + + message Usb { + option (stream_proto.stream_msg).enable_fields_mapping = true; + + optional string config = 1; + optional int32 configfs = 2; + optional string controller = 3; + optional int32 ffs_max_read = 4; + optional int32 ffs_max_write = 5; + optional int32 ffs_mtp_ready = 6; + optional int32 ffs_ready = 7; + optional int32 mtp_device_type = 8; + optional string state = 9; + + // Next Tag: 10 + } + optional Usb usb = 5; + + // Next Tag: 6 + } + optional Sys sys = 28; + + optional int32 telephony_lteOnCdmaDevice = 29; + optional int32 tombstoned_max_tombstone_count = 30; + optional string vold_decrypt = 31; + optional int32 vold_post_fs_data_done = 32; + optional int32 vts_native_server_on = 33; + optional string wifi_direct_interface = 34; + optional string wifi_interface = 35; + + // Next Tag: 36 } |