A modern, robust Android application built to recover Chromebooks by securely downloading and flashing ChromeOS and ChromeOS Flex recovery images directly onto USB storage devices using Android's native USB Host API.
- Automated Device Identification: Input a Chromebook Hardware ID (hwid) to automatically identify the corresponding recovery image.
- Extensive Model Catalog: Manually browse through an extensive catalog of ChromeOS and CloudReady (Flex) hardware models organized by manufacturer.
- Direct Flashing: Streams and unzips
.binpayloads directly from Google's official recovery servers, writing them directly to a physical USB thumb drive. - Live Update Support: Integrates tightly with Android 16 (API 36) Foreground Services and
ProgressStylenotifications to render live status bar chips while flashing in the background.
This application is built with Jetpack Compose and leverages modern Android components:
RecoveryApp.kt: The root Compose Navigation graph that controls the multi-step "wizard" flow.RecoveryRepository.kt: Fetches the official ChromeOSrecovery2.jsonmanifest.UsbFlasher.kt: The core workhorse. Uses theUsbManagerand SCSI protocol to execute raw block-level writes to USB mass storage devices, without requiring root access.KeepAliveService.kt: A Foreground Service ensuring that the Android OS does not aggressively terminate the memory-intensive USB flashing process when the user backgrounds the application.
- Android Device: Requires a device with USB OTG (On-The-Go) support.
- Target API: Android 16 (API 36).
- Permissions: Requires USB Host authorization and Notification posting permissions.
Ready to try it out? You can find pre-compiled debug binaries in the releases/ directory:
To build this project locally:
- Clone the repository.
- Open the
android/directory in Android Studio. - Sync Gradle and run the
appconfiguration.
./gradlew assembleDebug