flag guard transition to use mainline aconfigd am: f76d76e70d
Original change: https://android-review.googlesource.com/c/platform/system/server_configurable_flags/+/3388573
Change-Id: I7835d0260a3a99e284591caea698df2da50644c7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/aconfigd/Android.bp b/aconfigd/Android.bp
index 92efa61..61621d8 100644
--- a/aconfigd/Android.bp
+++ b/aconfigd/Android.bp
@@ -122,6 +122,11 @@
name: "libaconfig_new_storage_flags_rust",
crate_name: "aconfig_new_storage_flags",
aconfig_declarations: "aconfig_new_storage_flags",
+ apex_available: [
+ "//apex_available:anyapex",
+ "//apex_available:platform",
+ ],
+ min_sdk_version: "34",
}
java_aconfig_library {
diff --git a/aconfigd/new_aconfig_storage.aconfig b/aconfigd/new_aconfig_storage.aconfig
index 4a0a9fe..094bc94 100644
--- a/aconfigd/new_aconfig_storage.aconfig
+++ b/aconfigd/new_aconfig_storage.aconfig
@@ -29,4 +29,5 @@
namespace: "core_experiments_team_internal"
bug: "369808805"
description: "When enabled, launch aconfigd from config infra module."
+ is_fixed_read_only: true
}
diff --git a/aconfigd/src/aconfigd_commands.rs b/aconfigd/src/aconfigd_commands.rs
index a82a8a9..3455fc0 100644
--- a/aconfigd/src/aconfigd_commands.rs
+++ b/aconfigd/src/aconfigd_commands.rs
@@ -27,6 +27,7 @@
const ACONFIGD_SOCKET: &str = "aconfigd_system";
const ACONFIGD_ROOT_DIR: &str = "/metadata/aconfig";
const STORAGE_RECORDS: &str = "/metadata/aconfig/storage_records.pb";
+const PLATFORM_STORAGE_RECORDS: &str = "/metadata/aconfig/platform_storage_records.pb";
const ACONFIGD_SOCKET_BACKLOG: i32 = 8;
/// start aconfigd socket service
@@ -41,8 +42,14 @@
let listener = UnixListener::from(fd);
+ let storage_records = if aconfig_new_storage_flags::enable_aconfigd_from_mainline() {
+ PLATFORM_STORAGE_RECORDS
+ } else {
+ STORAGE_RECORDS
+ };
+
if aconfig_new_storage_flags::enable_full_rust_system_aconfigd() {
- let mut aconfigd = Aconfigd::new(Path::new(ACONFIGD_ROOT_DIR), Path::new(STORAGE_RECORDS));
+ let mut aconfigd = Aconfigd::new(Path::new(ACONFIGD_ROOT_DIR), Path::new(storage_records));
aconfigd.initialize_from_storage_record()?;
debug!("start waiting for a new client connection through socket.");
@@ -59,7 +66,7 @@
}
}
} else {
- let aconfigd = CXXAconfigd::new(ACONFIGD_ROOT_DIR, STORAGE_RECORDS);
+ let aconfigd = CXXAconfigd::new(ACONFIGD_ROOT_DIR, storage_records);
aconfigd
.initialize_in_memory_storage_records()
.map_err(|e| anyhow!("failed to init memory storage records: {e}"))?;
@@ -116,13 +123,19 @@
/// initialize platform storage files
pub fn platform_init() -> Result<()> {
+ let storage_records = if aconfig_new_storage_flags::enable_aconfigd_from_mainline() {
+ PLATFORM_STORAGE_RECORDS
+ } else {
+ STORAGE_RECORDS
+ };
+
if aconfig_new_storage_flags::enable_full_rust_system_aconfigd() {
- let mut aconfigd = Aconfigd::new(Path::new(ACONFIGD_ROOT_DIR), Path::new(STORAGE_RECORDS));
+ let mut aconfigd = Aconfigd::new(Path::new(ACONFIGD_ROOT_DIR), Path::new(storage_records));
aconfigd.remove_boot_files()?;
aconfigd.initialize_from_storage_record()?;
Ok(aconfigd.initialize_platform_storage()?)
} else {
- CXXAconfigd::new(ACONFIGD_ROOT_DIR, STORAGE_RECORDS)
+ CXXAconfigd::new(ACONFIGD_ROOT_DIR, storage_records)
.initialize_platform_storage()
.map_err(|e| anyhow!("failed to init platform storage: {e}"))
}
diff --git a/aconfigd/src/main.rs b/aconfigd/src/main.rs
index 35f9936..7867f41 100644
--- a/aconfigd/src/main.rs
+++ b/aconfigd/src/main.rs
@@ -70,7 +70,13 @@
let command_return = match cli.command {
Command::StartSocket => aconfigd_commands::start_socket(),
Command::PlatformInit => aconfigd_commands::platform_init(),
- Command::MainlineInit => aconfigd_commands::mainline_init(),
+ Command::MainlineInit => {
+ if aconfig_new_storage_flags::enable_aconfigd_from_mainline() {
+ info!("aconfigd_mainline is enabled, skipping mainline init");
+ std::process::exit(1);
+ }
+ aconfigd_commands::mainline_init()
+ }
};
if let Err(errmsg) = command_return {