am 725f731c: am bc5a0328: Merge "Fix issue #2569139: Sapphire user cannot login to last.fm..." into froyo

Merge commit '725f731cb9368f52a0c6664d2961ef4340c8f7a0' into kraken

* commit '725f731cb9368f52a0c6664d2961ef4340c8f7a0':
  Fix issue #2569139: Sapphire user cannot login to last.fm...
This commit is contained in:
Dianne Hackborn
2010-04-28 13:19:25 -07:00
committed by Android Git Automerger

View File

@@ -999,7 +999,7 @@ class PackageManagerService extends IPackageManager.Stub {
+ "; regranting permissions for internal storage"); + "; regranting permissions for internal storage");
mSettings.mInternalSdkPlatform = mSdkVersion; mSettings.mInternalSdkPlatform = mSdkVersion;
updatePermissionsLP(null, null, true, regrantPermissions); updatePermissionsLP(null, null, true, regrantPermissions, regrantPermissions);
mSettings.writeLP(); mSettings.writeLP();
@@ -4007,7 +4007,8 @@ class PackageManagerService extends IPackageManager.Stub {
} }
private void updatePermissionsLP(String changingPkg, 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. // Make sure there are no dangling permission trees.
Iterator<BasePermission> it = mSettings.mPermissionTrees Iterator<BasePermission> it = mSettings.mPermissionTrees
.values().iterator(); .values().iterator();
@@ -4077,7 +4078,7 @@ class PackageManagerService extends IPackageManager.Stub {
if (grantPermissions) { if (grantPermissions) {
for (PackageParser.Package pkg : mPackages.values()) { for (PackageParser.Package pkg : mPackages.values()) {
if (pkg != pkgInfo) { if (pkg != pkgInfo) {
grantPermissionsLP(pkg, false); grantPermissionsLP(pkg, replaceAll);
} }
} }
} }
@@ -4693,7 +4694,7 @@ class PackageManagerService extends IPackageManager.Stub {
if (p != null) { if (p != null) {
synchronized (mPackages) { synchronized (mPackages) {
updatePermissionsLP(p.packageName, p, updatePermissionsLP(p.packageName, p,
p.permissions.size() > 0, false); p.permissions.size() > 0, false, false);
} }
addedPackage = p.applicationInfo.packageName; addedPackage = p.applicationInfo.packageName;
addedUid = p.applicationInfo.uid; addedUid = p.applicationInfo.uid;
@@ -5730,7 +5731,7 @@ class PackageManagerService extends IPackageManager.Stub {
// Restore of old package succeeded. Update permissions. // Restore of old package succeeded. Update permissions.
synchronized (mPackages) { synchronized (mPackages) {
updatePermissionsLP(deletedPackage.packageName, deletedPackage, updatePermissionsLP(deletedPackage.packageName, deletedPackage,
true, false); true, false, false);
mSettings.writeLP(); mSettings.writeLP();
} }
Slog.i(TAG, "Successfully restored package : " + pkgName + " after failed upgrade"); Slog.i(TAG, "Successfully restored package : " + pkgName + " after failed upgrade");
@@ -5847,7 +5848,7 @@ class PackageManagerService extends IPackageManager.Stub {
} }
synchronized (mPackages) { synchronized (mPackages) {
updatePermissionsLP(newPackage.packageName, newPackage, updatePermissionsLP(newPackage.packageName, newPackage,
newPackage.permissions.size() > 0, true); newPackage.permissions.size() > 0, true, false);
res.name = pkgName; res.name = pkgName;
res.uid = newPackage.applicationInfo.uid; res.uid = newPackage.applicationInfo.uid;
res.pkg = newPackage; res.pkg = newPackage;
@@ -6243,7 +6244,7 @@ class PackageManagerService extends IPackageManager.Stub {
outInfo.removedUid = mSettings.removePackageLP(packageName); outInfo.removedUid = mSettings.removePackageLP(packageName);
} }
if (deletedPs != null) { if (deletedPs != null) {
updatePermissionsLP(deletedPs.name, null, false, false); updatePermissionsLP(deletedPs.name, null, false, false, false);
if (deletedPs.sharedUser != null) { if (deletedPs.sharedUser != null) {
// remove permissions associated with package // remove permissions associated with package
mSettings.updateSharedUserPermsLP(deletedPs, mGlobalGids); mSettings.updateSharedUserPermsLP(deletedPs, mGlobalGids);
@@ -6325,7 +6326,7 @@ class PackageManagerService extends IPackageManager.Stub {
return false; return false;
} }
synchronized (mPackages) { synchronized (mPackages) {
updatePermissionsLP(newPkg.packageName, newPkg, true, true); updatePermissionsLP(newPkg.packageName, newPkg, true, true, false);
mSettings.writeLP(); mSettings.writeLP();
} }
return true; return true;
@@ -9723,7 +9724,7 @@ class PackageManagerService extends IPackageManager.Stub {
// Make sure group IDs have been assigned, and any permission // Make sure group IDs have been assigned, and any permission
// changes in other apps are accounted for // changes in other apps are accounted for
updatePermissionsLP(null, null, true, regrantPermissions); updatePermissionsLP(null, null, true, regrantPermissions, regrantPermissions);
// Persist settings // Persist settings
mSettings.writeLP(); mSettings.writeLP();
} }