Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ec973a4 authored by Alan Stokes's avatar Alan Stokes
Browse files

Pass initiatingPackageName to verifier.

The initiating package is the actual package requesting the install,
which is what a package verifier wants. Previously we've passed the
installing package, but this can be overridden by the initiating
package.

Also mark the things needed to test this as @TestApi.

Test: atest PackageVerifierTest (as amended)
Bug: 134746019
Change-Id: I8108b8e21c90ae237afa976ff416ffae97ec08e4
parent a0b71f14
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -722,6 +722,7 @@ package android.content {
  public class Intent implements java.lang.Cloneable android.os.Parcelable {
    field @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public static final String ACTION_MANAGE_DEFAULT_APP = "android.intent.action.MANAGE_DEFAULT_APP";
    field public static final String ACTION_ROLLBACK_COMMITTED = "android.intent.action.ROLLBACK_COMMITTED";
    field public static final String EXTRA_ORIGINATING_UID = "android.intent.extra.ORIGINATING_UID";
    field public static final String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";
  }

@@ -753,6 +754,7 @@ package android.content.pm {
    method public void setEnableRollback(boolean);
    method @RequiresPermission("android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS") public void setGrantedRuntimePermissions(String[]);
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setInstallAsApex();
    method public void setInstallerPackageName(@Nullable String);
    method public void setRequestDowngrade(boolean);
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged();
  }
+1 −0
Original line number Diff line number Diff line
@@ -1728,6 +1728,7 @@ public class Intent implements Parcelable, Cloneable {
     * @hide
     */
    @SystemApi
    @TestApi
    public static final String EXTRA_ORIGINATING_UID
            = "android.intent.extra.ORIGINATING_UID";

+2 −1
Original line number Diff line number Diff line
@@ -1770,7 +1770,8 @@ public class PackageInstaller {
         * @param installerPackageName name of the installer package
         * {@hide}
         */
        public void setInstallerPackageName(String installerPackageName) {
        @TestApi
        public void setInstallerPackageName(@Nullable String installerPackageName) {
            this.installerPackageName = installerPackageName;
        }

+1 −1
Original line number Diff line number Diff line
@@ -14144,7 +14144,7 @@ public class PackageManagerService extends IPackageManager.Stub
                    verification.putExtra(PackageManager.EXTRA_VERIFICATION_ID, verificationId);
                    verification.putExtra(PackageManager.EXTRA_VERIFICATION_INSTALLER_PACKAGE,
                            installSource.installerPackageName);
                            installSource.initiatingPackageName);
                    verification.putExtra(PackageManager.EXTRA_VERIFICATION_INSTALL_FLAGS,
                            installFlags);