diff --git a/FsCrypt.cpp b/FsCrypt.cpp
index 6471231..8f6ba9c 100644
--- a/FsCrypt.cpp
+++ b/FsCrypt.cpp
@@ -74,7 +74,6 @@
 using android::vold::KeyGeneration;
 using android::vold::retrieveKey;
 using android::vold::retrieveOrGenerateKey;
-using android::vold::SetDefaultAcl;
 using android::vold::SetQuotaInherit;
 using android::vold::SetQuotaProjectId;
 using android::vold::writeStringToFile;
@@ -869,14 +868,6 @@
             if (!prepare_dir(vendor_ce_path, 0771, AID_ROOT, AID_ROOT)) return false;
         }
         if (!prepare_dir(media_ce_path, 0770, AID_MEDIA_RW, AID_MEDIA_RW)) return false;
-        // On devices without sdcardfs (kernel 5.4+), the path permissions aren't fixed
-        // up automatically; therefore, use a default ACL, to ensure apps with MEDIA_RW
-        // can keep reading external storage; in particular, this allows app cloning
-        // scenarios to work correctly on such devices.
-        int ret = SetDefaultAcl(media_ce_path, 0770, AID_MEDIA_RW, AID_MEDIA_RW, {AID_MEDIA_RW});
-        if (ret != android::OK) {
-            return false;
-        }
 
         if (!prepare_dir(user_ce_path, 0771, AID_SYSTEM, AID_SYSTEM)) return false;
 
diff --git a/Utils.cpp b/Utils.cpp
index 98797b2..d5648f7 100644
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -136,8 +136,8 @@
 }
 
 // Sets a default ACL on the directory.
-status_t SetDefaultAcl(const std::string& path, mode_t mode, uid_t uid, gid_t gid,
-                       std::vector<gid_t> additionalGids) {
+int SetDefaultAcl(const std::string& path, mode_t mode, uid_t uid, gid_t gid,
+                  std::vector<gid_t> additionalGids) {
     if (IsSdcardfsUsed()) {
         // sdcardfs magically takes care of this
         return OK;
diff --git a/Utils.h b/Utils.h
index 8975adc..cf3fd9b 100644
--- a/Utils.h
+++ b/Utils.h
@@ -52,9 +52,6 @@
 status_t CreateDeviceNode(const std::string& path, dev_t dev);
 status_t DestroyDeviceNode(const std::string& path);
 
-status_t SetDefaultAcl(const std::string& path, mode_t mode, uid_t uid, gid_t gid,
-                       std::vector<gid_t> additionalGids);
-
 status_t AbortFuseConnections();
 
 int SetQuotaInherit(const std::string& path);
