summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp17
-rw-r--r--cmds/incident_helper/testdata/system_properties.txt3
-rw-r--r--cmds/incident_helper/tests/SystemPropertiesParser_test.cpp51
-rw-r--r--core/proto/android/os/system_properties.proto145
-rw-r--r--tools/streaming_proto/cpp/main.cpp14
-rw-r--r--tools/streaming_proto/stream.proto3
6 files changed, 112 insertions, 121 deletions
diff --git a/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp b/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp
index a41ed6ebaa22..23393da01d48 100644
--- a/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp
+++ b/cmds/incident_helper/src/parsers/SystemPropertiesParser.cpp
@@ -53,10 +53,16 @@ SystemPropertiesParser::Parse(const int in, const int out) const
SystemPropertiesProto::_FIELD_COUNT);
Message sysProp(&sysPropTable);
- Table aaudioT(SystemPropertiesProto::Aaudio::_FIELD_NAMES,
+ Table aacDrcTable(SystemPropertiesProto::AacDrc::_FIELD_NAMES,
+ SystemPropertiesProto::AacDrc::_FIELD_IDS,
+ SystemPropertiesProto::AacDrc::_FIELD_COUNT);
+ Message aacDrc(&aacDrcTable);
+ sysProp.addSubMessage(SystemPropertiesProto::AAC_DRC, &aacDrc);
+
+ Table aaudioTable(SystemPropertiesProto::Aaudio::_FIELD_NAMES,
SystemPropertiesProto::Aaudio::_FIELD_IDS,
SystemPropertiesProto::Aaudio::_FIELD_COUNT);
- Message aaudio(&aaudioT);
+ Message aaudio(&aaudioTable);
sysProp.addSubMessage(SystemPropertiesProto::AAUDIO, &aaudio);
Table cameraTable(SystemPropertiesProto::Camera::_FIELD_NAMES,
@@ -142,8 +148,13 @@ SystemPropertiesParser::Parse(const int in, const int out) const
SystemPropertiesProto::Ro::Product::_FIELD_IDS,
SystemPropertiesProto::Ro::Product::_FIELD_COUNT);
Message product(&productTable);
- ro.addSubMessage(SystemPropertiesProto::Ro::PRODUCT, &product);
+ Table vendorTable(SystemPropertiesProto::Ro::Product::Vendor::_FIELD_NAMES,
+ SystemPropertiesProto::Ro::Product::Vendor::_FIELD_IDS,
+ SystemPropertiesProto::Ro::Product::Vendor::_FIELD_COUNT);
+ Message vendor(&vendorTable);
+ product.addSubMessage(SystemPropertiesProto::Ro::Product::VENDOR, &vendor);
+ ro.addSubMessage(SystemPropertiesProto::Ro::PRODUCT, &product);
sysProp.addSubMessage(SystemPropertiesProto::RO, &ro);
Table sysTable(SystemPropertiesProto::Sys::_FIELD_NAMES,
diff --git a/cmds/incident_helper/testdata/system_properties.txt b/cmds/incident_helper/testdata/system_properties.txt
index 51a2dfd96869..bf7d4ad5a844 100644
--- a/cmds/incident_helper/testdata/system_properties.txt
+++ b/cmds/incident_helper/testdata/system_properties.txt
@@ -1,3 +1,4 @@
+[aac_drc_cut]: [123]
[aaudio.hw_burst_min_usec]: [2000]
[aaudio.mmap_exclusive_policy]: [2]
[dalvik.vm.appimageformat]: [lz4]
@@ -10,4 +11,6 @@
[ro.bootimage.build.fingerprint]: [google/marlin/marlin:P/MASTER/jinyithu10301320:eng/dev-keys]
[ro.hardware]: [marlin]
[ro.hardware.power]: [marlin-profile]
+[ro.product.cpu.abilist]: [arm64-v8a,armeabi-v7a,armeabi]
+[ro.product.vendor.brand]: [google]
[ro.wifi.channels]: []
diff --git a/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp b/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp
index 98838e98d796..1180f64d05ac 100644
--- a/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp
+++ b/cmds/incident_helper/tests/SystemPropertiesParser_test.cpp
@@ -61,38 +61,33 @@ TEST_F(SystemPropertiesParserTest, HasSwapInfo) {
SystemPropertiesParser parser;
SystemPropertiesProto expected;
- 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.mutable_aac_drc()->set_cut(123);
+ expected.mutable_aaudio()->set_hw_burst_min_usec(2000);
+ expected.mutable_aaudio()->set_mmap_exclusive_policy(2);
+ expected.mutable_dalvik_vm()->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.mutable_init_svc()->set_adbd(
+ SystemPropertiesProto_InitSvc_Status_STATUS_RUNNING);
+ expected.mutable_init_svc()->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");
+ ro->mutable_boot()->add_boottime("1BLL:85");
+ ro->mutable_boot()->add_boottime("1BLE:898");
+ ro->mutable_boot()->add_boottime("2BLL:0");
+ ro->mutable_boot()->add_boottime("2BLE:862");
+ ro->mutable_boot()->add_boottime("SW:6739");
+ ro->mutable_boot()->add_boottime("KL:340");
+ ro->mutable_bootimage()->set_build_date_utc(1509394807LL);
+ ro->mutable_bootimage()->set_build_fingerprint(
+ "google/marlin/marlin:P/MASTER/jinyithu10301320:eng/dev-keys");
+ ro->mutable_hardware()->set_value("marlin");
+ ro->mutable_hardware()->set_power("marlin-profile");
+ ro->mutable_product()->add_cpu_abilist("arm64-v8a");
+ ro->mutable_product()->add_cpu_abilist("armeabi-v7a");
+ ro->mutable_product()->add_cpu_abilist("armeabi");
+ ro->mutable_product()->mutable_vendor()->set_brand("google");
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 7ffdc9628cc6..76a108b1ac08 100644
--- a/core/proto/android/os/system_properties.proto
+++ b/core/proto/android/os/system_properties.proto
@@ -26,7 +26,7 @@ package android.os;
// 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;
+ option (stream_proto.stream_msg).enable_fields_mapping_recursively = true;
// Properties that are not specified below would be appended here.
// These values stay on device only.
@@ -38,15 +38,16 @@ message SystemPropertiesProto {
}
repeated Property extra_properties = 1;
- 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 AacDrc {
+ optional int32 boost = 1;
+ optional int32 cut = 2;
+ optional int32 enc_target_level = 3;
+ optional int32 heavy = 4;
+ optional int32 reference_level = 5;
+ }
+ optional AacDrc aac_drc = 2;
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;
@@ -56,23 +57,19 @@ message SystemPropertiesProto {
// Next Tag: 7
}
- optional Aaudio aaudio = 7;
+ optional Aaudio aaudio = 3;
- optional int32 af_fast_track_multiplier = 8;
+ optional int32 af_fast_track_multiplier = 4;
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;
+ optional Camera camera = 5;
message DalvikVm {
- option (stream_proto.stream_msg).enable_fields_mapping = true;
-
optional string appimageformat = 1;
optional string backgroundgctype = 2;
optional bool checkjni = 3;
@@ -130,17 +127,15 @@ message SystemPropertiesProto {
// Next Tag: 55
}
- optional DalvikVm dalvik_vm = 10;
+ optional DalvikVm dalvik_vm = 6;
- 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;
+ optional bool drm_64bit_enabled = 7;
+ optional bool drm_service_enabled = 8;
+ optional bool dumpstate_dry_run = 9;
+ optional string gsm_sim_operator_numeric = 10;
+ optional bool hal_instrumentation_enable = 11;
message InitSvc {
- option (stream_proto.stream_msg).enable_fields_mapping = true;
-
enum Status {
STATUS_UNKNOWN = 0;
STATUS_RUNNING = 1;
@@ -190,28 +185,24 @@ message SystemPropertiesProto {
// Next Tag: 42
}
- optional InitSvc init_svc = 16;
+ optional InitSvc init_svc = 12;
- optional bool keyguard_no_require_sim = 17;
- optional string libc_debug_malloc_options = 18;
- optional string libc_debug_malloc_program = 19;
+ optional bool keyguard_no_require_sim = 13;
+ optional string libc_debug_malloc_options = 14;
+ optional string libc_debug_malloc_program = 15;
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 Log log = 20;
+ optional Log log = 16;
- optional bool media_mediadrmservice_enable = 21;
- optional bool media_recorder_show_manufacturer_and_model = 22;
+ optional bool media_mediadrmservice_enable = 17;
+ optional bool media_recorder_show_manufacturer_and_model = 18;
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;
@@ -226,11 +217,9 @@ message SystemPropertiesProto {
// Next Tag: 12
}
- optional Persist persist = 23;
+ optional Persist persist = 19;
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;
@@ -239,11 +228,9 @@ message SystemPropertiesProto {
// Next Tag: 6
}
- optional PmDexopt pm_dexopt = 24;
+ optional PmDexopt pm_dexopt = 20;
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;
@@ -252,8 +239,6 @@ message SystemPropertiesProto {
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;
@@ -280,8 +265,6 @@ message SystemPropertiesProto {
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;
@@ -294,8 +277,6 @@ message SystemPropertiesProto {
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;
@@ -309,15 +290,13 @@ message SystemPropertiesProto {
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;
+ optional string base_os = 1;
+ optional string codename = 2;
+ optional string incremental = 3;
+ optional int32 preview_sdk = 4;
+ optional string release = 5;
+ optional int32 sdk = 6;
+ optional string security_patch = 7;
// Next Tag: 8
}
@@ -334,8 +313,6 @@ message SystemPropertiesProto {
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;
@@ -357,8 +334,6 @@ message SystemPropertiesProto {
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;
@@ -410,26 +385,28 @@ message SystemPropertiesProto {
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;
+ repeated string cpu_abilist = 4;
+ repeated string cpu_abilist32 = 5;
+ repeated 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
+ message Vendor {
+ optional string brand = 1;
+ optional string device = 2;
+ optional string manufacturer = 3;
+ optional string model = 4;
+ optional string name = 5;
+ }
+ optional Vendor vendor = 12;
+
+ // Next Tag: 13
}
optional Product product = 32;
@@ -452,22 +429,18 @@ message SystemPropertiesProto {
// Next Tag: 49
}
- optional Ro ro = 25;
+ optional Ro ro = 21;
- optional string sendbug_preferred_domain = 26;
- optional int32 service_bootanim_exit = 27;
+ optional string sendbug_preferred_domain = 22;
+ optional int32 service_bootanim_exit = 23;
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;
@@ -484,16 +457,16 @@ message SystemPropertiesProto {
// Next Tag: 6
}
- optional Sys sys = 28;
+ optional Sys sys = 24;
- 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;
+ optional int32 telephony_lteOnCdmaDevice = 25;
+ optional int32 tombstoned_max_tombstone_count = 26;
+ optional string vold_decrypt = 27;
+ optional int32 vold_post_fs_data_done = 28;
+ optional int32 vts_native_server_on = 29;
+ optional string wifi_direct_interface = 30;
+ optional string wifi_interface = 31;
- // Next Tag: 36
+ // Next Tag: 32
}
diff --git a/tools/streaming_proto/cpp/main.cpp b/tools/streaming_proto/cpp/main.cpp
index 477902065f99..745b3dc51181 100644
--- a/tools/streaming_proto/cpp/main.cpp
+++ b/tools/streaming_proto/cpp/main.cpp
@@ -85,11 +85,17 @@ should_generate_fields_mapping(const DescriptorProto& message)
return message.options().GetExtension(stream_msg).enable_fields_mapping();
}
+static inline bool
+should_generate_fields_mapping_recursively(const DescriptorProto& message) {
+ return message.options().GetExtension(stream_msg).enable_fields_mapping_recursively();
+}
+
static void
-write_message(stringstream& text, const DescriptorProto& message, const string& indent)
+write_message(stringstream& text, const DescriptorProto& message, const string& indent, bool genMapping)
{
int N;
const string indented = indent + INDENT;
+ genMapping |= should_generate_fields_mapping_recursively(message);
text << indent << "// message " << message.name() << endl;
text << indent << "namespace " << message.name() << " {" << endl;
@@ -103,7 +109,7 @@ write_message(stringstream& text, const DescriptorProto& message, const string&
// Nested classes
N = message.nested_type_size();
for (int i=0; i<N; i++) {
- write_message(text, message.nested_type(i), indented);
+ write_message(text, message.nested_type(i), indented, genMapping);
}
// Fields
@@ -112,7 +118,7 @@ write_message(stringstream& text, const DescriptorProto& message, const string&
write_field(text, message.field(i), indented);
}
- if (should_generate_fields_mapping(message)) {
+ if (genMapping | should_generate_fields_mapping(message)) {
N = message.field_size();
text << indented << "const int _FIELD_COUNT = " << N << ";" << endl;
text << indented << "const char* _FIELD_NAMES[" << N << "] = {" << endl;
@@ -161,7 +167,7 @@ write_header_file(CodeGeneratorResponse* response, const FileDescriptorProto& fi
N = file_descriptor.message_type_size();
for (size_t i=0; i<N; i++) {
- write_message(text, file_descriptor.message_type(i), "");
+ write_message(text, file_descriptor.message_type(i), "", false);
}
for (vector<string>::iterator it = namespaces.begin(); it != namespaces.end(); it++) {
diff --git a/tools/streaming_proto/stream.proto b/tools/streaming_proto/stream.proto
index c08120986cc7..e9b24a8a5824 100644
--- a/tools/streaming_proto/stream.proto
+++ b/tools/streaming_proto/stream.proto
@@ -24,6 +24,9 @@ package android.stream_proto;
message MessageOptions {
// creates a mapping of field names of the message to its field ids
optional bool enable_fields_mapping = 1;
+
+ // creates mapping between field names to its field ids and recursively for its submessages.
+ optional bool enable_fields_mapping_recursively = 2;
}
extend google.protobuf.MessageOptions {