FUSE-BPF: use both ro and persist properties
persist.sys.fuse.bpf.enable and ro.fuse.bpf.enabled are both used to
decide if FUSE-BPF must be enabled or not.
- ro.fuse.bpf.enabled is a read-only property that is set in the device
makefile and would allow dogfooding devices to turn the feature
on/off.
- persist.sys.fuse.bpf.enable is a system property that overrides
ro.fuse.bpf.enabled and can only be set manually during the
development to simplify the testing of FUSE-BPF, mostly to compare if
those tests that are failing with FUSE-BPF were failing also without
the feature.
Bug: 202785178
Test: adb logcat | grep "FuseDaemon" | grep BPF
Ignore-AOSP-First: FUSE-BPF is not available in AOSP
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I23f9d27172907f6c72c73bea22e4a7e0ac643888
diff --git a/Utils.cpp b/Utils.cpp
index ba6afd8..e8049ed 100644
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -1765,5 +1765,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