Merge "Always invoke callback" into oc-mr1-dev

This commit is contained in:
TreeHugger Robot
2017-08-14 21:51:42 +00:00
committed by Android (Google) Code Review

View File

@@ -20228,10 +20228,8 @@ public class PackageManagerService extends IPackageManager.Stub
true /* requireFullPermission */, false /* checkShell */, "clear application data"); true /* requireFullPermission */, false /* checkShell */, "clear application data");
final PackageSetting ps = mSettings.getPackageLPr(packageName); final PackageSetting ps = mSettings.getPackageLPr(packageName);
if (ps != null && filterAppAccessLPr(ps, callingUid, userId)) { final boolean filterApp = (ps != null && filterAppAccessLPr(ps, callingUid, userId));
return; if (!filterApp && mProtectedPackages.isPackageDataProtected(userId, packageName)) {
}
if (mProtectedPackages.isPackageDataProtected(userId, packageName)) {
throw new SecurityException("Cannot clear data for a protected package: " throw new SecurityException("Cannot clear data for a protected package: "
+ packageName); + packageName);
} }
@@ -20240,6 +20238,7 @@ public class PackageManagerService extends IPackageManager.Stub
public void run() { public void run() {
mHandler.removeCallbacks(this); mHandler.removeCallbacks(this);
final boolean succeeded; final boolean succeeded;
if (!filterApp) {
try (PackageFreezer freezer = freezePackage(packageName, try (PackageFreezer freezer = freezePackage(packageName,
"clearApplicationUserData")) { "clearApplicationUserData")) {
synchronized (mInstallLock) { synchronized (mInstallLock) {
@@ -20259,6 +20258,9 @@ public class PackageManagerService extends IPackageManager.Stub
dsm.checkMemory(); dsm.checkMemory();
} }
} }
} else {
succeeded = false;
}
if (observer != null) { if (observer != null) {
try { try {
observer.onRemoveCompleted(packageName, succeeded); observer.onRemoveCompleted(packageName, succeeded);