1// Signature format: 2.0 2package com.android.server { 3 4 public class PackageWatchdog { 5 method public void dump(@NonNull java.io.PrintWriter); 6 method @NonNull public static com.android.server.PackageWatchdog getInstance(@NonNull android.content.Context); 7 method public static boolean isRecoveryTriggeredReboot(); 8 method public void notifyPackageFailure(@NonNull java.util.List<android.content.pm.VersionedPackage>, int); 9 method public void registerHealthObserver(@NonNull java.util.concurrent.Executor, @NonNull com.android.server.PackageWatchdog.PackageHealthObserver); 10 method public void startExplicitHealthCheck(@NonNull java.util.List<java.lang.String>, long, @NonNull com.android.server.PackageWatchdog.PackageHealthObserver); 11 method public void unregisterHealthObserver(@NonNull com.android.server.PackageWatchdog.PackageHealthObserver); 12 field public static final int FAILURE_REASON_APP_CRASH = 3; // 0x3 13 field public static final int FAILURE_REASON_APP_NOT_RESPONDING = 4; // 0x4 14 field public static final int FAILURE_REASON_BOOT_LOOP = 5; // 0x5 15 field public static final int FAILURE_REASON_EXPLICIT_HEALTH_CHECK = 2; // 0x2 16 field public static final int FAILURE_REASON_NATIVE_CRASH = 1; // 0x1 17 field public static final int FAILURE_REASON_UNKNOWN = 0; // 0x0 18 field public static final int MITIGATION_RESULT_SKIPPED = 2; // 0x2 19 field public static final int MITIGATION_RESULT_SUCCESS = 1; // 0x1 20 field public static final int USER_IMPACT_THRESHOLD_HIGH = 71; // 0x47 21 field public static final int USER_IMPACT_THRESHOLD_MEDIUM = 20; // 0x14 22 field public static final int USER_IMPACT_THRESHOLD_NONE = 0; // 0x0 23 } 24 25 public static interface PackageWatchdog.PackageHealthObserver { 26 method @NonNull public String getUniqueIdentifier(); 27 method public default boolean isPersistent(); 28 method public default boolean mayObservePackage(@NonNull String); 29 method public default int onBootLoop(int); 30 method public default int onExecuteBootLoopMitigation(int); 31 method public int onExecuteHealthCheckMitigation(@Nullable android.content.pm.VersionedPackage, int, int); 32 method public int onHealthCheckFailed(@Nullable android.content.pm.VersionedPackage, int, int); 33 } 34 35} 36 37package com.android.server.rollback { 38 39 public final class RollbackPackageHealthObserver implements com.android.server.PackageWatchdog.PackageHealthObserver { 40 ctor public RollbackPackageHealthObserver(@NonNull android.content.Context); 41 method @NonNull public String getUniqueIdentifier(); 42 method public boolean isPersistent(); 43 method public boolean mayObservePackage(@NonNull String); 44 method @AnyThread @NonNull public void notifyRollbackAvailable(@NonNull android.content.rollback.RollbackInfo); 45 method @AnyThread public void onBootCompletedAsync(); 46 method public int onBootLoop(int); 47 method public int onExecuteBootLoopMitigation(int); 48 method public int onExecuteHealthCheckMitigation(@Nullable android.content.pm.VersionedPackage, int, int); 49 method public int onHealthCheckFailed(@Nullable android.content.pm.VersionedPackage, int, int); 50 } 51 52} 53 54