Whitelist intent verifier from broadcast dispatch
In rare cases it was possible for the intent filter verifier to fall out of whitelist waiting on broadcast dispatch. We now use the broadcast mechanism's inherent whitelisting capabilities to start that interval at the actual broadcast dispatch time so that queue delays don't impact the verifier's ability to do work. Bug: 119414110 Test: manual Change-Id: If52b97ce6fb3bedb4c16afba254cab3ede153ecd
This commit is contained in:
committed by
Chris Tate
parent
4411d8d47b
commit
82d4acc6ba
@@ -123,6 +123,7 @@ import android.app.ActivityManager;
|
||||
import android.app.ActivityManagerInternal;
|
||||
import android.app.AppDetailsActivity;
|
||||
import android.app.AppOpsManager;
|
||||
import android.app.BroadcastOptions;
|
||||
import android.app.IActivityManager;
|
||||
import android.app.ResourcesManager;
|
||||
import android.app.admin.IDevicePolicyManager;
|
||||
@@ -1044,12 +1045,17 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
verificationIntent.setComponent(mIntentFilterVerifierComponent);
|
||||
verificationIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
|
||||
|
||||
final long whitelistTimeout = getVerificationTimeout();
|
||||
final BroadcastOptions options = BroadcastOptions.makeBasic();
|
||||
options.setTemporaryAppWhitelistDuration(whitelistTimeout);
|
||||
|
||||
DeviceIdleController.LocalService idleController = getDeviceIdleController();
|
||||
idleController.addPowerSaveTempWhitelistApp(Process.myUid(),
|
||||
mIntentFilterVerifierComponent.getPackageName(), getVerificationTimeout(),
|
||||
mIntentFilterVerifierComponent.getPackageName(), whitelistTimeout,
|
||||
UserHandle.USER_SYSTEM, true, "intent filter verifier");
|
||||
|
||||
mContext.sendBroadcastAsUser(verificationIntent, UserHandle.SYSTEM);
|
||||
mContext.sendBroadcastAsUser(verificationIntent, UserHandle.SYSTEM,
|
||||
null, options.toBundle());
|
||||
if (DEBUG_DOMAIN_VERIFICATION) Slog.d(TAG,
|
||||
"Sending IntentFilter verification broadcast");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user