OSDN Git Service

Revert "Revert "Revert "Set a default ACL on /data/media/userId."""
authorDhiraj Jadhav <dvj@google.com>
Thu, 18 Feb 2021 04:57:03 +0000 (04:57 +0000)
committerDhiraj Jadhav <dvj@google.com>
Thu, 18 Feb 2021 04:57:03 +0000 (04:57 +0000)
This reverts commit ea9681e4cdf30340b583dc27cb6c6474926ddaee.

Reason for revert: storage Permission causing b/179362637 adb push to fail

Change-Id: Ibc1d8b5b685c22545b7e2d15de58059960b87e14

FsCrypt.cpp
Utils.cpp
Utils.h

index be51963..8f6ba9c 100644 (file)
@@ -74,7 +74,6 @@ using android::vold::KeyBuffer;
 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;
@@ -868,15 +867,7 @@ bool fscrypt_prepare_user_storage(const std::string& volume_uuid, userid_t user_
             if (!prepare_dir(misc_ce_path, 01771, AID_SYSTEM, AID_MISC)) return false;
             if (!prepare_dir(vendor_ce_path, 0771, AID_ROOT, AID_ROOT)) return false;
         }
-        if (!prepare_dir(media_ce_path, 02770, 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, 02770, AID_MEDIA_RW, AID_MEDIA_RW, {AID_MEDIA_RW});
-        if (ret != android::OK) {
-            return false;
-        }
+        if (!prepare_dir(media_ce_path, 0770, AID_MEDIA_RW, AID_MEDIA_RW)) return false;
 
         if (!prepare_dir(user_ce_path, 0771, AID_SYSTEM, AID_SYSTEM)) return false;
 
index 98797b2..d5648f7 100644 (file)
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -136,8 +136,8 @@ status_t DestroyDeviceNode(const std::string& path) {
 }
 
 // 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 (file)
--- a/Utils.h
+++ b/Utils.h
@@ -52,9 +52,6 @@ std::string GetFuseMountPathForUser(userid_t user_id, const std::string& relativ
 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);