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 {
