AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.
Aurora Recovery Project is an Android recovery project that combines TWRP's low-level recovery capabilities with a modern Flutter application layer.
TWRP remains responsible for the recovery environment itself: boot, partitions, flashing, decryption, ADB, fastbootd, MTP, sideload, device bring-up, and hardware integration. Flutter is used for the user-facing runtime and UI, making it possible to build recovery interfaces with a modern framework and iterate faster than traditional recovery UI development.
The current AURP project is still an early framework. It does not provide the full feature set of the original TWRP GUI. At this stage, it depends on the original TWRP recovery environment and starts the Flutter runtime and AURP interface on top of it. The long-term goal is to gradually replace the original TWRP GUI while keeping the underlying recovery capabilities available.
AURP does not run Flutter as a normal Android app. Android Recovery does not provide SurfaceFlinger or the standard Android application process model. Instead, AURP uses a recovery-oriented embedder path that renders Flutter frames directly into the recovery display backend.
- Reduces TWRP GUI development and iteration cost: Traditional TWRP GUI development has a complex workflow. UI changes, asset adjustments, and feature validation often require long compile, package, flash, and reboot cycles. AURP brings the Flutter development model into recovery, where hot reload and hot restart can be used to build UI quickly.
- Brings the mature Flutter ecosystem into recovery: Flutter state management, internationalization, FFI, and many mature third-party packages from pub.dev can be used in recovery. For example, xterm.dart provides more complete terminal sequence handling, improving support for binaries such as vim and nano that depend on a large set of terminal control sequences. FFI plugins such as flutter_pty can also be used directly.
- Preserves low-level native capabilities: Through FFI and recovery-side native components, AURP can still access partitions, device nodes, command-line tools, and hardware interfaces instead of trapping recovery capabilities inside a pure UI layer. For example, implemented features such as brightness control, settings persistence, and ROM installation reuse and integrate TWRP's existing low-level implementations under the AURP Flutter interface, rather than simply copying the original TWRP GUI.
- Supports multi-device development and UI adaptation: By configuring
custom_devices.json, the current framework can support development for multiple devices at the same time and quickly adapt the UI to different devices. - Supports CPU or GPU rendering: CPU rendering does not depend on any system/vendor partition. GPU rendering depends on the vendor partition and has only been tested on Snapdragon 8 Elite / 骁龙 8 Elite Gen 5 platforms.
- aurora_recovery
The public Flutter recovery GUI application and the main visible entry point of AURP. - TWRP 16
Provides low-level recovery capabilities such as the recovery boot environment, partitions, flashing, decryption, ADB, MTP, sideload, and fastbootd. - Flutter recovery runtime (closed-source)
Runs the Flutter interface in Android Recovery userspace without relying on Android SurfaceFlinger or the normal Android app runtime. - Recovery Display Embedder
Presents Flutter frames to the screen through the recovery display path.
AURP also includes small recovery userspace experiments and utility adaptations, such as terminal/runtime tests, networking tools, and command-line helpers.
For example, cmatrix, curl, dhcpcd, and similar components are partially adapted or tested for the constrained Android Recovery environment.
The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.
AURP is currently an early framework and runtime validation environment, not a full-featured TWRP replacement.
Initial validation has been done around running Flutter inside Android Recovery and calling basic system capabilities. GPU rendering has only been tested on Snapdragon 8 Elite and Snapdragon 8 Elite Gen 5 platforms. Audio support is only available in the closed-source ossi device tree. WLAN depends on device-tree integration, and the integration approach is documented in TWRP QCOM WIFI Device Tree Integration Plan.
Due to extremely limited personal time and the need to maintain several related projects, AURP is entering a low-frequency maintenance state. Large-scale feature development will not be continuously pushed in the short term.
If enough real-world feedback, clear demand, or external participation is collected later, the project will continue feature completion and architecture improvement based on feedback priority.
TWRP Compile Documentation: TWRP 编译记录
Full documentation directory: docs
- TWRP OnePlus Pad2Pro 修改记录
- TWRP QCOM WIFI 手动启动全流程(OEM)
- TWRP QCOM WIFI 手动启动全流程
- TWRP QCOM WIFI 设备树集成方案
- TWRP WIFI 对比
- TWRP 分支演化分析
- TWRP 刷写 ROM 分析
- TWRP 编译记录
- TWRP 配置分析
Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.
