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

Commit 0bf48315 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fixed PackageManager.readLPw() call." into rvc-qpr-dev

parents 0766cdc0 51d9edc2
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -226,6 +226,14 @@ public abstract class UserManagerInternal {
     */
    public abstract @NonNull List<UserInfo> getUsers(boolean excludeDying);

    /**
     * Internal implementation of getUsers does not check permissions.
     * This improves performance for calls from inside system server which already have permissions
     * checked.
     */
    public abstract @NonNull List<UserInfo> getUsers(boolean excludePartial, boolean excludeDying,
            boolean excludePreCreated);

    /**
     * Checks if the {@code callingUserId} and {@code targetUserId} are same or in same group
     * and that the {@code callingUserId} is not a profile and {@code targetUserId} is enabled.
+4 −1
Original line number Diff line number Diff line
@@ -2991,7 +2991,10 @@ public class PackageManagerService extends IPackageManager.Stub
            t.traceEnd();
            t.traceBegin("read user settings");
            mFirstBoot = !mSettings.readLPw(mInjector.getUserManagerInternal().getUsers(false));
            mFirstBoot = !mSettings.readLPw(mInjector.getUserManagerInternal().getUsers(
                    /* excludePartial= */ true,
                    /* excludeDying= */ false,
                    /* excludePreCreated= */ false));
            t.traceEnd();
            // Clean up orphaned packages for which the code path doesn't exist
+6 −1
Original line number Diff line number Diff line
@@ -1613,6 +1613,7 @@ public final class Settings {
                    return;
                }
                str = new FileInputStream(userPackagesStateFile);
                if (DEBUG_MU) Log.i(TAG, "Reading " + userPackagesStateFile);
            }
            final XmlPullParser parser = Xml.newPullParser();
            parser.setInput(str, StandardCharsets.UTF_8.name());
@@ -2057,9 +2058,13 @@ public final class Settings {

            serializer.startTag(null, TAG_PACKAGE_RESTRICTIONS);

            if (DEBUG_MU) Log.i(TAG, "Writing " + userPackagesStateFile);
            for (final PackageSetting pkg : mPackages.values()) {
                final PackageUserState ustate = pkg.readUserState(userId);
                if (DEBUG_MU) Log.i(TAG, "  pkg=" + pkg.name + ", state=" + ustate.enabled);
                if (DEBUG_MU) {
                    Log.i(TAG, "  pkg=" + pkg.name + ", installed=" + ustate.installed
                            + ", state=" + ustate.enabled);
                }

                serializer.startTag(null, TAG_PACKAGE);
                serializer.attribute(null, ATTR_NAME, pkg.name);
+8 −2
Original line number Diff line number Diff line
@@ -5102,8 +5102,14 @@ public class UserManagerService extends IUserManager.Stub {

        @Override
        public @NonNull List<UserInfo> getUsers(boolean excludeDying) {
            return UserManagerService.this.getUsersInternal(/*excludePartial= */ true,
                    excludeDying, /* excludePreCreated= */ true);
            return getUsers(/*excludePartial= */ true, excludeDying, /* excludePreCreated= */ true);
        }

        @Override
        public @NonNull List<UserInfo> getUsers(boolean excludePartial, boolean excludeDying,
                boolean excludePreCreated) {
            return UserManagerService.this.getUsersInternal(excludePartial, excludeDying,
                    excludePreCreated);
        }

        @Override
+11 −12
Original line number Diff line number Diff line
@@ -2603,13 +2603,13 @@ public class PermissionManagerService extends IPermissionManager.Stub {
            final int N = pkg.getRequestedPermissions().size();
            for (int i = 0; i < N; i++) {
                final String permName = pkg.getRequestedPermissions().get(i);
                final String friendlyName = pkg.getPackageName() + "(" + pkg.getUid() + ")";
                final BasePermission bp = mSettings.getPermissionLocked(permName);
                final boolean appSupportsRuntimePermissions =
                        pkg.getTargetSdkVersion() >= Build.VERSION_CODES.M;
                String upgradedActivityRecognitionPermission = null;

                if (DEBUG_INSTALL && bp != null) {
                    Log.i(TAG, "Package " + pkg.getPackageName()
                    Log.i(TAG, "Package " + friendlyName
                            + " checking " + permName + ": " + bp);
                }

@@ -2618,7 +2618,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                            pkg.getPackageName())) {
                        if (DEBUG_PERMISSIONS) {
                            Slog.i(TAG, "Unknown permission " + permName
                                    + " in package " + pkg.getPackageName());
                                    + " in package " + friendlyName);
                        }
                    }
                    continue;
@@ -2634,7 +2634,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                        newImplicitPermissions.add(permName);

                        if (DEBUG_PERMISSIONS) {
                            Slog.i(TAG, permName + " is newly added for " + pkg.getPackageName());
                            Slog.i(TAG, permName + " is newly added for " + friendlyName);
                        }
                    } else {
                        // Special case for Activity Recognition permission. Even if AR permission
@@ -2656,8 +2656,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                                newImplicitPermissions.add(permName);

                                if (DEBUG_PERMISSIONS) {
                                    Slog.i(TAG, permName + " is newly added for "
                                            + pkg.getPackageName());
                                    Slog.i(TAG, permName + " is newly added for " + friendlyName);
                                }
                                break;
                            }
@@ -2671,7 +2670,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
//                if (/*pkg.isInstantApp()*/ false && !bp.isInstant()) {
//                    if (DEBUG_PERMISSIONS) {
//                        Log.i(TAG, "Denying non-ephemeral permission " + bp.getName()
//                                + " for package " + pkg.getPackageName());
//                                + " for package " + friendlyName);
//                    }
//                    continue;
//                }
@@ -2679,7 +2678,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                if (bp.isRuntimeOnly() && !appSupportsRuntimePermissions) {
                    if (DEBUG_PERMISSIONS) {
                        Log.i(TAG, "Denying runtime-only permission " + bp.getName()
                                + " for package " + pkg.getPackageName());
                                + " for package " + friendlyName);
                    }
                    continue;
                }
@@ -2716,7 +2715,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {

                if (DEBUG_PERMISSIONS) {
                    Slog.i(TAG, "Considering granting permission " + perm + " to package "
                            + pkg.getPackageName());
                            + friendlyName);
                }

                if (grant != GRANT_DENIED) {
@@ -3005,7 +3004,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                                    || packageOfInterest.equals(pkg.getPackageName())) {
                                if (DEBUG_PERMISSIONS) {
                                    Slog.i(TAG, "Not granting permission " + perm
                                            + " to package " + pkg.getPackageName()
                                            + " to package " + friendlyName
                                            + " because it was previously installed without");
                                }
                            }
@@ -3020,7 +3019,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                        changedInstallPermission = true;
                        if (DEBUG_PERMISSIONS) {
                            Slog.i(TAG, "Un-granting permission " + perm
                                    + " from package " + pkg.getPackageName()
                                    + " from package " + friendlyName
                                    + " (protectionLevel=" + bp.getProtectionLevel()
                                    + " flags=0x"
                                    + Integer.toHexString(PackageInfoUtils.appInfoFlags(pkg, ps))
@@ -3033,7 +3032,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                                && (packageOfInterest == null
                                        || packageOfInterest.equals(pkg.getPackageName()))) {
                            Slog.i(TAG, "Not granting permission " + perm
                                    + " to package " + pkg.getPackageName()
                                    + " to package " + friendlyName
                                    + " (protectionLevel=" + bp.getProtectionLevel()
                                    + " flags=0x"
                                    + Integer.toHexString(PackageInfoUtils.appInfoFlags(pkg, ps))