Expose ROLLBACK_DATA_POLICY_* as system api
The constants will be used by phonesky and CTS to replace hardcoded values. Bug: 194981157 Test: m Change-Id: I4567334be554055ef2a5c20ef7160d991674cb9e
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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 {
|
||||
/**
|
||||
* User data will be backed up during install and restored during rollback.
|
||||
*/
|
||||
int RESTORE = 0;
|
||||
/**
|
||||
* User data won't be backed up during install but will be wiped out during rollback.
|
||||
*/
|
||||
int WIPE = 1;
|
||||
/**
|
||||
* User data won't be backed up during install and won't be restored during rollback.
|
||||
* TODO: Not implemented yet.
|
||||
*/
|
||||
int RETAIN = 2;
|
||||
}
|
||||
public @interface RollbackDataPolicy {}
|
||||
|
||||
/**
|
||||
* User data will be backed up during install and restored during rollback.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@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
|
||||
*/
|
||||
@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
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ROLLBACK_DATA_POLICY_RETAIN = 2;
|
||||
|
||||
/** @hide */
|
||||
@IntDef(flag = true, prefix = { "INSTALL_" }, value = {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -438,7 +438,7 @@ class Rollback {
|
||||
for (PackageRollbackInfo pkgRollbackInfo : info.getPackages()) {
|
||||
if (pkgRollbackInfo.getPackageName().equals(packageName)) {
|
||||
if (pkgRollbackInfo.getRollbackDataPolicy()
|
||||
== PackageManager.RollbackDataPolicy.RESTORE) {
|
||||
== PackageManager.ROLLBACK_DATA_POLICY_RESTORE) {
|
||||
dataHelper.snapshotAppData(info.getRollbackId(), pkgRollbackInfo, userIds);
|
||||
addAll(pkgRollbackInfo.getSnapshottedUsers(), userIds);
|
||||
RollbackStore.saveRollback(this);
|
||||
|
||||
@@ -800,7 +800,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub implements Rollba
|
||||
// precedence only when it is not the default (i.e. RESTORE). We will remove
|
||||
// SessionParams#setEnableRollback(boolean, int) and related code when Play has migrated to
|
||||
// using the manifest to specify the policy.
|
||||
if (manifestPolicy != PackageManager.RollbackDataPolicy.RESTORE) {
|
||||
if (manifestPolicy != PackageManager.ROLLBACK_DATA_POLICY_RESTORE) {
|
||||
return manifestPolicy;
|
||||
}
|
||||
return sessionPolicy;
|
||||
|
||||
@@ -447,7 +447,7 @@ class RollbackStore {
|
||||
|
||||
// Backward compatibility: no such field for old versions.
|
||||
final int rollbackDataPolicy = json.optInt("rollbackDataPolicy",
|
||||
PackageManager.RollbackDataPolicy.RESTORE);
|
||||
PackageManager.ROLLBACK_DATA_POLICY_RESTORE);
|
||||
|
||||
return new PackageRollbackInfo(versionRolledBackFrom, versionRolledBackTo,
|
||||
pendingBackups, pendingRestores, isApex, isApkInApex, snapshottedUsers,
|
||||
|
||||
@@ -301,9 +301,9 @@ public class StagedRollbackTest {
|
||||
InstallUtils.processUserData(TestApp.C);
|
||||
|
||||
Install a2 = Install.single(TestApp.A2).setStaged()
|
||||
.setEnableRollback(PackageManager.RollbackDataPolicy.WIPE);
|
||||
.setEnableRollback(PackageManager.ROLLBACK_DATA_POLICY_WIPE);
|
||||
Install b2 = Install.single(TestApp.B2).setStaged()
|
||||
.setEnableRollback(PackageManager.RollbackDataPolicy.RESTORE);
|
||||
.setEnableRollback(PackageManager.ROLLBACK_DATA_POLICY_RESTORE);
|
||||
// The rollback data policy of C2 is specified in the manifest
|
||||
Install c2 = Install.single(TestApp.C2).setStaged().setEnableRollback();
|
||||
Install.multi(a2, b2, c2).setEnableRollback().setStaged().commit();
|
||||
|
||||
Reference in New Issue
Block a user