Merge "Put package verifier on the power whitelist when invoked"

This commit is contained in:
TreeHugger Robot
2017-02-17 22:43:57 +00:00
committed by Android (Google) Code Review

View File

@@ -258,6 +258,7 @@ import com.android.internal.util.Preconditions;
import com.android.internal.util.XmlUtils;
import com.android.server.AttributeCache;
import com.android.server.BackgroundDexOptJobService;
import com.android.server.DeviceIdleController;
import com.android.server.EventLogTags;
import com.android.server.FgThread;
import com.android.server.IntentResolver;
@@ -850,6 +851,8 @@ public class PackageManagerService extends IPackageManager.Stub {
private UserManagerInternal mUserManagerInternal;
private DeviceIdleController.LocalService mDeviceIdleController;
private File mCacheDir;
private ArraySet<String> mPrivappPermissionsViolations;
@@ -3855,6 +3858,14 @@ public class PackageManagerService extends IPackageManager.Stub {
return mUserManagerInternal;
}
private DeviceIdleController.LocalService getDeviceIdleController() {
if (mDeviceIdleController == null) {
mDeviceIdleController =
LocalServices.getService(DeviceIdleController.LocalService.class);
}
return mDeviceIdleController;
}
/**
* Update given flags when being used to request {@link PackageInfo}.
*/
@@ -14690,6 +14701,9 @@ public class PackageManagerService extends IPackageManager.Stub {
final List<ComponentName> sufficientVerifiers = matchVerifiers(pkgLite,
receivers, verificationState);
DeviceIdleController.LocalService idleController = getDeviceIdleController();
final long idleDuration = getVerificationTimeout();
/*
* If any sufficient verifiers were listed in the package
* manifest, attempt to ask them.
@@ -14702,6 +14716,9 @@ public class PackageManagerService extends IPackageManager.Stub {
} else {
for (int i = 0; i < N; i++) {
final ComponentName verifierComponent = sufficientVerifiers.get(i);
idleController.addPowerSaveTempWhitelistApp(Process.myUid(),
verifierComponent.getPackageName(), idleDuration,
verifierUser.getIdentifier(), false, "package verifier");
final Intent sufficientIntent = new Intent(verification);
sufficientIntent.setComponent(verifierComponent);
@@ -14722,6 +14739,9 @@ public class PackageManagerService extends IPackageManager.Stub {
* target BroadcastReceivers have run.
*/
verification.setComponent(requiredVerifierComponent);
idleController.addPowerSaveTempWhitelistApp(Process.myUid(),
requiredVerifierComponent.getPackageName(), idleDuration,
verifierUser.getIdentifier(), false, "package verifier");
mContext.sendOrderedBroadcastAsUser(verification, verifierUser,
android.Manifest.permission.PACKAGE_VERIFICATION_AGENT,
new BroadcastReceiver() {