aconfig: Print flags with namespace, and sort them

For readability/convenience when looking at BRs/dev.

Test: adb shell printflags
Bug: 315402442
Change-Id: Ia8c447d99f6fe0a9ed6a33c4c68f2e97f5310dc0
This commit is contained in:
Atneya Nair
2023-12-14 00:07:37 +00:00
parent 3f2432967b
commit a3a6bfb4a0

View File

@@ -20,6 +20,7 @@ use aconfig_protos::aconfig::Flag_state as State;
use aconfig_protos::aconfig::Parsed_flags as ProtoParsedFlags;
use anyhow::{bail, Context, Result};
use regex::Regex;
use std::collections::BTreeMap;
use std::collections::HashMap;
use std::process::Command;
use std::{fs, str};
@@ -66,7 +67,7 @@ fn main() -> Result<()> {
let device_config_flags = parse_device_config(dc_stdout);
// read aconfig_flags.pb files
let mut flags: HashMap<String, Vec<String>> = HashMap::new();
let mut flags: BTreeMap<String, Vec<String>> = BTreeMap::new();
for partition in ["system", "system_ext", "product", "vendor"] {
let path = format!("/{}/etc/aconfig_flags.pb", partition);
let Ok(bytes) = fs::read(&path) else {
@@ -86,11 +87,10 @@ fn main() -> Result<()> {
// print flags
for (key, mut value) in flags {
let (_, package_and_name) = key.split_once('/').unwrap();
if let Some(dc_value) = device_config_flags.get(&key) {
value.push(dc_value.to_string());
}
println!("{}: {}", package_and_name, value.join(", "));
println!("{}: {}", key, value.join(", "));
}
Ok(())