summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-04-28 11:00:44 -0700
committerDianne Hackborn <hackbod@google.com>2010-04-28 11:00:44 -0700
commit92cfa105f97b538eaca5f19bfbfd2c5ab9a5f89b (patch)
tree99120d3ff5e7175d2cc8ad812bf8b06d470bb798 /services
parent2e4b98dcd88f14fdb35e46236ec916493c570f28 (diff)
downloadframeworks_base-92cfa105f97b538eaca5f19bfbfd2c5ab9a5f89b.zip
frameworks_base-92cfa105f97b538eaca5f19bfbfd2c5ab9a5f89b.tar.gz
frameworks_base-92cfa105f97b538eaca5f19bfbfd2c5ab9a5f89b.tar.bz2
Fix issue #2569139: Sapphire user cannot login to last.fm...
...after upgrade from Donut to FRF01B For realz this time. Change-Id: I92bd12451b19a6006cf487a9dfa0b7c696a21122
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/PackageManagerService.java19
1 files changed, 10 insertions, 9 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index e9e83d9..24d645d 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -989,7 +989,7 @@ class PackageManagerService extends IPackageManager.Stub {
+ "; regranting permissions for internal storage");
mSettings.mInternalSdkPlatform = mSdkVersion;
- updatePermissionsLP(null, null, true, regrantPermissions);
+ updatePermissionsLP(null, null, true, regrantPermissions, regrantPermissions);
mSettings.writeLP();
@@ -3982,7 +3982,8 @@ class PackageManagerService extends IPackageManager.Stub {
}
private void updatePermissionsLP(String changingPkg,
- PackageParser.Package pkgInfo, boolean grantPermissions, boolean replace) {
+ PackageParser.Package pkgInfo, boolean grantPermissions,
+ boolean replace, boolean replaceAll) {
// Make sure there are no dangling permission trees.
Iterator<BasePermission> it = mSettings.mPermissionTrees
.values().iterator();
@@ -4052,7 +4053,7 @@ class PackageManagerService extends IPackageManager.Stub {
if (grantPermissions) {
for (PackageParser.Package pkg : mPackages.values()) {
if (pkg != pkgInfo) {
- grantPermissionsLP(pkg, false);
+ grantPermissionsLP(pkg, replaceAll);
}
}
}
@@ -4668,7 +4669,7 @@ class PackageManagerService extends IPackageManager.Stub {
if (p != null) {
synchronized (mPackages) {
updatePermissionsLP(p.packageName, p,
- p.permissions.size() > 0, false);
+ p.permissions.size() > 0, false, false);
}
addedPackage = p.applicationInfo.packageName;
addedUid = p.applicationInfo.uid;
@@ -5705,7 +5706,7 @@ class PackageManagerService extends IPackageManager.Stub {
// Restore of old package succeeded. Update permissions.
synchronized (mPackages) {
updatePermissionsLP(deletedPackage.packageName, deletedPackage,
- true, false);
+ true, false, false);
mSettings.writeLP();
}
Slog.i(TAG, "Successfully restored package : " + pkgName + " after failed upgrade");
@@ -5822,7 +5823,7 @@ class PackageManagerService extends IPackageManager.Stub {
}
synchronized (mPackages) {
updatePermissionsLP(newPackage.packageName, newPackage,
- newPackage.permissions.size() > 0, true);
+ newPackage.permissions.size() > 0, true, false);
res.name = pkgName;
res.uid = newPackage.applicationInfo.uid;
res.pkg = newPackage;
@@ -6217,7 +6218,7 @@ class PackageManagerService extends IPackageManager.Stub {
outInfo.removedUid = mSettings.removePackageLP(packageName);
}
if (deletedPs != null) {
- updatePermissionsLP(deletedPs.name, null, false, false);
+ updatePermissionsLP(deletedPs.name, null, false, false, false);
if (deletedPs.sharedUser != null) {
// remove permissions associated with package
mSettings.updateSharedUserPermsLP(deletedPs, mGlobalGids);
@@ -6299,7 +6300,7 @@ class PackageManagerService extends IPackageManager.Stub {
return false;
}
synchronized (mPackages) {
- updatePermissionsLP(newPkg.packageName, newPkg, true, true);
+ updatePermissionsLP(newPkg.packageName, newPkg, true, true, false);
mSettings.writeLP();
}
return true;
@@ -9686,7 +9687,7 @@ class PackageManagerService extends IPackageManager.Stub {
// Make sure group IDs have been assigned, and any permission
// changes in other apps are accounted for
- updatePermissionsLP(null, null, true, regrantPermissions);
+ updatePermissionsLP(null, null, true, regrantPermissions, regrantPermissions);
// Persist settings
mSettings.writeLP();
}