@@ -851,15 +851,17 @@ void doHandleMessage(Message msg) {
851851 state .setVerifierResponse (Binder .getCallingUid (),
852852 PackageManager .VERIFICATION_ALLOW_WITHOUT_SUFFICIENT );
853853 broadcastPackageVerified (verificationId , args .packageURI ,
854- PackageManager .VERIFICATION_ALLOW );
854+ PackageManager .VERIFICATION_ALLOW ,
855+ state .getInstallArgs ().getUser ());
855856 try {
856857 ret = args .copyApk (mContainerService , true );
857858 } catch (RemoteException e ) {
858859 Slog .e (TAG , "Could not contact the ContainerService" );
859860 }
860861 } else {
861862 broadcastPackageVerified (verificationId , args .packageURI ,
862- PackageManager .VERIFICATION_REJECT );
863+ PackageManager .VERIFICATION_REJECT ,
864+ state .getInstallArgs ().getUser ());
863865 }
864866
865867 processPendingInstall (args , ret );
@@ -889,7 +891,7 @@ void doHandleMessage(Message msg) {
889891 if (state .isInstallAllowed ()) {
890892 ret = PackageManager .INSTALL_FAILED_INTERNAL_ERROR ;
891893 broadcastPackageVerified (verificationId , args .packageURI ,
892- response .code );
894+ response .code , state . getInstallArgs (). getUser () );
893895 try {
894896 ret = args .copyApk (mContainerService , true );
895897 } catch (RemoteException e ) {
@@ -5741,14 +5743,15 @@ public void extendVerificationTimeout(int id, int verificationCodeAtTimeout,
57415743 }
57425744
57435745 private void broadcastPackageVerified (int verificationId , Uri packageUri ,
5744- int verificationCode ) {
5746+ int verificationCode , UserHandle user ) {
57455747 final Intent intent = new Intent (Intent .ACTION_PACKAGE_VERIFIED );
57465748 intent .setDataAndType (packageUri , PACKAGE_MIME_TYPE );
57475749 intent .addFlags (Intent .FLAG_GRANT_READ_URI_PERMISSION );
57485750 intent .putExtra (PackageManager .EXTRA_VERIFICATION_ID , verificationId );
57495751 intent .putExtra (PackageManager .EXTRA_VERIFICATION_RESULT , verificationCode );
57505752
5751- mContext .sendBroadcast (intent , android .Manifest .permission .PACKAGE_VERIFICATION_AGENT );
5753+ mContext .sendBroadcastAsUser (intent , user ,
5754+ android .Manifest .permission .PACKAGE_VERIFICATION_AGENT );
57525755 }
57535756
57545757 private ComponentName matchComponentForVerifier (String packageName ,
@@ -6477,7 +6480,7 @@ public void handleStartCopy() throws RemoteException {
64776480 final Intent sufficientIntent = new Intent (verification );
64786481 sufficientIntent .setComponent (verifierComponent );
64796482
6480- mContext .sendBroadcast (sufficientIntent );
6483+ mContext .sendBroadcastAsUser (sufficientIntent , getUser () );
64816484 }
64826485 }
64836486 }
@@ -6492,7 +6495,7 @@ public void handleStartCopy() throws RemoteException {
64926495 * target BroadcastReceivers have run.
64936496 */
64946497 verification .setComponent (requiredVerifierComponent );
6495- mContext .sendOrderedBroadcast (verification ,
6498+ mContext .sendOrderedBroadcastAsUser (verification , getUser () ,
64966499 android .Manifest .permission .PACKAGE_VERIFICATION_AGENT ,
64976500 new BroadcastReceiver () {
64986501 @ Override
@@ -6779,6 +6782,10 @@ int doPostCopy(int uid) {
67796782 protected boolean isFwdLocked () {
67806783 return (flags & PackageManager .INSTALL_FORWARD_LOCK ) != 0 ;
67816784 }
6785+
6786+ UserHandle getUser () {
6787+ return user ;
6788+ }
67826789 }
67836790
67846791 class FileInstallArgs extends InstallArgs {
0 commit comments