aconfig: introduce namespace, rename proto messages
Flags belong to a namespace. Update the proto files to reflect this.
Config files can only refer to a single namespace. Override files can
refer to multiple namespaces; an override directive for a flag in a
different namespace than the one represented by the cache will be
silently ignored.
Rename the proto messages to make it more clear what they are. Propagate
this change through the wrappers in aconfig.rs and the rest of the code.
Also, settle on Tracepoint instead of TracePoint.
Bug: 279485059
Test: atest aconfig.test
Change-Id: I16e69dd14687bc498b2ba89d6a35879459903801
diff --git a/tools/aconfig/protos/aconfig.proto b/tools/aconfig/protos/aconfig.proto
index f3d6148..a3b1fec 100644
--- a/tools/aconfig/protos/aconfig.proto
+++ b/tools/aconfig/protos/aconfig.proto
@@ -20,56 +20,66 @@
package android.aconfig;
+// messages used in both aconfig input and output
+
enum flag_state {
ENABLED = 1;
DISABLED = 2;
}
-enum permission {
+enum flag_permission {
READ_ONLY = 1;
READ_WRITE = 2;
}
-message value {
+// aconfig input messages: configuration and override data
+
+message flag_value {
required flag_state state = 1;
- required permission permission = 2;
+ required flag_permission permission = 2;
optional uint32 since = 3;
}
-message flag {
- required string id = 1;
+message flag_definition {
+ required string name = 1;
required string description = 2;
- repeated value value = 3;
+ repeated flag_value value = 3;
};
-message android_config {
- repeated flag flag = 1;
+message namespace {
+ required string namespace = 1;
+ repeated flag_definition flag = 2;
};
-message override {
- required string id = 1;
- required flag_state state = 2;
- required permission permission = 3;
+message flag_override {
+ required string namespace = 1;
+ required string name = 2;
+ required flag_state state = 3;
+ required flag_permission permission = 4;
};
-message override_config {
- repeated override override = 1;
+message flag_overrides {
+ repeated flag_override flag_override = 1;
};
-message dump {
- repeated dump_item item = 1;
-}
+// aconfig output messages: parsed and verified configuration and override data
-message dump_trace {
+message tracepoint {
+ // path to config or override file releative to $TOP
required string source = 1;
required flag_state state = 2;
- required permission permission = 3;
+ required flag_permission permission = 3;
}
-message dump_item {
- required string id = 1;
- required string description = 2;
- required flag_state state = 3;
- required permission permission = 4;
- repeated dump_trace trace = 5;
+message parsed_flag {
+ required string namespace = 1;
+ required string name = 2;
+ required string description = 3;
+ required flag_state state = 4;
+ required flag_permission permission = 5;
+ repeated tracepoint trace = 6;
+}
+
+message parsed_flags {
+ repeated parsed_flag parsed_flag = 1;
}