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
diff --git a/services/core/java/com/android/server/pm/InstantAppRegistry.java b/services/core/java/com/android/server/pm/InstantAppRegistry.java
index fde13ac..38b9024 100644
--- a/services/core/java/com/android/server/pm/InstantAppRegistry.java
+++ b/services/core/java/com/android/server/pm/InstantAppRegistry.java
@@ -134,6 +134,7 @@
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 @@
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 @@
}
+ @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 @@
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 @@
}
}
+ @GuardedBy("mService.mPackages")
public void onPackageUninstalledLPw(@NonNull PackageParser.Package pkg,
@NonNull int[] userIds) {
PackageSetting ps = (PackageSetting) pkg.mExtras;
@@ -356,6 +361,7 @@
}
}
+ @GuardedBy("mService.mPackages")
public void onUserRemovedLPw(int userId) {
if (mUninstalledInstantApps != null) {
mUninstalledInstantApps.remove(userId);
@@ -394,6 +400,7 @@
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 @@
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 @@
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 @@
}
}
+ @GuardedBy("mService.mPackages")
private void removeAppLPw(@UserIdInt int userId, int targetAppId) {
// remove from the installed list
if (mInstantGrants == null) {
@@ -477,6 +487,7 @@
targetAppList.delete(targetAppId);
}
+ @GuardedBy("mService.mPackages")
private void addUninstalledInstantAppLPw(@NonNull PackageParser.Package pkg,
@UserIdInt int userId) {
InstantAppInfo uninstalledApp = createInstantAppInfoForPackage(
@@ -531,11 +542,13 @@
}
}
+ @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 @@
}
}
+ @GuardedBy("mService.mPackages")
private void removeUninstalledInstantAppStateLPw(
@NonNull Predicate<UninstalledInstantAppState> criteria, @UserIdInt int userId) {
if (mUninstalledInstantApps == null) {
@@ -579,6 +593,7 @@
}
}
+ @GuardedBy("mService.mPackages")
private boolean hasUninstalledInstantAppStateLPr(String packageName, @UserIdInt int userId) {
if (mUninstalledInstantApps == null) {
return false;
@@ -797,6 +812,7 @@
return false;
}
+ @GuardedBy("mService.mPackages")
private @Nullable List<InstantAppInfo> getInstalledInstantApplicationsLPr(
@UserIdInt int userId) {
List<InstantAppInfo> result = null;
@@ -851,6 +867,7 @@
}
}
+ @GuardedBy("mService.mPackages")
private @Nullable List<InstantAppInfo> getUninstalledInstantApplicationsLPr(
@UserIdInt int userId) {
List<UninstalledInstantAppState> uninstalledAppStates =
@@ -923,6 +940,7 @@
return uninstalledAppState.mInstantAppInfo;
}
+ @GuardedBy("mService.mPackages")
private @Nullable List<UninstalledInstantAppState> getUninstalledInstantAppStatesLPr(
@UserIdInt int userId) {
List<UninstalledInstantAppState> uninstalledAppStates = null;
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 965f7bd..3919f50 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -3440,6 +3440,7 @@
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 @@
return null;
}
+ @GuardedBy("mPackages")
private @Nullable ActivityInfo getInstantAppInstallerLPr() {
String[] orderedActions = Build.IS_ENG
? new String[]{
@@ -3760,6 +3762,7 @@
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 @@
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 @@
}
}
+ @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 @@
*
* @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 @@
/**
* @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 @@
? 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 @@
return null;
}
+ @GuardedBy("mPackages")
private String normalizePackageNameLPr(String packageName) {
String normalizedPackageName = mSettings.getRenamedPackageLPr(packageName);
return normalizedPackageName != null ? normalizedPackageName : packageName;
@@ -5078,6 +5088,7 @@
}
}
+ @GuardedBy("mPackages")
private List<VersionedPackage> getPackagesUsingSharedLibraryLPr(
SharedLibraryInfo libInfo, int flags, int userId) {
List<VersionedPackage> versionedPackages = null;
@@ -5233,6 +5244,7 @@
}
}
+ @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 @@
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 @@
* 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 @@
* 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 @@
* 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 @@
* 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 @@
}
}
+ @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 @@
return true;
}
+ @GuardedBy("mInstallLock")
void removeCodePathLI(File codePath) {
if (codePath.isDirectory()) {
try {
@@ -9758,6 +9777,7 @@
}
}
+ @GuardedBy("mPackages")
private void addSharedLibraryLPr(Set<String> usesLibraryFiles,
SharedLibraryEntry file,
PackageParser.Package changingLib) {
@@ -9783,6 +9803,7 @@
}
}
+ @GuardedBy("mPackages")
private void updateSharedLibrariesLPr(PackageParser.Package pkg,
PackageParser.Package changingLib) throws PackageManagerException {
if (pkg == null) {
@@ -9815,6 +9836,7 @@
}
}
+ @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 @@
return false;
}
+ @GuardedBy("mPackages")
private ArrayList<PackageParser.Package> updateAllSharedLibrariesLPw(
PackageParser.Package changingPkg) {
ArrayList<PackageParser.Package> res = null;
@@ -9961,6 +9984,7 @@
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 @@
// 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 @@
* 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 @@
}
}
+ @GuardedBy("mPackages")
private void enableSystemPackageLPw(PackageParser.Package pkg) {
// Enable the parent package
mSettings.enableSystemPackageLPw(pkg.packageName);
@@ -16915,6 +16940,7 @@
}
}
+ @GuardedBy("mPackages")
private boolean disableSystemPackageLPw(PackageParser.Package oldPkg,
PackageParser.Package newPkg) {
// Disable the parent package (parent always replaced)
@@ -16929,6 +16955,7 @@
return disabled;
}
+ @GuardedBy("mPackages")
private void setInstallerPackageNameLPw(PackageParser.Package pkg,
String installerPackageName) {
// Enable the parent package
@@ -17057,6 +17084,7 @@
}
}
+ @GuardedBy({"mInstallLock", "mPackages"})
private void installPackageTracedLI(InstallArgs args, PackageInstalledInfo res) {
try {
Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "installPackage");
@@ -17103,7 +17131,7 @@
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 @@
}
}
+ @GuardedBy("mPackages")
private boolean needsNetworkVerificationLPr(ActivityIntentInfo filter) {
final ComponentName cn = filter.activity.getComponentName();
final String packageName = cn.getPackageName();
@@ -18063,6 +18092,7 @@
return pkg.packageName;
}
+ @GuardedBy("mPackages")
private String resolveInternalPackageNameLPr(String packageName, long versionCode) {
// Handle renamed packages
String normalizedPackageName = mSettings.getRenamedPackageLPr(packageName);
@@ -19129,6 +19159,7 @@
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 @@
*
* @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 @@
* @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 @@
"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 @@
return true;
}
+ @GuardedBy("mPackages")
private int getUidTargetSdkVersionLockedLPr(int uid) {
Object obj = mSettings.getUserIdLPr(uid);
if (obj instanceof SharedUserSetting) {
@@ -19687,6 +19722,7 @@
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 @@
}
/** 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 @@
}
/** 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 @@
}
/** 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 @@
}
}
+ @GuardedBy("mPackages")
private void serializeRuntimePermissionGrantsLPr(XmlSerializer serializer, final int userId)
throws IOException {
serializer.startTag(null, TAG_ALL_GRANTS);
@@ -20398,6 +20438,7 @@
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 @@
}
}
+ @GuardedBy("mPackages")
private void dumpDexoptStateLPr(PrintWriter pw, String packageName) {
final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
ipw.println();
@@ -22094,6 +22136,7 @@
}
}
+ @GuardedBy("mPackages")
private void dumpCompilerStatsLPr(PrintWriter pw, String packageName) {
final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
ipw.println();
@@ -22471,6 +22514,7 @@
}
}
+ @GuardedBy("mInstallLock")
private void reconcileAppsDataLI(String volumeUuid, int userId, int flags,
boolean migrateAppData) {
reconcileAppsDataLI(volumeUuid, userId, flags, migrateAppData, false /* onlyCoreApps */);
@@ -22486,6 +22530,7 @@
* 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 @@
* 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 @@
}
}
+ @GuardedBy("mPackages")
private void deletePackageIfUnusedLPr(final String packageName) {
PackageSetting ps = mSettings.mPackages.get(packageName);
if (ps == null) {
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index d17697b..e9cd707 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -5172,10 +5172,12 @@
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 @@
writePermissionsSync(userId);
}
+ @GuardedBy("Settings.this.mLock")
public void writePermissionsForUserAsyncLPr(int userId) {
final long currentTimeMillis = SystemClock.uptimeMillis();
@@ -5354,6 +5357,7 @@
}
}
+ @GuardedBy("Settings.this.mLock")
private void onUserRemovedLPw(int userId) {
// Make sure we do not
mHandler.removeMessages(userId);
@@ -5387,6 +5391,7 @@
getUserRuntimePermissionsFile(userId).delete();
}
+ @GuardedBy("Settings.this.mLock")
public void readStateForUserSyncLPr(int userId) {
File permissionsFile = getUserRuntimePermissionsFile(userId);
if (!permissionsFile.exists()) {
@@ -5439,6 +5444,7 @@
// Private internals
+ @GuardedBy("Settings.this.mLock")
private void parseRuntimePermissionsLPr(XmlPullParser parser, int userId)
throws IOException, XmlPullParserException {
final int outerDepth = parser.getDepth();
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 46935f0..c18ca25 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -684,6 +684,7 @@
}
/** 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 @@
/**
* 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 @@
return mLocalService.getProfileParentId(userHandle);
}
+ @GuardedBy("mUsersLock")
private UserInfo getProfileParentLU(int userHandle) {
UserInfo profile = getUserInfoLU(userHandle);
if (profile == null) {
@@ -1206,6 +1209,7 @@
/*
* 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 @@
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 @@
}
// Package private for the inner class.
+ @GuardedBy("mRestrictionsLock")
void applyUserRestrictionsLR(int userId) {
updateUserRestrictionsInternalLR(null, userId);
}
@@ -1798,6 +1804,7 @@
}
}
+ @GuardedBy("mUsersLock")
private int getAliveUsersExcludingGuestsCountLU() {
int aliveUserCount = 0;
final int totalUserCount = mUsers.size();
@@ -1971,6 +1978,7 @@
}
}
+ @GuardedBy({"mRestrictionsLock", "mPackagesLock"})
private void readUserListLP() {
if (!mUserListFile.exists()) {
fallbackToSingleUserLP();
@@ -2068,6 +2076,7 @@
* 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 @@
}
}
+ @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 @@
* <user id="2"></user>
* </users>
*/
+ @GuardedBy({"mRestrictionsLock", "mPackagesLock"})
private void writeUserListLP() {
if (DBG) {
debug("writeUserList");
@@ -4060,6 +4071,7 @@
}
}
+ @GuardedBy("mUsersLock")
@VisibleForTesting
int getFreeProfileBadgeLU(int parentUserId) {
int maxManagedProfiles = getMaxManagedProfiles();