Snap for 12637843 from 65562ad380f43689fa10108ed92f50977240f2c0 to 25Q1-release

Change-Id: I71208736f7ae8e3721f5f6ce686beaf036d3feb3
diff --git a/init/devices.cpp b/init/devices.cpp
index 4de1e20..2cdecec 100644
--- a/init/devices.cpp
+++ b/init/devices.cpp
@@ -307,7 +307,8 @@
     return false;
 }
 
-bool DeviceHandler::FindPlatformDevice(std::string path, std::string* platform_device_path) const {
+bool DeviceHandler::FindPlatformDevice(const std::string& path,
+                                       std::string* platform_device_path) const {
     const std::set<std::string> subsystem_paths = {
             sysfs_mount_point_ + "/bus/platform",
             sysfs_mount_point_ + "/bus/amba",
@@ -316,7 +317,7 @@
     return FindSubsystemDevice(path, platform_device_path, subsystem_paths);
 }
 
-bool DeviceHandler::FindMmcDevice(std::string path, std::string* mmc_device_path) const {
+bool DeviceHandler::FindMmcDevice(const std::string& path, std::string* mmc_device_path) const {
     const std::set<std::string> subsystem_paths = {
             sysfs_mount_point_ + "/bus/mmc",
     };
@@ -324,7 +325,7 @@
     return FindSubsystemDevice(path, mmc_device_path, subsystem_paths);
 }
 
-bool DeviceHandler::FindScsiDevice(std::string path, std::string* scsi_device_path) const {
+bool DeviceHandler::FindScsiDevice(const std::string& path, std::string* scsi_device_path) const {
     const std::set<std::string> subsystem_paths = {
             sysfs_mount_point_ + "/bus/scsi",
     };
diff --git a/init/devices.h b/init/devices.h
index 8b6cf6c..67a3d00 100644
--- a/init/devices.h
+++ b/init/devices.h
@@ -149,9 +149,9 @@
     BlockDeviceInfo GetBlockDeviceInfo(const std::string& uevent_path) const;
     bool FindSubsystemDevice(std::string path, std::string* device_path,
                              const std::set<std::string>& subsystem_paths) const;
-    bool FindPlatformDevice(std::string path, std::string* platform_device_path) const;
-    bool FindMmcDevice(std::string path, std::string* mmc_device_path) const;
-    bool FindScsiDevice(std::string path, std::string* scsi_device_path) const;
+    bool FindPlatformDevice(const std::string& path, std::string* platform_device_path) const;
+    bool FindMmcDevice(const std::string& path, std::string* mmc_device_path) const;
+    bool FindScsiDevice(const std::string& path, std::string* scsi_device_path) const;
     std::tuple<mode_t, uid_t, gid_t> GetDevicePermissions(
         const std::string& path, const std::vector<std::string>& links) const;
     void MakeDevice(const std::string& path, bool block, int major, int minor,
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 5bb64cc..617e60a 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -614,6 +614,9 @@
     mkdir /metadata/aconfig/boot 0775 root system
 
     mkdir /metadata/aconfig_test_missions 0775 root system
+
+    # See flag enable_system_aconfigd_rust, which toggles these processes.
+    exec_start system_aconfigd_platform_init
     exec_start aconfigd-platform-init
 
 on late-fs
@@ -1002,7 +1005,16 @@
     # Wait for apexd to finish activating APEXes before starting more processes.
     wait_for_prop apexd.status activated
     perform_apex_config
+
+    # See flag enable_system_aconfigd_rust, which toggles these processes.
     exec_start aconfigd-mainline-init
+    exec_start system_aconfigd_mainline_init
+
+    # system_aconfigd_socket_service is replacing aconfigd:
+    #   - A flag (enable_system_aconfigd_rust) toggles which socket executes.
+    #   - When enabled, aconfigd is a no-op, system_aconfigd_socket_service executes.
+    #   - Conversely, when disabled, aconfigd executes, and system_aconfigd_socket_service is a no-op.
+    start system_aconfigd_socket_service
     start aconfigd
 
     # Create directories for boot animation.