Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3a6bfb4 authored by Atneya Nair's avatar Atneya Nair
Browse files

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
parent 3f243296
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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(())