Merge "Put package verifier on the power whitelist when invoked"
This commit is contained in:
committed by
Android (Google) Code Review
commit
d133b00efb
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user