Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Crash Recovery
Stay organized with collections
Save and categorize content based on your preferences.
The Crash Recovery module was introduced in Android 16. The module consists of
PackageWatchdog
, its observers RescueParty
and
RollbackPackageHealthObserver
, and ExplicitHealthCheckService
, and
related helper classes.
The primary motivation for the Crash Recovery module is to provide:
- Quicker iteration of recovery infrastructure code. Bug fixes and
improvements can be deployed across the ecosystem, improving the user
experience with more reliable and faster updates.
- Consistent implementation of recovery infrastructure across all devices
gives better insights into issues and improves reliability for everyone.
- Uniform behavior across ecosystems makes troubleshooting and recovery easier
during outages and reduces overall mitigation time.
Module boundary
This module has a well-defined interface to and from the remainder of the
Android platform, as shown in Figure 1:

Figure 1. Module boundary.
The Crash Recovery module uses the APEX format.
Dependencies
Existing dependencies of the classes included in this module on the Android
platform remain the same. There are no new dependencies.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-29 UTC.
[null,null,["Last updated 2025-08-29 UTC."],[],[],null,["# Crash Recovery\n\nThe Crash Recovery module was introduced in Android 16. The module consists of\n[`PackageWatchdog`](https://cs.android.com/android/platform/superproject/+/android16-release:packages/modules/CrashRecovery/service/java/com/android/server/PackageWatchdog.java), its observers [`RescueParty`](https://cs.android.com/android/platform/superproject/+/android16-release:packages/modules/CrashRecovery/service/java/com/android/server/RescueParty.java) and\n[`RollbackPackageHealthObserver`](https://cs.android.com/android/platform/superproject/+/android16-release:packages/modules/CrashRecovery/service/java/com/android/server/rollback/RollbackPackageHealthObserver.java), and [`ExplicitHealthCheckService`](https://cs.android.com/android/platform/superproject/+/android16-release:packages/modules/CrashRecovery/framework/java/android/service/watchdog/ExplicitHealthCheckService.java), and\nrelated helper classes.\n\nThe primary motivation for the Crash Recovery module is to provide:\n\n- Quicker iteration of recovery infrastructure code. Bug fixes and improvements can be deployed across the ecosystem, improving the user experience with more reliable and faster updates.\n- Consistent implementation of recovery infrastructure across all devices gives better insights into issues and improves reliability for everyone.\n- Uniform behavior across ecosystems makes troubleshooting and recovery easier during outages and reduces overall mitigation time.\n\nModule boundary\n---------------\n\nThis module has a well-defined interface to and from the remainder of the\nAndroid platform, as shown in Figure 1:\n\n**Figure 1.** Module boundary.\n\nPackage format\n--------------\n\nThe Crash Recovery module uses the [APEX format](/docs/core/ota/apex).\n\nDependencies\n------------\n\nExisting dependencies of the classes included in this module on the Android\nplatform remain the same. There are no new dependencies."]]