@@ -5335,13 +5335,21 @@ public void installPackage(
53355335 final Uri packageURI , final IPackageInstallObserver observer , final int flags ,
53365336 final String installerPackageName ) {
53375337 installPackageWithVerification (packageURI , observer , flags , installerPackageName , null ,
5338- null , null );
5338+ null , null , null , null );
5339+ }
5340+
5341+ public void installPackageWithOrigin (
5342+ Uri packageURI , IPackageInstallObserver observer , int flags ,
5343+ String installerPackageName , Uri originatingURI , Uri referrer ) {
5344+ installPackageWithVerification (packageURI , observer , flags , installerPackageName , null ,
5345+ null , null , originatingURI , referrer );
53395346 }
53405347
53415348 @ Override
53425349 public void installPackageWithVerification (Uri packageURI , IPackageInstallObserver observer ,
53435350 int flags , String installerPackageName , Uri verificationURI ,
5344- ManifestDigest manifestDigest , ContainerEncryptionParams encryptionParams ) {
5351+ ManifestDigest manifestDigest , ContainerEncryptionParams encryptionParams ,
5352+ Uri originatingURI , Uri referrer ) {
53455353 mContext .enforceCallingOrSelfPermission (android .Manifest .permission .INSTALL_PACKAGES , null );
53465354
53475355 final int uid = Binder .getCallingUid ();
@@ -5359,7 +5367,7 @@ public void installPackageWithVerification(Uri packageURI, IPackageInstallObserv
53595367
53605368 final Message msg = mHandler .obtainMessage (INIT_COPY );
53615369 msg .obj = new InstallParams (packageURI , observer , filteredFlags , installerPackageName ,
5362- verificationURI , manifestDigest , encryptionParams );
5370+ verificationURI , manifestDigest , encryptionParams , originatingURI , referrer );
53635371 mHandler .sendMessage (msg );
53645372 }
53655373
@@ -5795,18 +5803,22 @@ class InstallParams extends HandlerParams {
57955803 private int mRet ;
57965804 private File mTempPackage ;
57975805 final ContainerEncryptionParams encryptionParams ;
5806+ final Uri originatingURI ;
5807+ final Uri referrer ;
57985808
57995809 InstallParams (Uri packageURI ,
58005810 IPackageInstallObserver observer , int flags ,
58015811 String installerPackageName , Uri verificationURI , ManifestDigest manifestDigest ,
5802- ContainerEncryptionParams encryptionParams ) {
5812+ ContainerEncryptionParams encryptionParams , Uri originatingURI , Uri referrer ) {
58035813 this .mPackageURI = packageURI ;
58045814 this .flags = flags ;
58055815 this .observer = observer ;
58065816 this .installerPackageName = installerPackageName ;
58075817 this .verificationURI = verificationURI ;
58085818 this .manifestDigest = manifestDigest ;
58095819 this .encryptionParams = encryptionParams ;
5820+ this .originatingURI = originatingURI ;
5821+ this .referrer = referrer ;
58105822 }
58115823
58125824 private int installLocationPolicy (PackageInfoLite pkgLite , int flags ) {
@@ -6002,6 +6014,14 @@ public void handleStartCopy() throws RemoteException {
60026014 verificationURI );
60036015 }
60046016
6017+ if (originatingURI != null ) {
6018+ verification .putExtra (Intent .EXTRA_ORIGINATING_URI , originatingURI );
6019+ }
6020+
6021+ if (referrer != null ) {
6022+ verification .putExtra (Intent .EXTRA_REFERRER , referrer );
6023+ }
6024+
60056025 final PackageVerificationState verificationState = new PackageVerificationState (
60066026 requiredUid , args );
60076027
0 commit comments