Loading services/core/java/com/android/server/pm/PackageManagerService.java +16 −8 Original line number Diff line number Diff line Loading @@ -18017,22 +18017,30 @@ public class PackageManagerService extends IPackageManager.Stub // Static shared libs can be declared by any package, so let us not // allow removing a package if it provides a lib others depend on. pkg = mPackages.get(packageName); allUsers = sUserManager.getUserIds(); if (pkg != null && pkg.staticSharedLibName != null) { SharedLibraryEntry libEntry = getSharedLibraryEntryLPr(pkg.staticSharedLibName, pkg.staticSharedLibVersion); if (libEntry != null) { for (int currUserId : allUsers) { if (userId != UserHandle.USER_ALL && userId != currUserId) { continue; } List<VersionedPackage> libClientPackages = getPackagesUsingSharedLibraryLPr( libEntry.info, 0, userId); libEntry.info, 0, currUserId); if (!ArrayUtils.isEmpty(libClientPackages)) { Slog.w(TAG, "Not removing package " + pkg.manifestPackageName + " hosting lib " + libEntry.info.getName() + " version " + libEntry.info.getVersion() + " used by " + libClientPackages); + libEntry.info.getVersion() + " used by " + libClientPackages + " for user " + currUserId); return PackageManager.DELETE_FAILED_USED_SHARED_LIBRARY; } } } } allUsers = sUserManager.getUserIds(); info.origUsers = uninstalledPs.queryInstalledUsers(allUsers, true); } Loading
services/core/java/com/android/server/pm/PackageManagerService.java +16 −8 Original line number Diff line number Diff line Loading @@ -18017,22 +18017,30 @@ public class PackageManagerService extends IPackageManager.Stub // Static shared libs can be declared by any package, so let us not // allow removing a package if it provides a lib others depend on. pkg = mPackages.get(packageName); allUsers = sUserManager.getUserIds(); if (pkg != null && pkg.staticSharedLibName != null) { SharedLibraryEntry libEntry = getSharedLibraryEntryLPr(pkg.staticSharedLibName, pkg.staticSharedLibVersion); if (libEntry != null) { for (int currUserId : allUsers) { if (userId != UserHandle.USER_ALL && userId != currUserId) { continue; } List<VersionedPackage> libClientPackages = getPackagesUsingSharedLibraryLPr( libEntry.info, 0, userId); libEntry.info, 0, currUserId); if (!ArrayUtils.isEmpty(libClientPackages)) { Slog.w(TAG, "Not removing package " + pkg.manifestPackageName + " hosting lib " + libEntry.info.getName() + " version " + libEntry.info.getVersion() + " used by " + libClientPackages); + libEntry.info.getVersion() + " used by " + libClientPackages + " for user " + currUserId); return PackageManager.DELETE_FAILED_USED_SHARED_LIBRARY; } } } } allUsers = sUserManager.getUserIds(); info.origUsers = uninstalledPs.queryInstalledUsers(allUsers, true); }