Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 11527526 authored by Robert Craig's avatar Robert Craig Committed by Ricardo Cerqueira
Browse files

Proper security labeling of multi-user data directories.



This patch covers 2 cases. When an app is installed
and the resulting data directory is created for all
existing users. And when a new user is created and
all existing app data directories are created for
the new user.

Change-Id: Iaba7c40645bc7b6cc823d613da0c3782acf6ddd5
Signed-off-by: default avatarrpcraig <rpcraig@tycho.ncsc.mil>
parent 43097cec
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -396,7 +396,7 @@ public final class Installer {
        return execute(builder.toString());
    }

    public int createUserData(String name, int uid, int userId) {
    public int createUserData(String name, int uid, int userId, String seinfo) {
        StringBuilder builder = new StringBuilder("mkuserdata");
        builder.append(' ');
        builder.append(name);
@@ -404,6 +404,8 @@ public final class Installer {
        builder.append(uid);
        builder.append(' ');
        builder.append(userId);
        builder.append(' ');
        builder.append(seinfo != null ? seinfo : "!");
        return execute(builder.toString());
    }

+1 −1
Original line number Diff line number Diff line
@@ -4159,7 +4159,7 @@ public class PackageManagerService extends IPackageManager.Stub {
        for (int user : users) {
            if (user != 0) {
                res = mInstaller.createUserData(packageName,
                        UserHandle.getUid(user, uid), user);
                        UserHandle.getUid(user, uid), user, seinfo);
                if (res < 0) {
                    return res;
                }
+2 −1
Original line number Diff line number Diff line
@@ -2685,7 +2685,8 @@ final class Settings {
            ps.setInstalled((ps.pkgFlags&ApplicationInfo.FLAG_SYSTEM) != 0, userHandle);
            // Need to create a data directory for all apps under this user.
            installer.createUserData(ps.name,
                    UserHandle.getUid(userHandle, ps.appId), userHandle);
                    UserHandle.getUid(userHandle, ps.appId), userHandle,
                    ps.pkg.applicationInfo.seinfo);
        }
        readDefaultPreferredAppsLPw(service, userHandle);
        writePackageRestrictionsLPr(userHandle);