OSDN Git Service

Only restorecon_data once for all users.
authorJeff Sharkey <jsharkey@android.com>
Mon, 20 Jul 2015 23:26:19 +0000 (16:26 -0700)
committerJeff Sharkey <jsharkey@android.com>
Mon, 20 Jul 2015 23:26:22 +0000 (16:26 -0700)
restorecon_data already iterates across all found users internally,
so we don't need to call it for each UID moved.  In fact, this was a
bug that caused data for the owner to be relabeled when moving apps
back to internal storage.

Bug: 21813384
Change-Id: I5ba76d4f30d129365864c8a25b665f344b99a6b4

cmds/installd/commands.cpp

index 880877c..7090b36 100644 (file)
@@ -257,11 +257,11 @@ int copy_complete_app(const char *from_uuid, const char *to_uuid,
                     << ": status " << rc;
             goto fail;
         }
+    }
 
-        if (restorecon_data(to_uuid, package_name, seinfo, uid) != 0) {
-            LOG(ERROR) << "Failed to restorecon " << to;
-            goto fail;
-        }
+    if (restorecon_data(to_uuid, package_name, seinfo, multiuser_get_uid(0, appid)) != 0) {
+        LOG(ERROR) << "Failed to restorecon";
+        goto fail;
     }
 
     // We let the framework scan the new location and persist that before