aconfig: add fixed read only flag
Add a new field in the declaration to indicate whether
the permission can be overridden.
When the field “is_fixed_read_only” is set to true,
the flag permission will be set as fixed “READ_ONLY”,
and the permission should not be changed by Gantry.
Bug: 292521627
Test: atest aconfig.test
Change-Id: Ic9bcd7823bccb8b947cf05568c7ced3763490a23
diff --git a/tools/aconfig/src/codegen_cpp.rs b/tools/aconfig/src/codegen_cpp.rs
index 30e564a..8c2d7ba 100644
--- a/tools/aconfig/src/codegen_cpp.rs
+++ b/tools/aconfig/src/codegen_cpp.rs
@@ -131,6 +131,8 @@
virtual bool disabled_rw() = 0;
+ virtual bool enabled_fixed_ro() = 0;
+
virtual bool enabled_ro() = 0;
virtual bool enabled_rw() = 0;
@@ -146,6 +148,10 @@
return provider_->disabled_rw();
}
+inline bool enabled_fixed_ro() {
+ return true;
+}
+
inline bool enabled_ro() {
return true;
}
@@ -163,6 +169,8 @@
bool com_android_aconfig_test_disabled_rw();
+bool com_android_aconfig_test_enabled_fixed_ro();
+
bool com_android_aconfig_test_enabled_ro();
bool com_android_aconfig_test_enabled_rw();
@@ -194,6 +202,10 @@
virtual void disabled_rw(bool val) = 0;
+ virtual bool enabled_fixed_ro() = 0;
+
+ virtual void enabled_fixed_ro(bool val) = 0;
+
virtual bool enabled_ro() = 0;
virtual void enabled_ro(bool val) = 0;
@@ -223,6 +235,14 @@
provider_->disabled_rw(val);
}
+inline bool enabled_fixed_ro() {
+ return provider_->enabled_fixed_ro();
+}
+
+inline void enabled_fixed_ro(bool val) {
+ provider_->enabled_fixed_ro(val);
+}
+
inline bool enabled_ro() {
return provider_->enabled_ro();
}
@@ -256,6 +276,10 @@
void set_com_android_aconfig_test_disabled_rw(bool val);
+bool com_android_aconfig_test_enabled_fixed_ro();
+
+void set_com_android_aconfig_test_enabled_fixed_ro(bool val);
+
bool com_android_aconfig_test_enabled_ro();
void set_com_android_aconfig_test_enabled_ro(bool val);
@@ -294,6 +318,10 @@
"false") == "true";
}
+ virtual bool enabled_fixed_ro() override {
+ return true;
+ }
+
virtual bool enabled_ro() override {
return true;
}
@@ -319,6 +347,10 @@
return com::android::aconfig::test::disabled_rw();
}
+bool com_android_aconfig_test_enabled_fixed_ro() {
+ return true;
+}
+
bool com_android_aconfig_test_enabled_ro() {
return true;
}
@@ -373,6 +405,19 @@
overrides_["disabled_rw"] = val;
}
+ virtual bool enabled_fixed_ro() override {
+ auto it = overrides_.find("enabled_fixed_ro");
+ if (it != overrides_.end()) {
+ return it->second;
+ } else {
+ return true;
+ }
+ }
+
+ virtual void enabled_fixed_ro(bool val) override {
+ overrides_["enabled_fixed_ro"] = val;
+ }
+
virtual bool enabled_ro() override {
auto it = overrides_.find("enabled_ro");
if (it != overrides_.end()) {
@@ -402,7 +447,6 @@
overrides_["enabled_rw"] = val;
}
-
virtual void reset_flags() override {
overrides_.clear();
}
@@ -430,6 +474,16 @@
com::android::aconfig::test::disabled_rw(val);
}
+
+bool com_android_aconfig_test_enabled_fixed_ro() {
+ return com::android::aconfig::test::enabled_fixed_ro();
+}
+
+void set_com_android_aconfig_test_enabled_fixed_ro(bool val) {
+ com::android::aconfig::test::enabled_fixed_ro(val);
+}
+
+
bool com_android_aconfig_test_enabled_ro() {
return com::android::aconfig::test::enabled_ro();
}