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

Commit 244bbadc authored by JW Wang's avatar JW Wang Committed by Android (Google) Code Review
Browse files

Merge "Expose ROLLBACK_DATA_POLICY_* as system api"

parents 7e4943d7 dabef7a8
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2831,6 +2831,9 @@ package android.content.pm {
    field public static final int RESTRICTION_HIDE_FROM_SUGGESTIONS = 1; // 0x1
    field public static final int RESTRICTION_HIDE_NOTIFICATIONS = 2; // 0x2
    field public static final int RESTRICTION_NONE = 0; // 0x0
    field public static final int ROLLBACK_DATA_POLICY_RESTORE = 0; // 0x0
    field public static final int ROLLBACK_DATA_POLICY_RETAIN = 2; // 0x2
    field public static final int ROLLBACK_DATA_POLICY_WIPE = 1; // 0x1
    field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN = 0; // 0x0
    field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE = 1; // 0x1
    field public static final int SYSTEM_APP_STATE_INSTALLED = 2; // 0x2
+2 −2
Original line number Diff line number Diff line
@@ -1616,7 +1616,7 @@ public class PackageInstaller {
        /** {@hide} */
        public DataLoaderParams dataLoaderParams;
        /** {@hide} */
        public int rollbackDataPolicy = PackageManager.RollbackDataPolicy.RESTORE;
        public int rollbackDataPolicy = PackageManager.ROLLBACK_DATA_POLICY_RESTORE;
        /** {@hide} */
        public boolean forceQueryableOverride;
        /** {@hide} */
@@ -1887,7 +1887,7 @@ public class PackageInstaller {
            } else {
                installFlags &= ~PackageManager.INSTALL_ENABLE_ROLLBACK;
            }
            rollbackDataPolicy = PackageManager.RollbackDataPolicy.RESTORE;
            rollbackDataPolicy = PackageManager.ROLLBACK_DATA_POLICY_RESTORE;
        }

        /**
+30 −19
Original line number Diff line number Diff line
@@ -1053,26 +1053,37 @@ public abstract class PackageManager {

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(value = {
            RollbackDataPolicy.RESTORE,
            RollbackDataPolicy.WIPE,
            RollbackDataPolicy.RETAIN
    @IntDef(prefix = { "ROLLBACK_DATA_POLICY_" }, value = {
            ROLLBACK_DATA_POLICY_RESTORE,
            ROLLBACK_DATA_POLICY_WIPE,
            ROLLBACK_DATA_POLICY_RETAIN
    })
    public @interface RollbackDataPolicy {
    public @interface RollbackDataPolicy {}

    /**
     * User data will be backed up during install and restored during rollback.
     *
     * @hide
     */
        int RESTORE = 0;
    @SystemApi
    public static final int ROLLBACK_DATA_POLICY_RESTORE = 0;

    /**
     * User data won't be backed up during install but will be wiped out during rollback.
     *
     * @hide
     */
        int WIPE = 1;
    @SystemApi
    public static final int ROLLBACK_DATA_POLICY_WIPE = 1;

    /**
     * User data won't be backed up during install and won't be restored during rollback.
     * TODO: Not implemented yet.
     *
     * @hide
     */
        int RETAIN = 2;
    }
    @SystemApi
    public static final int ROLLBACK_DATA_POLICY_RETAIN = 2;

    /** @hide */
    @IntDef(flag = true, prefix = { "INSTALL_" }, value = {
+2 −2
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@ public final class PackageRollbackInfo implements Parcelable {
            @NonNull List<Integer> pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores,
            boolean isApex, boolean isApkInApex, @NonNull List<Integer> snapshottedUsers) {
        this(packageRolledBackFrom, packageRolledBackTo, pendingBackups, pendingRestores, isApex,
                isApkInApex, snapshottedUsers, PackageManager.RollbackDataPolicy.RESTORE);
                isApkInApex, snapshottedUsers, PackageManager.ROLLBACK_DATA_POLICY_RESTORE);
    }

    /** @hide */
@@ -207,7 +207,7 @@ public final class PackageRollbackInfo implements Parcelable {
        this.mPendingRestores = null;
        this.mPendingBackups = null;
        this.mSnapshottedUsers = null;
        this.mRollbackDataPolicy = PackageManager.RollbackDataPolicy.RESTORE;
        this.mRollbackDataPolicy = PackageManager.ROLLBACK_DATA_POLICY_RESTORE;
    }

    @Override
+4 −4
Original line number Diff line number Diff line
@@ -143,10 +143,10 @@ public class AppDataRollbackHelper {
            int rollbackId, int appId, String seInfo, int flags) {
        if (packageRollbackInfo.isApex()) {
            switch (packageRollbackInfo.getRollbackDataPolicy()) {
                case PackageManager.RollbackDataPolicy.WIPE:
                case PackageManager.ROLLBACK_DATA_POLICY_WIPE:
                    // TODO: Implement WIPE for apex CE data
                    break;
                case PackageManager.RollbackDataPolicy.RESTORE:
                case PackageManager.ROLLBACK_DATA_POLICY_RESTORE:
                    // For APEX, only restore of CE may be done here.
                    if ((flags & Installer.FLAG_STORAGE_CE) != 0) {
                        mApexManager.restoreCeData(
@@ -160,11 +160,11 @@ public class AppDataRollbackHelper {
            // APK
            try {
                switch (packageRollbackInfo.getRollbackDataPolicy()) {
                    case PackageManager.RollbackDataPolicy.WIPE:
                    case PackageManager.ROLLBACK_DATA_POLICY_WIPE:
                        mInstaller.clearAppData(null, packageRollbackInfo.getPackageName(),
                                userId, flags, 0);
                        break;
                    case PackageManager.RollbackDataPolicy.RESTORE:
                    case PackageManager.ROLLBACK_DATA_POLICY_RESTORE:

                        mInstaller.restoreAppDataSnapshot(packageRollbackInfo.getPackageName(),
                                appId, seInfo, userId, rollbackId, flags);
Loading