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

Commit d60b6fb6 authored by Jakob Schneider's avatar Jakob Schneider
Browse files

Refactor PackageArchiver into PackageInstaller.

Bug: 298968496
Test: PackageInstallerArchiveTest.java
Change-Id: Ic9669cc76e7a37455d773d00268130426b2a5165
parent d4c7fb94
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ java_defaults {
    // Add java_aconfig_libraries to here to add them to the core framework
    srcs: [
        ":android.app.usage.flags-aconfig-java{.generated_srcjars}",
        ":android.content.pm.flags-aconfig-java{.generated_srcjars}",
        ":android.os.flags-aconfig-java{.generated_srcjars}",
        ":android.os.vibrator.flags-aconfig-java{.generated_srcjars}",
        ":android.security.flags-aconfig-java{.generated_srcjars}",
@@ -215,6 +216,19 @@ java_aconfig_library {
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Package Manager
aconfig_declarations {
    name: "android.content.pm.flags-aconfig",
    package: "android.content.pm",
    srcs: ["core/java/android/content/pm/*.aconfig"],
}

java_aconfig_library {
    name: "android.content.pm.flags-aconfig-java",
    aconfig_declarations: "android.content.pm.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Media BetterTogether
aconfig_declarations {
    name: "com.android.media.flags.bettertogether-aconfig",
+1 −1
Original line number Diff line number Diff line
@@ -420,7 +420,7 @@ public class PowerExemptionManager {
    public static final int REASON_SYSTEM_EXEMPT_APP_OP = 327;

    /**
     * Granted by {@link com.android.server.pm.PackageArchiverService} to the installer responsible
     * Granted by {@link com.android.server.pm.PackageArchiver} to the installer responsible
     * for unarchiving an app.
     *
     * @hide
+4 −8
Original line number Diff line number Diff line
@@ -3798,13 +3798,6 @@ package android.content.pm {
    field @RequiresPermission(android.Manifest.permission.ACCESS_SHORTCUTS) public static final int FLAG_GET_PERSONS_DATA = 2048; // 0x800
  }
  public class PackageArchiver {
    method @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void requestArchive(@NonNull String, @NonNull android.content.IntentSender) throws android.content.pm.PackageManager.NameNotFoundException;
    method @RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES, android.Manifest.permission.REQUEST_INSTALL_PACKAGES}) public void requestUnarchive(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
    field public static final String EXTRA_UNARCHIVE_ALL_USERS = "android.content.pm.extra.UNARCHIVE_ALL_USERS";
    field public static final String EXTRA_UNARCHIVE_PACKAGE_NAME = "android.content.pm.extra.UNARCHIVE_PACKAGE_NAME";
  }
  public class PackageInfo implements android.os.Parcelable {
    field public boolean isArchived;
  }
@@ -3812,6 +3805,8 @@ package android.content.pm {
  public class PackageInstaller {
    method @NonNull public android.content.pm.PackageInstaller.InstallInfo readInstallInfo(@NonNull java.io.File, int) throws android.content.pm.PackageInstaller.PackageParsingException;
    method @NonNull public android.content.pm.PackageInstaller.InstallInfo readInstallInfo(@NonNull android.os.ParcelFileDescriptor, @Nullable String, int) throws android.content.pm.PackageInstaller.PackageParsingException;
    method @FlaggedApi(Flags.FLAG_ARCHIVING) @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void requestArchive(@NonNull String, @NonNull android.content.IntentSender) throws android.content.pm.PackageManager.NameNotFoundException;
    method @FlaggedApi(Flags.FLAG_ARCHIVING) @RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES, android.Manifest.permission.REQUEST_INSTALL_PACKAGES}) public void requestUnarchive(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean);
    field public static final String ACTION_CONFIRM_INSTALL = "android.content.pm.action.CONFIRM_INSTALL";
    field public static final String ACTION_CONFIRM_PRE_APPROVAL = "android.content.pm.action.CONFIRM_PRE_APPROVAL";
@@ -3822,6 +3817,8 @@ package android.content.pm {
    field public static final String EXTRA_DATA_LOADER_TYPE = "android.content.pm.extra.DATA_LOADER_TYPE";
    field public static final String EXTRA_LEGACY_STATUS = "android.content.pm.extra.LEGACY_STATUS";
    field public static final String EXTRA_RESOLVED_BASE_PATH = "android.content.pm.extra.RESOLVED_BASE_PATH";
    field @FlaggedApi(Flags.FLAG_ARCHIVING) public static final String EXTRA_UNARCHIVE_ALL_USERS = "android.content.pm.extra.UNARCHIVE_ALL_USERS";
    field @FlaggedApi(Flags.FLAG_ARCHIVING) public static final String EXTRA_UNARCHIVE_PACKAGE_NAME = "android.content.pm.extra.UNARCHIVE_PACKAGE_NAME";
    field public static final int LOCATION_DATA_APP = 0; // 0x0
    field public static final int LOCATION_MEDIA_DATA = 2; // 0x2
    field public static final int LOCATION_MEDIA_OBB = 1; // 0x1
@@ -3906,7 +3903,6 @@ package android.content.pm {
    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_INSTANT_APPS) public abstract java.util.List<android.content.pm.InstantAppInfo> getInstantApps();
    method @Deprecated @NonNull public abstract java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(@NonNull String);
    method @Deprecated @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract int getIntentVerificationStatusAsUser(@NonNull String, int);
    method @NonNull public android.content.pm.PackageArchiver getPackageArchiver();
    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public int getPackageUidAsUser(@NonNull String, @NonNull android.content.pm.PackageManager.PackageInfoFlags, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method @android.content.pm.PackageManager.PermissionFlags @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, android.Manifest.permission.GET_RUNTIME_PERMISSIONS}) public abstract int getPermissionFlags(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
    method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] getUnsuspendablePackages(@NonNull String[]);
+0 −14
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@ import android.content.pm.InstrumentationInfo;
import android.content.pm.IntentFilterVerificationInfo;
import android.content.pm.KeySet;
import android.content.pm.ModuleInfo;
import android.content.pm.PackageArchiver;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageItemInfo;
@@ -173,7 +172,6 @@ public class ApplicationPackageManager extends PackageManager {
    private volatile UserManager mUserManager;
    private volatile PermissionManager mPermissionManager;
    private volatile PackageInstaller mInstaller;
    private volatile PackageArchiver mPackageArchiver;
    private volatile ArtManager mArtManager;
    private volatile DevicePolicyManager mDevicePolicyManager;
    private volatile String mPermissionsControllerPackageName;
@@ -3283,18 +3281,6 @@ public class ApplicationPackageManager extends PackageManager {
        return mInstaller;
    }

    @Override
    public PackageArchiver getPackageArchiver() {
        if (mPackageArchiver == null) {
            try {
                mPackageArchiver = new PackageArchiver(mContext, mPM.getPackageArchiverService());
            } catch (RemoteException e) {
                throw e.rethrowFromSystemServer();
            }
        }
        return mPackageArchiver;
    }

    @Override
    public boolean isPackageAvailable(String packageName) {
        try {
+1 −1
Original line number Diff line number Diff line
@@ -5274,7 +5274,7 @@ public class Intent implements Parcelable, Cloneable {
     * Broadcast Action: Sent to the responsible installer of an archived package when unarchival
     * is requested.
     *
     * @see android.content.pm.PackageArchiver
     * @see android.content.pm.PackageInstaller#requestUnarchive(String)
     * @hide
     */
    @SystemApi
Loading