Merge "Switch to C23's memset_explicit()." am: dd7cfa9e15

Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2184090

Change-Id: I8efda0a63bae994f8e2949de49ff46fd5b15abb7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/IdleMaint.cpp b/IdleMaint.cpp
index d0a3a4c..0c6b115 100644
--- a/IdleMaint.cpp
+++ b/IdleMaint.cpp
@@ -390,28 +390,6 @@
 }
 
 static void runDevGc(void) {
-    auto aidl_service_name = AStorage::descriptor + "/default"s;
-    if (AServiceManager_isDeclared(aidl_service_name.c_str())) {
-        ndk::SpAIBinder binder(AServiceManager_waitForService(aidl_service_name.c_str()));
-        if (binder.get() != nullptr) {
-            std::shared_ptr<AStorage> aidl_service = AStorage::fromBinder(binder);
-            if (aidl_service != nullptr) {
-                runDevGcOnHal<IDL::AIDL>(aidl_service, ndk::SharedRefBase::make<AGcCallbackImpl>(),
-                                         &ndk::ScopedAStatus::getDescription);
-                return;
-            }
-        }
-        LOG(WARNING) << "Device declares " << aidl_service_name
-                     << " but it is not running, skip dev GC on AIDL HAL";
-        return;
-    }
-    auto hidl_service = HStorage::getService();
-    if (hidl_service != nullptr) {
-        runDevGcOnHal<IDL::HIDL>(hidl_service, sp<HGcCallbackImpl>(new HGcCallbackImpl()),
-                                 &Return<void>::description);
-        return;
-    }
-    // fallback to legacy code path
     runDevGcFstab();
 }
 
diff --git a/Utils.cpp b/Utils.cpp
index 709853c..9e77a9e 100644
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -1763,5 +1763,15 @@
     return {std::move(fd), std::move(linkPath)};
 }
 
+bool IsFuseBpfEnabled() {
+    std::string bpf_override = android::base::GetProperty("persist.sys.fuse.bpf.override", "");
+    if (bpf_override == "true") {
+        return true;
+    } else if (bpf_override == "false") {
+        return false;
+    }
+    return base::GetBoolProperty("ro.fuse.bpf.enabled", false);
+}
+
 }  // namespace vold
 }  // namespace android
diff --git a/Utils.h b/Utils.h
index 8f60ff6..fbd0f30 100644
--- a/Utils.h
+++ b/Utils.h
@@ -37,7 +37,6 @@
 
 static const char* kVoldAppDataIsolationEnabled = "persist.sys.vold_app_data_isolation_enabled";
 static const char* kExternalStorageSdcardfs = "external_storage.sdcardfs.enabled";
-static const char* kFuseBpfEnabled = "persist.sys.fuse.bpf.override";
 
 static constexpr std::chrono::seconds kUntrustedFsckSleepTime(45);
 
@@ -208,6 +207,8 @@
 
 status_t PrepareAndroidDirs(const std::string& volumeRoot);
 
+bool IsFuseBpfEnabled();
+
 // Open a given directory as an FD, and return that and the corresponding procfs virtual
 // symlink path that can be used in any API that accepts a path string. Path stays valid until
 // the directory FD is closed.
diff --git a/model/EmulatedVolume.cpp b/model/EmulatedVolume.cpp
index 7c8a4e0..270d097 100644
--- a/model/EmulatedVolume.cpp
+++ b/model/EmulatedVolume.cpp
@@ -49,7 +49,7 @@
     mRawPath = rawPath;
     mLabel = "emulated";
     mFuseMounted = false;
-    mFuseBpfEnabled = base::GetBoolProperty(kFuseBpfEnabled, false);
+    mFuseBpfEnabled = IsFuseBpfEnabled();
     mUseSdcardFs = IsSdcardfsUsed();
     mAppDataIsolationEnabled = base::GetBoolProperty(kVoldAppDataIsolationEnabled, false);
 }
@@ -61,7 +61,7 @@
     mRawPath = rawPath;
     mLabel = fsUuid;
     mFuseMounted = false;
-    mFuseBpfEnabled = base::GetBoolProperty(kFuseBpfEnabled, false);
+    mFuseBpfEnabled = IsFuseBpfEnabled();
     mUseSdcardFs = IsSdcardfsUsed();
     mAppDataIsolationEnabled = base::GetBoolProperty(kVoldAppDataIsolationEnabled, false);
 }