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

Commit 9b86c73c authored by Richard Uhler's avatar Richard Uhler Committed by Android (Google) Code Review
Browse files

Merge changes from topic "rollback_systemapi"

* changes:
  Add test for multi-package rollback.
  Fix bug where RollbackManagerService ignores package name.
  Add test for user data rollback.
  Move rollback manager implementation to RollbackManagerServiceImpl
  Don't expose RollbackManagerService's internal Handler.
  Make RollbackManager @SystemApi.
parents 9839414d de7907a5
Loading
Loading
Loading
Loading
+39 −0
Original line number Original line Diff line number Diff line
@@ -94,6 +94,7 @@ package android {
    field public static final java.lang.String MANAGE_DEVICE_ADMINS = "android.permission.MANAGE_DEVICE_ADMINS";
    field public static final java.lang.String MANAGE_DEVICE_ADMINS = "android.permission.MANAGE_DEVICE_ADMINS";
    field public static final java.lang.String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS";
    field public static final java.lang.String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS";
    field public static final java.lang.String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS";
    field public static final java.lang.String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS";
    field public static final java.lang.String MANAGE_ROLLBACKS = "android.permission.MANAGE_ROLLBACKS";
    field public static final java.lang.String MANAGE_SENSOR_PRIVACY = "android.permission.MANAGE_SENSOR_PRIVACY";
    field public static final java.lang.String MANAGE_SENSOR_PRIVACY = "android.permission.MANAGE_SENSOR_PRIVACY";
    field public static final java.lang.String MANAGE_SOUND_TRIGGER = "android.permission.MANAGE_SOUND_TRIGGER";
    field public static final java.lang.String MANAGE_SOUND_TRIGGER = "android.permission.MANAGE_SOUND_TRIGGER";
    field public static final java.lang.String MANAGE_SUBSCRIPTION_PLANS = "android.permission.MANAGE_SUBSCRIPTION_PLANS";
    field public static final java.lang.String MANAGE_SUBSCRIPTION_PLANS = "android.permission.MANAGE_SUBSCRIPTION_PLANS";
@@ -1038,6 +1039,7 @@ package android.content {
    field public static final java.lang.String OEM_LOCK_SERVICE = "oem_lock";
    field public static final java.lang.String OEM_LOCK_SERVICE = "oem_lock";
    field public static final java.lang.String PERMISSION_SERVICE = "permission";
    field public static final java.lang.String PERMISSION_SERVICE = "permission";
    field public static final java.lang.String PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block";
    field public static final java.lang.String PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block";
    field public static final java.lang.String ROLLBACK_SERVICE = "rollback";
    field public static final java.lang.String SECURE_ELEMENT_SERVICE = "secure_element";
    field public static final java.lang.String SECURE_ELEMENT_SERVICE = "secure_element";
    field public static final java.lang.String STATS_MANAGER = "stats";
    field public static final java.lang.String STATS_MANAGER = "stats";
    field public static final java.lang.String SYSTEM_UPDATE_SERVICE = "system_update";
    field public static final java.lang.String SYSTEM_UPDATE_SERVICE = "system_update";
@@ -1069,6 +1071,7 @@ package android.content {
    field public static final java.lang.String ACTION_MANAGE_PERMISSIONS = "android.intent.action.MANAGE_PERMISSIONS";
    field public static final java.lang.String ACTION_MANAGE_PERMISSIONS = "android.intent.action.MANAGE_PERMISSIONS";
    field public static final java.lang.String ACTION_MANAGE_PERMISSION_APPS = "android.intent.action.MANAGE_PERMISSION_APPS";
    field public static final java.lang.String ACTION_MANAGE_PERMISSION_APPS = "android.intent.action.MANAGE_PERMISSION_APPS";
    field public static final java.lang.String ACTION_MASTER_CLEAR_NOTIFICATION = "android.intent.action.MASTER_CLEAR_NOTIFICATION";
    field public static final java.lang.String ACTION_MASTER_CLEAR_NOTIFICATION = "android.intent.action.MASTER_CLEAR_NOTIFICATION";
    field public static final java.lang.String ACTION_PACKAGE_ROLLBACK_EXECUTED = "android.intent.action.PACKAGE_ROLLBACK_EXECUTED";
    field public static final java.lang.String ACTION_PRE_BOOT_COMPLETED = "android.intent.action.PRE_BOOT_COMPLETED";
    field public static final java.lang.String ACTION_PRE_BOOT_COMPLETED = "android.intent.action.PRE_BOOT_COMPLETED";
    field public static final java.lang.String ACTION_QUERY_PACKAGE_RESTART = "android.intent.action.QUERY_PACKAGE_RESTART";
    field public static final java.lang.String ACTION_QUERY_PACKAGE_RESTART = "android.intent.action.QUERY_PACKAGE_RESTART";
    field public static final java.lang.String ACTION_RESOLVE_INSTANT_APP_PACKAGE = "android.intent.action.RESOLVE_INSTANT_APP_PACKAGE";
    field public static final java.lang.String ACTION_RESOLVE_INSTANT_APP_PACKAGE = "android.intent.action.RESOLVE_INSTANT_APP_PACKAGE";
@@ -1204,6 +1207,7 @@ package android.content.pm {
    method public void setAllocateAggressive(boolean);
    method public void setAllocateAggressive(boolean);
    method public void setAllowDowngrade(boolean);
    method public void setAllowDowngrade(boolean);
    method public void setDontKillApp(boolean);
    method public void setDontKillApp(boolean);
    method public void setEnableRollback();
    method public void setGrantedRuntimePermissions(java.lang.String[]);
    method public void setGrantedRuntimePermissions(java.lang.String[]);
    method public void setInstallAsInstantApp(boolean);
    method public void setInstallAsInstantApp(boolean);
    method public void setInstallAsVirtualPreload();
    method public void setInstallAsVirtualPreload();
@@ -1398,6 +1402,41 @@ package android.content.pm.permission {


}
}


package android.content.rollback {

  public final class PackageRollbackInfo implements android.os.Parcelable {
    ctor public PackageRollbackInfo(java.lang.String, android.content.rollback.PackageRollbackInfo.PackageVersion, android.content.rollback.PackageRollbackInfo.PackageVersion);
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.content.rollback.PackageRollbackInfo> CREATOR;
    field public final android.content.rollback.PackageRollbackInfo.PackageVersion higherVersion;
    field public final android.content.rollback.PackageRollbackInfo.PackageVersion lowerVersion;
    field public final java.lang.String packageName;
  }

  public static class PackageRollbackInfo.PackageVersion {
    ctor public PackageRollbackInfo.PackageVersion(long);
    field public final long versionCode;
  }

  public final class RollbackInfo implements android.os.Parcelable {
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.content.rollback.RollbackInfo> CREATOR;
    field public final android.content.rollback.PackageRollbackInfo targetPackage;
  }

  public final class RollbackManager {
    method public void executeRollback(android.content.rollback.RollbackInfo, android.content.IntentSender);
    method public void expireRollbackForPackage(java.lang.String);
    method public android.content.rollback.RollbackInfo getAvailableRollback(java.lang.String);
    method public java.util.List<java.lang.String> getPackagesWithAvailableRollbacks();
    method public java.util.List<android.content.rollback.RollbackInfo> getRecentlyExecutedRollbacks();
    method public void reloadPersistedData();
  }

}

package android.hardware {
package android.hardware {


  public final class Sensor {
  public final class Sensor {
+0 −45
Original line number Original line Diff line number Diff line
@@ -330,11 +330,6 @@ package android.content {
    method public android.os.UserHandle getUser();
    method public android.os.UserHandle getUser();
    method public int getUserId();
    method public int getUserId();
    method public void setAutofillCompatibilityEnabled(boolean);
    method public void setAutofillCompatibilityEnabled(boolean);
    field public static final java.lang.String ROLLBACK_SERVICE = "rollback";
  }

  public class Intent implements java.lang.Cloneable android.os.Parcelable {
    field public static final java.lang.String ACTION_PACKAGE_ROLLBACK_EXECUTED = "android.intent.action.PACKAGE_ROLLBACK_EXECUTED";
  }
  }


}
}
@@ -357,10 +352,6 @@ package android.content.pm {
    ctor public LauncherApps(android.content.Context);
    ctor public LauncherApps(android.content.Context);
  }
  }


  public static class PackageInstaller.SessionParams implements android.os.Parcelable {
    method public void setEnableRollback();
  }

  public abstract class PackageManager {
  public abstract class PackageManager {
    method public abstract boolean arePermissionsIndividuallyControlled();
    method public abstract boolean arePermissionsIndividuallyControlled();
    method public abstract java.lang.String getDefaultBrowserPackageNameAsUser(int);
    method public abstract java.lang.String getDefaultBrowserPackageNameAsUser(int);
@@ -408,42 +399,6 @@ package android.content.res {


}
}


package android.content.rollback {

  public final class PackageRollbackInfo implements android.os.Parcelable {
    ctor public PackageRollbackInfo(java.lang.String, android.content.rollback.PackageRollbackInfo.PackageVersion, android.content.rollback.PackageRollbackInfo.PackageVersion);
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.content.rollback.PackageRollbackInfo> CREATOR;
    field public final android.content.rollback.PackageRollbackInfo.PackageVersion higherVersion;
    field public final android.content.rollback.PackageRollbackInfo.PackageVersion lowerVersion;
    field public final java.lang.String packageName;
  }

  public static class PackageRollbackInfo.PackageVersion {
    ctor public PackageRollbackInfo.PackageVersion(long);
    field public final long versionCode;
  }

  public final class RollbackInfo implements android.os.Parcelable {
    ctor public RollbackInfo(android.content.rollback.PackageRollbackInfo);
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.content.rollback.RollbackInfo> CREATOR;
    field public final android.content.rollback.PackageRollbackInfo targetPackage;
  }

  public final class RollbackManager {
    method public void executeRollback(android.content.rollback.RollbackInfo, android.content.IntentSender);
    method public void expireRollbackForPackage(java.lang.String);
    method public android.content.rollback.RollbackInfo getAvailableRollback(java.lang.String);
    method public java.util.List<java.lang.String> getPackagesWithAvailableRollbacks();
    method public java.util.List<android.content.rollback.RollbackInfo> getRecentlyExecutedRollbacks();
    method public void reloadPersistedData();
  }

}

package android.database.sqlite {
package android.database.sqlite {


  public class SQLiteCompatibilityWalFlags {
  public class SQLiteCompatibilityWalFlags {
+2 −2
Original line number Original line Diff line number Diff line
@@ -4009,9 +4009,9 @@ public abstract class Context {
     * with the rollback manager
     * with the rollback manager
     *
     *
     * @see #getSystemService(String)
     * @see #getSystemService(String)
     * @hide TODO(ruhler): hidden, @TestApi until we decide on public vs. @SystemApi.
     * @hide
     */
     */
    @TestApi
    @SystemApi
    public static final String ROLLBACK_SERVICE = "rollback";
    public static final String ROLLBACK_SERVICE = "rollback";


    /**
    /**
+2 −3
Original line number Original line Diff line number Diff line
@@ -27,7 +27,6 @@ import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.annotation.UnsupportedAppUsage;
import android.annotation.UnsupportedAppUsage;
import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ApplicationInfo;
@@ -2268,9 +2267,9 @@ public class Intent implements Parcelable, Cloneable {
     * <p class="note">This is a protected intent that can only be sent
     * <p class="note">This is a protected intent that can only be sent
     * by the system.
     * by the system.
     *
     *
     * @hide TODO: hidden, @TestApi until we decide on public vs. @SystemApi.
     * @hide
     */
     */
    @TestApi
    @SystemApi
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_PACKAGE_ROLLBACK_EXECUTED =
    public static final String ACTION_PACKAGE_ROLLBACK_EXECUTED =
            "android.intent.action.PACKAGE_ROLLBACK_EXECUTED";
            "android.intent.action.PACKAGE_ROLLBACK_EXECUTED";
+2 −3
Original line number Original line Diff line number Diff line
@@ -24,7 +24,6 @@ import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.annotation.UnsupportedAppUsage;
import android.annotation.UnsupportedAppUsage;
import android.app.ActivityManager;
import android.app.ActivityManager;
import android.app.AppGlobals;
import android.app.AppGlobals;
@@ -1428,9 +1427,9 @@ public class PackageInstaller {


        /**
        /**
         * Request that rollbacks be enabled for the given upgrade.
         * Request that rollbacks be enabled for the given upgrade.
         * @hide TODO: hidden, @TestApi until we decide on public vs. @SystemApi.
         * @hide
         */
         */
        @TestApi
        @SystemApi
        public void setEnableRollback() {
        public void setEnableRollback() {
            installFlags |= PackageManager.INSTALL_ENABLE_ROLLBACK;
            installFlags |= PackageManager.INSTALL_ENABLE_ROLLBACK;
        }
        }
Loading