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
This commit is contained in:
Zhi Dou
2023-08-21 22:49:46 +00:00
parent 07c4b5c0f2
commit 71f1b35fb4
10 changed files with 236 additions and 4 deletions

View File

@@ -131,6 +131,8 @@ public:
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 @@ inline bool disabled_rw() {
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_ro();
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 @@ public:
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 @@ inline void disabled_rw(bool val) {
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 @@ bool com_android_aconfig_test_disabled_rw();
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 @@ namespace com::android::aconfig::test {
"false") == "true";
}
virtual bool enabled_fixed_ro() override {
return true;
}
virtual bool enabled_ro() override {
return true;
}
@@ -319,6 +347,10 @@ bool com_android_aconfig_test_disabled_rw() {
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 @@ namespace com::android::aconfig::test {
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 @@ namespace com::android::aconfig::test {
overrides_["enabled_rw"] = val;
}
virtual void reset_flags() override {
overrides_.clear();
}
@@ -430,6 +474,16 @@ void set_com_android_aconfig_test_disabled_rw(bool val) {
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();
}