am 7c258505: Merge "Fix for some downloaded apps showing up on all users" into jb-mr1-dev
* commit '7c258505ecfbf726c56814963bee798e74ff4cb4': Fix for some downloaded apps showing up on all users
This commit is contained in:
@@ -196,7 +196,7 @@ final class Settings {
|
|||||||
final String name = pkg.packageName;
|
final String name = pkg.packageName;
|
||||||
PackageSetting p = getPackageLPw(name, origPackage, realName, sharedUser, codePath,
|
PackageSetting p = getPackageLPw(name, origPackage, realName, sharedUser, codePath,
|
||||||
resourcePath, nativeLibraryPathString, pkg.mVersionCode, pkgFlags,
|
resourcePath, nativeLibraryPathString, pkg.mVersionCode, pkgFlags,
|
||||||
user, add);
|
user, add, true /* allowInstall */);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,7 +358,7 @@ final class Settings {
|
|||||||
private PackageSetting getPackageLPw(String name, PackageSetting origPackage,
|
private PackageSetting getPackageLPw(String name, PackageSetting origPackage,
|
||||||
String realName, SharedUserSetting sharedUser, File codePath, File resourcePath,
|
String realName, SharedUserSetting sharedUser, File codePath, File resourcePath,
|
||||||
String nativeLibraryPathString, int vc, int pkgFlags,
|
String nativeLibraryPathString, int vc, int pkgFlags,
|
||||||
UserHandle installUser, boolean add) {
|
UserHandle installUser, boolean add, boolean allowInstall) {
|
||||||
PackageSetting p = mPackages.get(name);
|
PackageSetting p = mPackages.get(name);
|
||||||
if (p != null) {
|
if (p != null) {
|
||||||
if (!p.codePath.equals(codePath)) {
|
if (!p.codePath.equals(codePath)) {
|
||||||
@@ -432,7 +432,7 @@ final class Settings {
|
|||||||
Slog.i(PackageManagerService.TAG, "Stopping package " + name, e);
|
Slog.i(PackageManagerService.TAG, "Stopping package " + name, e);
|
||||||
}
|
}
|
||||||
List<UserInfo> users = getAllUsers();
|
List<UserInfo> users = getAllUsers();
|
||||||
if (users != null) {
|
if (users != null && allowInstall) {
|
||||||
for (UserInfo user : users) {
|
for (UserInfo user : users) {
|
||||||
// By default we consider this app to be installed
|
// By default we consider this app to be installed
|
||||||
// for the user if no user has been specified (which
|
// for the user if no user has been specified (which
|
||||||
@@ -498,7 +498,7 @@ final class Settings {
|
|||||||
addPackageSettingLPw(p, name, sharedUser);
|
addPackageSettingLPw(p, name, sharedUser);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (installUser != null) {
|
if (installUser != null && allowInstall) {
|
||||||
// The caller has explicitly specified the user they want this
|
// The caller has explicitly specified the user they want this
|
||||||
// package installed for, and the package already exists.
|
// package installed for, and the package already exists.
|
||||||
// Make sure it conforms to the new request.
|
// Make sure it conforms to the new request.
|
||||||
@@ -1701,24 +1701,6 @@ final class Settings {
|
|||||||
Log.wtf(PackageManagerService.TAG, "Error reading package manager settings", e);
|
Log.wtf(PackageManagerService.TAG, "Error reading package manager settings", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mBackupStoppedPackagesFilename.exists()
|
|
||||||
|| mStoppedPackagesFilename.exists()) {
|
|
||||||
// Read old file
|
|
||||||
readStoppedLPw();
|
|
||||||
mBackupStoppedPackagesFilename.delete();
|
|
||||||
mStoppedPackagesFilename.delete();
|
|
||||||
// Migrate to new file format
|
|
||||||
writePackageRestrictionsLPr(0);
|
|
||||||
} else {
|
|
||||||
if (users == null) {
|
|
||||||
readPackageRestrictionsLPr(0);
|
|
||||||
} else {
|
|
||||||
for (UserInfo user : users) {
|
|
||||||
readPackageRestrictionsLPr(user.id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
final int N = mPendingPackages.size();
|
final int N = mPendingPackages.size();
|
||||||
for (int i = 0; i < N; i++) {
|
for (int i = 0; i < N; i++) {
|
||||||
final PendingPackage pp = mPendingPackages.get(i);
|
final PendingPackage pp = mPendingPackages.get(i);
|
||||||
@@ -1727,7 +1709,7 @@ final class Settings {
|
|||||||
PackageSetting p = getPackageLPw(pp.name, null, pp.realName,
|
PackageSetting p = getPackageLPw(pp.name, null, pp.realName,
|
||||||
(SharedUserSetting) idObj, pp.codePath, pp.resourcePath,
|
(SharedUserSetting) idObj, pp.codePath, pp.resourcePath,
|
||||||
pp.nativeLibraryPathString, pp.versionCode, pp.pkgFlags,
|
pp.nativeLibraryPathString, pp.versionCode, pp.pkgFlags,
|
||||||
UserHandle.ALL, true);
|
null, true /* add */, false /* allowInstall */);
|
||||||
if (p == null) {
|
if (p == null) {
|
||||||
PackageManagerService.reportSettingsProblem(Log.WARN,
|
PackageManagerService.reportSettingsProblem(Log.WARN,
|
||||||
"Unable to create application package for " + pp.name);
|
"Unable to create application package for " + pp.name);
|
||||||
@@ -1748,6 +1730,24 @@ final class Settings {
|
|||||||
}
|
}
|
||||||
mPendingPackages.clear();
|
mPendingPackages.clear();
|
||||||
|
|
||||||
|
if (mBackupStoppedPackagesFilename.exists()
|
||||||
|
|| mStoppedPackagesFilename.exists()) {
|
||||||
|
// Read old file
|
||||||
|
readStoppedLPw();
|
||||||
|
mBackupStoppedPackagesFilename.delete();
|
||||||
|
mStoppedPackagesFilename.delete();
|
||||||
|
// Migrate to new file format
|
||||||
|
writePackageRestrictionsLPr(0);
|
||||||
|
} else {
|
||||||
|
if (users == null) {
|
||||||
|
readPackageRestrictionsLPr(0);
|
||||||
|
} else {
|
||||||
|
for (UserInfo user : users) {
|
||||||
|
readPackageRestrictionsLPr(user.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make sure all the updated system packages have their shared users
|
* Make sure all the updated system packages have their shared users
|
||||||
* associated with them.
|
* associated with them.
|
||||||
|
|||||||
Reference in New Issue
Block a user