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

Commit 2e8c7670 authored by Andreas Gampe's avatar Andreas Gampe
Browse files

Frameworks: Annotate trivial @GuardedBy in services/core

Add @GuardedBy for simple functions that require locks and have a name in
one of the frameworks naming styles for locks ("^.*(Locked|LPw|LPr|L[a-zA-Z]|UL|AL|NL)$").

Changelist for package manager.

Derived by errorprone.

Bug: 73000847
Test: m
Change-Id: I1f1f024199db85d4023323169441c8514ea3cc3a
parent d6d42067
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -134,6 +134,7 @@ class InstantAppRegistry {
        mCookiePersistence = new CookiePersistence(BackgroundThread.getHandler().getLooper());
    }

    @GuardedBy("mService.mPackages")
    public byte[] getInstantAppCookieLPw(@NonNull String packageName,
            @UserIdInt int userId) {
        // Only installed packages can get their own cookie
@@ -157,6 +158,7 @@ class InstantAppRegistry {
        return null;
    }

    @GuardedBy("mService.mPackages")
    public boolean setInstantAppCookieLPw(@NonNull String packageName,
            @Nullable byte[] cookie, @UserIdInt int userId) {
        if (cookie != null && cookie.length > 0) {
@@ -249,6 +251,7 @@ class InstantAppRegistry {

    }

    @GuardedBy("mService.mPackages")
    public @Nullable List<InstantAppInfo> getInstantAppsLPr(@UserIdInt int userId) {
        List<InstantAppInfo> installedApps = getInstalledInstantApplicationsLPr(userId);
        List<InstantAppInfo> uninstalledApps = getUninstalledInstantApplicationsLPr(userId);
@@ -261,6 +264,7 @@ class InstantAppRegistry {
        return uninstalledApps;
    }

    @GuardedBy("mService.mPackages")
    public void onPackageInstalledLPw(@NonNull PackageParser.Package pkg, @NonNull int[] userIds) {
        PackageSetting ps = (PackageSetting) pkg.mExtras;
        if (ps == null) {
@@ -331,6 +335,7 @@ class InstantAppRegistry {
        }
    }

    @GuardedBy("mService.mPackages")
    public void onPackageUninstalledLPw(@NonNull PackageParser.Package pkg,
            @NonNull int[] userIds) {
        PackageSetting ps = (PackageSetting) pkg.mExtras;
@@ -356,6 +361,7 @@ class InstantAppRegistry {
        }
    }

    @GuardedBy("mService.mPackages")
    public void onUserRemovedLPw(int userId) {
        if (mUninstalledInstantApps != null) {
            mUninstalledInstantApps.remove(userId);
@@ -394,6 +400,7 @@ class InstantAppRegistry {
        return instantGrantList.get(instantAppId);
    }

    @GuardedBy("mService.mPackages")
    public void grantInstantAccessLPw(@UserIdInt int userId, @Nullable Intent intent,
            int targetAppId, int instantAppId) {
        if (mInstalledInstantAppUids == null) {
@@ -428,6 +435,7 @@ class InstantAppRegistry {
        instantGrantList.put(instantAppId, true /*granted*/);
    }

    @GuardedBy("mService.mPackages")
    public void addInstantAppLPw(@UserIdInt int userId, int instantAppId) {
        if (mInstalledInstantAppUids == null) {
            mInstalledInstantAppUids = new SparseArray<>();
@@ -440,6 +448,7 @@ class InstantAppRegistry {
        instantAppList.put(instantAppId, true /*installed*/);
    }

    @GuardedBy("mService.mPackages")
    private void removeInstantAppLPw(@UserIdInt int userId, int instantAppId) {
        // remove from the installed list
        if (mInstalledInstantAppUids == null) {
@@ -465,6 +474,7 @@ class InstantAppRegistry {
        }
    }

    @GuardedBy("mService.mPackages")
    private void removeAppLPw(@UserIdInt int userId, int targetAppId) {
        // remove from the installed list
        if (mInstantGrants == null) {
@@ -477,6 +487,7 @@ class InstantAppRegistry {
        targetAppList.delete(targetAppId);
    }

    @GuardedBy("mService.mPackages")
    private void addUninstalledInstantAppLPw(@NonNull PackageParser.Package pkg,
            @UserIdInt int userId) {
        InstantAppInfo uninstalledApp = createInstantAppInfoForPackage(
@@ -531,11 +542,13 @@ class InstantAppRegistry {
        }
    }

    @GuardedBy("mService.mPackages")
    boolean hasInstantApplicationMetadataLPr(String packageName, int userId) {
        return hasUninstalledInstantAppStateLPr(packageName, userId)
                || hasInstantAppMetadataLPr(packageName, userId);
    }

    @GuardedBy("mService.mPackages")
    public void deleteInstantApplicationMetadataLPw(@NonNull String packageName,
            @UserIdInt int userId) {
        removeUninstalledInstantAppStateLPw((UninstalledInstantAppState state) ->
@@ -552,6 +565,7 @@ class InstantAppRegistry {
        }
    }

    @GuardedBy("mService.mPackages")
    private void removeUninstalledInstantAppStateLPw(
            @NonNull Predicate<UninstalledInstantAppState> criteria, @UserIdInt int userId) {
        if (mUninstalledInstantApps == null) {
@@ -579,6 +593,7 @@ class InstantAppRegistry {
        }
    }

    @GuardedBy("mService.mPackages")
    private boolean hasUninstalledInstantAppStateLPr(String packageName, @UserIdInt int userId) {
        if (mUninstalledInstantApps == null) {
            return false;
@@ -797,6 +812,7 @@ class InstantAppRegistry {
        return false;
    }

    @GuardedBy("mService.mPackages")
    private @Nullable List<InstantAppInfo> getInstalledInstantApplicationsLPr(
            @UserIdInt int userId) {
        List<InstantAppInfo> result = null;
@@ -851,6 +867,7 @@ class InstantAppRegistry {
        }
    }

    @GuardedBy("mService.mPackages")
    private @Nullable List<InstantAppInfo> getUninstalledInstantApplicationsLPr(
            @UserIdInt int userId) {
        List<UninstalledInstantAppState> uninstalledAppStates =
@@ -923,6 +940,7 @@ class InstantAppRegistry {
        return uninstalledAppState.mInstantAppInfo;
    }

    @GuardedBy("mService.mPackages")
    private @Nullable List<UninstalledInstantAppState> getUninstalledInstantAppStatesLPr(
            @UserIdInt int userId) {
        List<UninstalledInstantAppState> uninstalledAppStates = null;
+50 −3
Original line number Diff line number Diff line
@@ -3440,6 +3440,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return dstCodePath;
    }
    @GuardedBy("mPackages")
    private void updateInstantAppInstallerLocked(String modifiedPackage) {
        // we're only interested in updating the installer appliction when 1) it's not
        // already set or 2) the modified package is the installer
@@ -3694,6 +3695,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return null;
    }
    @GuardedBy("mPackages")
    private @Nullable ActivityInfo getInstantAppInstallerLPr() {
        String[] orderedActions = Build.IS_ENG
                ? new String[]{
@@ -3760,6 +3762,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return matches.get(0).getComponentInfo().getComponentName();
    }
    @GuardedBy("mPackages")
    private void primeDomainVerificationsLPw(int userId) {
        if (DEBUG_DOMAIN_VERIFICATION) {
            Slog.d(TAG, "Priming domain verifications in user " + userId);
@@ -3813,6 +3816,7 @@ public class PackageManagerService extends IPackageManager.Stub
        scheduleWriteSettingsLocked();
    }
    @GuardedBy("mPackages")
    private void applyFactoryDefaultBrowserLPw(int userId) {
        // The default browser app's package name is stored in a string resource,
        // with a product-specific overlay used for vendor customization.
@@ -3836,6 +3840,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void calculateDefaultBrowserLPw(int userId) {
        List<String> allBrowsers = resolveAllBrowserApps(userId);
        final String browserPkg = (allBrowsers.size() == 1) ? allBrowsers.get(0) : null;
@@ -4196,6 +4201,7 @@ public class PackageManagerService extends IPackageManager.Stub
     *
     * @see #canViewInstantApps(int, int)
     */
    @GuardedBy("mPackages")
    private boolean filterAppAccessLPr(@Nullable PackageSetting ps, int callingUid,
            @Nullable ComponentName component, @ComponentType int componentType, int userId) {
        // if we're in an isolated process, get the real calling UID
@@ -4253,10 +4259,12 @@ public class PackageManagerService extends IPackageManager.Stub
    /**
     * @see #filterAppAccessLPr(PackageSetting, int, ComponentName, int, int)
     */
    @GuardedBy("mPackages")
    private boolean filterAppAccessLPr(@Nullable PackageSetting ps, int callingUid, int userId) {
        return filterAppAccessLPr(ps, callingUid, null, TYPE_UNKNOWN, userId);
    }
    @GuardedBy("mPackages")
    private boolean filterSharedLibPackageLPr(@Nullable PackageSetting ps, int uid, int userId,
            int flags) {
        // Callers can access only the libs they depend on, otherwise they need to explicitly
@@ -4455,6 +4463,7 @@ public class PackageManagerService extends IPackageManager.Stub
                ? ParceledListSlice.emptyList() : new ParceledListSlice<>(permissionList);
    }
    @GuardedBy("mPackages")
    private ApplicationInfo generateApplicationInfoFromSettingsLPw(String packageName, int flags,
            int filterCallingUid, int userId) {
        if (!sUserManager.exists(userId)) return null;
@@ -4540,6 +4549,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return null;
    }
    @GuardedBy("mPackages")
    private String normalizePackageNameLPr(String packageName) {
        String normalizedPackageName = mSettings.getRenamedPackageLPr(packageName);
        return normalizedPackageName != null ? normalizedPackageName : packageName;
@@ -5078,6 +5088,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private List<VersionedPackage> getPackagesUsingSharedLibraryLPr(
            SharedLibraryInfo libInfo, int flags, int userId) {
        List<VersionedPackage> versionedPackages = null;
@@ -5233,6 +5244,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void updateSequenceNumberLP(PackageSetting pkgSetting, int[] userList) {
        for (int i = userList.length - 1; i >= 0; --i) {
            final int userId = userList[i];
@@ -6266,6 +6278,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return true;
    }
    @GuardedBy("mPackages")
    private ResolveInfo findPersistentPreferredActivityLP(Intent intent, String resolvedType,
            int flags, List<ResolveInfo> query, boolean debug, int userId) {
        final int N = query.size();
@@ -8594,6 +8607,7 @@ public class PackageManagerService extends IPackageManager.Stub
     *  Traces a package scan.
     *  @see #scanPackageLI(File, int, int, long, UserHandle)
     */
    @GuardedBy("mInstallLock")
    private PackageParser.Package scanPackageTracedLI(File scanFile, final int parseFlags,
            int scanFlags, long currentTime, UserHandle user) throws PackageManagerException {
        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "scanPackage [" + scanFile.toString() + "]");
@@ -8608,6 +8622,7 @@ public class PackageManagerService extends IPackageManager.Stub
     *  Scans a package and returns the newly parsed package.
     *  Returns {@code null} in case of errors and the error code is stored in mLastScanError
     */
    @GuardedBy({"mInstallLock", "mPackages"})
    private PackageParser.Package scanPackageLI(File scanFile, int parseFlags, int scanFlags,
            long currentTime, UserHandle user) throws PackageManagerException {
        if (DEBUG_INSTALL) Slog.d(TAG, "Parsing: " + scanFile);
@@ -8639,6 +8654,7 @@ public class PackageManagerService extends IPackageManager.Stub
     *  Scans a package and returns the newly parsed package.
     *  @throws PackageManagerException on a parse error.
     */
    @GuardedBy({"mInstallLock", "mPackages"})
    private PackageParser.Package scanPackageChildLI(PackageParser.Package pkg,
            final @ParseFlags int parseFlags, @ScanFlags int scanFlags, long currentTime,
            @Nullable UserHandle user)
@@ -8731,6 +8747,7 @@ public class PackageManagerService extends IPackageManager.Stub
     * structures and the package is made available to the rest of the system.
     * <p>NOTE: The return value should be removed. It's the passed in package object.
     */
    @GuardedBy({"mInstallLock", "mPackages"})
    private PackageParser.Package addForInitLI(PackageParser.Package pkg,
            @ParseFlags int parseFlags, @ScanFlags int scanFlags, long currentTime,
            @Nullable UserHandle user)
@@ -9616,6 +9633,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private boolean verifyPackageUpdateLPr(PackageSetting oldPkg, PackageParser.Package newPkg) {
        if ((oldPkg.pkgFlags&ApplicationInfo.FLAG_SYSTEM) == 0) {
            Slog.w(TAG, "Unable to update from " + oldPkg.name
@@ -9631,6 +9649,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return true;
    }
    @GuardedBy("mInstallLock")
    void removeCodePathLI(File codePath) {
        if (codePath.isDirectory()) {
            try {
@@ -9758,6 +9777,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void addSharedLibraryLPr(Set<String> usesLibraryFiles,
            SharedLibraryEntry file,
            PackageParser.Package changingLib) {
@@ -9783,6 +9803,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void updateSharedLibrariesLPr(PackageParser.Package pkg,
            PackageParser.Package changingLib) throws PackageManagerException {
        if (pkg == null) {
@@ -9815,6 +9836,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private Set<String> addSharedLibrariesLPw(@NonNull List<String> requestedLibraries,
            @Nullable long[] requiredVersions, @Nullable String[][] requiredCertDigests,
            @NonNull String packageName, @Nullable PackageParser.Package changingLib,
@@ -9926,6 +9948,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return false;
    }
    @GuardedBy("mPackages")
    private ArrayList<PackageParser.Package> updateAllSharedLibrariesLPw(
            PackageParser.Package changingPkg) {
        ArrayList<PackageParser.Package> res = null;
@@ -9961,6 +9984,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return res;
    }
    @GuardedBy({"mInstallLock", "mPackages"})
    private PackageParser.Package scanPackageTracedLI(PackageParser.Package pkg,
            final @ParseFlags int parseFlags, @ScanFlags int scanFlags, long currentTime,
            @Nullable UserHandle user) throws PackageManagerException {
@@ -10156,7 +10180,7 @@ public class PackageManagerService extends IPackageManager.Stub
    // the results / removing app data needs to be moved up a level to the callers of this
    // method. Also, we need to solve the problem of potentially creating a new shared user
    // setting. That can probably be done later and patch things up after the fact.
    @GuardedBy("mInstallLock")
    @GuardedBy({"mInstallLock", "mPackages"})
    private PackageParser.Package scanPackageNewLI(@NonNull PackageParser.Package pkg,
            final @ParseFlags int parseFlags, @ScanFlags int scanFlags, long currentTime,
            @Nullable UserHandle user) throws PackageManagerException {
@@ -10224,7 +10248,7 @@ public class PackageManagerService extends IPackageManager.Stub
     * This needs to be fixed so, once we get to this point, no errors are
     * possible and the system is not left in an inconsistent state.
     */
    @GuardedBy("mPackages")
    @GuardedBy({"mPackages", "mInstallLock"})
    private void commitScanResultsLocked(@NonNull ScanRequest request, @NonNull ScanResult result)
            throws PackageManagerException {
        final PackageParser.Package pkg = request.pkg;
@@ -16904,6 +16928,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void enableSystemPackageLPw(PackageParser.Package pkg) {
        // Enable the parent package
        mSettings.enableSystemPackageLPw(pkg.packageName);
@@ -16915,6 +16940,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private boolean disableSystemPackageLPw(PackageParser.Package oldPkg,
            PackageParser.Package newPkg) {
        // Disable the parent package (parent always replaced)
@@ -16929,6 +16955,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return disabled;
    }
    @GuardedBy("mPackages")
    private void setInstallerPackageNameLPw(PackageParser.Package pkg,
            String installerPackageName) {
        // Enable the parent package
@@ -17057,6 +17084,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy({"mInstallLock", "mPackages"})
    private void installPackageTracedLI(InstallArgs args, PackageInstalledInfo res) {
        try {
            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "installPackage");
@@ -17103,7 +17131,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return true;
    }
    @GuardedBy("mInstallLock")
    @GuardedBy({"mInstallLock", "mPackages", "PackageManagerService.mPackages"})
    private void installPackagesLI(List<InstallRequest> requests) {
        Map<String, ScanResult> scans = new ArrayMap<>(requests.size());
        for (InstallRequest request : requests) {
@@ -17829,6 +17857,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private boolean needsNetworkVerificationLPr(ActivityIntentInfo filter) {
        final ComponentName cn  = filter.activity.getComponentName();
        final String packageName = cn.getPackageName();
@@ -18063,6 +18092,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return pkg.packageName;
    }
    @GuardedBy("mPackages")
    private String resolveInternalPackageNameLPr(String packageName, long versionCode) {
        // Handle renamed packages
        String normalizedPackageName = mSettings.getRenamedPackageLPr(packageName);
@@ -19129,6 +19159,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return ret;
    }
    @GuardedBy("mPackages")
    private void markPackageUninstalledForUserLPw(PackageSetting ps, UserHandle user) {
        final int[] userIds = (user == null || user.getIdentifier() == UserHandle.USER_ALL)
                ? sUserManager.getUserIds() : new int[] {user.getIdentifier()};
@@ -19403,6 +19434,7 @@ public class PackageManagerService extends IPackageManager.Stub
     *
     * @param userId The device user for which to do a reset.
     */
    @GuardedBy("mPackages")
    private void resetUserChangesToRuntimePermissionsAndFlagsLPw(int userId) {
        final int packageCount = mPackages.size();
        for (int i = 0; i < packageCount; i++) {
@@ -19422,6 +19454,7 @@ public class PackageManagerService extends IPackageManager.Stub
     * @param ps The package for which to reset.
     * @param userId The device user for which to do a reset.
     */
    @GuardedBy("mPackages")
    private void resetUserChangesToRuntimePermissionsAndFlagsLPw(
            final PackageSetting ps, final int userId) {
        if (ps.pkg == null) {
@@ -19630,6 +19663,7 @@ public class PackageManagerService extends IPackageManager.Stub
                "Shame on you for calling the hidden API getPackageSizeInfo(). Shame!");
    }
    @GuardedBy("mInstallLock")
    private boolean getPackageSizeInfoLI(String packageName, int userId, PackageStats stats) {
        final PackageSetting ps;
        synchronized (mPackages) {
@@ -19664,6 +19698,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return true;
    }
    @GuardedBy("mPackages")
    private int getUidTargetSdkVersionLockedLPr(int uid) {
        Object obj = mSettings.getUserIdLPr(uid);
        if (obj instanceof SharedUserSetting) {
@@ -19687,6 +19722,7 @@ public class PackageManagerService extends IPackageManager.Stub
        return Build.VERSION_CODES.CUR_DEVELOPMENT;
    }
    @GuardedBy("mPackages")
    private int getPackageTargetSdkVersionLockedLPr(String packageName) {
        final PackageParser.Package p = mPackages.get(packageName);
        if (p != null) {
@@ -19882,6 +19918,7 @@ public class PackageManagerService extends IPackageManager.Stub
    }
    /** This method takes a specific user id as well as UserHandle.USER_ALL. */
    @GuardedBy("mPackages")
    boolean clearPackagePreferredActivitiesLPw(String packageName, int userId) {
        ArrayList<PreferredActivity> removed = null;
        boolean changed = false;
@@ -19920,6 +19957,7 @@ public class PackageManagerService extends IPackageManager.Stub
    }
    /** This method takes a specific user id as well as UserHandle.USER_ALL. */
    @GuardedBy("mPackages")
    private void clearIntentFilterVerificationsLPw(int userId) {
        final int packageCount = mPackages.size();
        for (int i = 0; i < packageCount; i++) {
@@ -19929,6 +19967,7 @@ public class PackageManagerService extends IPackageManager.Stub
    }
    /** This method takes a specific user id as well as UserHandle.USER_ALL. */
    @GuardedBy("mPackages")
    void clearIntentFilterVerificationsLPw(String packageName, int userId) {
        if (userId == UserHandle.USER_ALL) {
            if (mSettings.removeIntentFilterVerificationLPw(packageName,
@@ -20339,6 +20378,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void serializeRuntimePermissionGrantsLPr(XmlSerializer serializer, final int userId)
            throws IOException {
        serializer.startTag(null, TAG_ALL_GRANTS);
@@ -20398,6 +20438,7 @@ public class PackageManagerService extends IPackageManager.Stub
        serializer.endTag(null, TAG_ALL_GRANTS);
    }
    @GuardedBy("mPackages")
    private void processRestoredPermissionGrantsLPr(XmlPullParser parser, int userId)
            throws XmlPullParserException, IOException {
        String pkgName = null;
@@ -22067,6 +22108,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void dumpDexoptStateLPr(PrintWriter pw, String packageName) {
        final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, "  ");
        ipw.println();
@@ -22094,6 +22136,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void dumpCompilerStatsLPr(PrintWriter pw, String packageName) {
        final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, "  ");
        ipw.println();
@@ -22471,6 +22514,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mInstallLock")
    private void reconcileAppsDataLI(String volumeUuid, int userId, int flags,
            boolean migrateAppData) {
        reconcileAppsDataLI(volumeUuid, userId, flags, migrateAppData, false /* onlyCoreApps */);
@@ -22486,6 +22530,7 @@ public class PackageManagerService extends IPackageManager.Stub
     * correct for all installed apps.
     * @return list of skipped non-core packages (if {@code onlyCoreApps} is true)
     */
    @GuardedBy("mInstallLock")
    private List<String> reconcileAppsDataLI(String volumeUuid, int userId, int flags,
            boolean migrateAppData, boolean onlyCoreApps) {
        Slog.v(TAG, "reconcileAppsData for " + volumeUuid + " u" + userId + " 0x"
@@ -23233,6 +23278,7 @@ public class PackageManagerService extends IPackageManager.Stub
     * that are no longer in use by any other user.
     * @param userHandle the user being removed
     */
    @GuardedBy("mPackages")
    private void removeUnusedPackagesLPw(UserManagerService userManager, final int userHandle) {
        final boolean DEBUG_CLEAN_APKS = false;
        int [] users = userManager.getUserIds();
@@ -23511,6 +23557,7 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @GuardedBy("mPackages")
    private void deletePackageIfUnusedLPr(final String packageName) {
        PackageSetting ps = mSettings.mPackages.get(packageName);
        if (ps == null) {
+6 −0
Original line number Diff line number Diff line
@@ -5172,10 +5172,12 @@ public final class Settings {
            mPersistenceLock = persistenceLock;
        }

        @GuardedBy("Settings.this.mLock")
        public boolean areDefaultRuntimPermissionsGrantedLPr(int userId) {
            return mDefaultPermissionsGranted.get(userId);
        }

        @GuardedBy("Settings.this.mLock")
        public void onDefaultRuntimePermissionsGrantedLPr(int userId) {
            mFingerprints.put(userId, Build.FINGERPRINT);
            writePermissionsForUserAsyncLPr(userId);
@@ -5186,6 +5188,7 @@ public final class Settings {
            writePermissionsSync(userId);
        }

        @GuardedBy("Settings.this.mLock")
        public void writePermissionsForUserAsyncLPr(int userId) {
            final long currentTimeMillis = SystemClock.uptimeMillis();

@@ -5354,6 +5357,7 @@ public final class Settings {
            }
        }

        @GuardedBy("Settings.this.mLock")
        private void onUserRemovedLPw(int userId) {
            // Make sure we do not
            mHandler.removeMessages(userId);
@@ -5387,6 +5391,7 @@ public final class Settings {
            getUserRuntimePermissionsFile(userId).delete();
        }

        @GuardedBy("Settings.this.mLock")
        public void readStateForUserSyncLPr(int userId) {
            File permissionsFile = getUserRuntimePermissionsFile(userId);
            if (!permissionsFile.exists()) {
@@ -5439,6 +5444,7 @@ public final class Settings {

        // Private internals

        @GuardedBy("Settings.this.mLock")
        private void parseRuntimePermissionsLPr(XmlPullParser parser, int userId)
                throws IOException, XmlPullParserException {
            final int outerDepth = parser.getDepth();
+12 −0
Original line number Diff line number Diff line
@@ -684,6 +684,7 @@ public class UserManagerService extends IUserManager.Stub {
    }

    /** Assume permissions already checked and caller's identity cleared */
    @GuardedBy("mUsersLock")
    private List<UserInfo> getProfilesLU(int userId, boolean enabledOnly, boolean fullInfo) {
        IntArray profileIds = getProfileIdsLU(userId, enabledOnly);
        ArrayList<UserInfo> users = new ArrayList<>(profileIds.size());
@@ -706,6 +707,7 @@ public class UserManagerService extends IUserManager.Stub {
    /**
     *  Assume permissions already checked and caller's identity cleared
     */
    @GuardedBy("mUsersLock")
    private IntArray getProfileIdsLU(int userId, boolean enabledOnly) {
        UserInfo user = getUserInfoLU(userId);
        IntArray result = new IntArray(mUsers.size());
@@ -784,6 +786,7 @@ public class UserManagerService extends IUserManager.Stub {
        return mLocalService.getProfileParentId(userHandle);
    }

    @GuardedBy("mUsersLock")
    private UserInfo getProfileParentLU(int userHandle) {
        UserInfo profile = getUserInfoLU(userHandle);
        if (profile == null) {
@@ -1206,6 +1209,7 @@ public class UserManagerService extends IUserManager.Stub {
    /*
     * Should be locked on mUsers before calling this.
     */
    @GuardedBy("mUsersLock")
    private UserInfo getUserInfoLU(int userId) {
        final UserData userData = mUsers.get(userId);
        // If it is partial and not in the process of being removed, return as unknown user.
@@ -1216,6 +1220,7 @@ public class UserManagerService extends IUserManager.Stub {
        return userData != null ? userData.info : null;
    }

    @GuardedBy("mUsersLock")
    private UserData getUserDataLU(int userId) {
        final UserData userData = mUsers.get(userId);
        // If it is partial and not in the process of being removed, return as unknown user.
@@ -1718,6 +1723,7 @@ public class UserManagerService extends IUserManager.Stub {
    }

    // Package private for the inner class.
    @GuardedBy("mRestrictionsLock")
    void applyUserRestrictionsLR(int userId) {
        updateUserRestrictionsInternalLR(null, userId);
    }
@@ -1798,6 +1804,7 @@ public class UserManagerService extends IUserManager.Stub {
        }
    }

    @GuardedBy("mUsersLock")
    private int getAliveUsersExcludingGuestsCountLU() {
        int aliveUserCount = 0;
        final int totalUserCount = mUsers.size();
@@ -1971,6 +1978,7 @@ public class UserManagerService extends IUserManager.Stub {
        }
    }

    @GuardedBy({"mRestrictionsLock", "mPackagesLock"})
    private void readUserListLP() {
        if (!mUserListFile.exists()) {
            fallbackToSingleUserLP();
@@ -2068,6 +2076,7 @@ public class UserManagerService extends IUserManager.Stub {
     * Upgrade steps between versions, either for fixing bugs or changing the data format.
     * @param oldGlobalUserRestrictions Pre-O global device policy restrictions.
     */
    @GuardedBy({"mRestrictionsLock", "mPackagesLock"})
    private void upgradeIfNecessaryLP(Bundle oldGlobalUserRestrictions) {
        final int originalVersion = mUserVersion;
        int userVersion = mUserVersion;
@@ -2148,6 +2157,7 @@ public class UserManagerService extends IUserManager.Stub {
        }
    }

    @GuardedBy({"mPackagesLock", "mRestrictionsLock"})
    private void fallbackToSingleUserLP() {
        int flags = UserInfo.FLAG_INITIALIZED;
        // In split system user mode, the admin and primary flags are assigned to the first human
@@ -2317,6 +2327,7 @@ public class UserManagerService extends IUserManager.Stub {
     *   <user id="2"></user>
     * </users>
     */
    @GuardedBy({"mRestrictionsLock", "mPackagesLock"})
    private void writeUserListLP() {
        if (DBG) {
            debug("writeUserList");
@@ -4060,6 +4071,7 @@ public class UserManagerService extends IUserManager.Stub {
        }
    }

    @GuardedBy("mUsersLock")
    @VisibleForTesting
    int getFreeProfileBadgeLU(int parentUserId) {
        int maxManagedProfiles = getMaxManagedProfiles();