diff --git a/init/apex_init_util.cpp b/init/apex_init_util.cpp
index de9f547..d618a6e 100644
--- a/init/apex_init_util.cpp
+++ b/init/apex_init_util.cpp
@@ -81,16 +81,13 @@
 }
 
 Result<void> ParseApexConfigs(const std::string& apex_name) {
-    Result<std::vector<std::string>> configs = CollectApexConfigs(apex_name);
-    if (!configs.ok()) {
-        return configs.error();
-    }
+    auto configs = OR_RETURN(CollectApexConfigs(apex_name));
 
-    if (configs.value().empty()) {
+    if (configs.empty()) {
         return {};
     }
 
-    auto filtered_configs = FilterVersionedConfigs(configs.value(),
+    auto filtered_configs = FilterVersionedConfigs(configs,
                                     android::base::GetIntProperty("ro.build.version.sdk", INT_MAX));
     return ParseConfigs(filtered_configs);
 }
diff --git a/init/init.cpp b/init/init.cpp
index 9411b47..ce668d7 100644
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -490,7 +490,6 @@
         return Error() << "Unable to stop all service from " << apex_name;
     }
     RemoveServiceAndActionFromApex(apex_name);
-    SetProperty("init.apex." + apex_name, "unloaded");
     return {};
 }
 
@@ -522,7 +521,6 @@
         return result.error();
     }
 
-    SetProperty("init.apex." + apex_name, "loaded");
     return {};
 }
 
diff --git a/init/init_test.cpp b/init/init_test.cpp
index 529bbdf..05cf3fd 100644
--- a/init/init_test.cpp
+++ b/init/init_test.cpp
@@ -535,20 +535,6 @@
     EXPECT_EQ(2, num_executed);
 }
 
-TEST(init, RespondToCtlApexMessages) {
-    if (getuid() != 0) {
-        GTEST_SKIP() << "Skipping test, must be run as root.";
-        return;
-    }
-
-    std::string apex_name = "com.android.apex.cts.shim";
-    SetProperty("ctl.apex_unload", apex_name);
-    EXPECT_TRUE(WaitForProperty("init.apex." + apex_name, "unloaded", 10s));
-
-    SetProperty("ctl.apex_load", apex_name);
-    EXPECT_TRUE(WaitForProperty("init.apex." + apex_name, "loaded", 10s));
-}
-
 TEST(init, RejectsCriticalAndOneshotService) {
     if (GetIntProperty("ro.product.first_api_level", 10000) < 30) {
         GTEST_SKIP() << "Test only valid for devices launching with R or later";
