@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
@AuroraRecoveryProject

AuroraRecoveryProject

Aurora Recovery Project (AURP)

AURP is built on the TWRP 16 recovery foundation and brings a Flutter-powered interface and runtime into Android Recovery.

Recovery UI · 中文

What This Is

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.

Rendering Architecture

What Problems It Solves

  • 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.

Project Components

  • 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.

Recovery Tools

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.

Source Availability

The AURP GUI project is currently public. Flutter embedding, engine/runtime, toolchain, and some device integration components are currently closed-source or internal components.

Development Status

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.

Documentation

TWRP Compile Documentation: TWRP 编译记录

Full documentation directory: docs

Flutter

TWRP

Additional build notes, runtime tools, device bring-up records, and implementation documentation are kept in internal repositories that are not currently public.

Pinned Loading

  1. aurora_recoveryaurora_recoveryPublic

    Dart 2

  2. twrp_device_google_emu64atwrp_device_google_emu64aPublic

    Makefile 1

  3. platform_manifest_twrp_aospplatform_manifest_twrp_aospPublic

    Forked from TWRP-Test/platform_manifest_twrp_aosp

    For android devices with Weaver+Strongbox+OMAPI

  4. wpa_supplicant_8wpa_supplicant_8Public

    C 1

  5. android_vendor_twrpandroid_vendor_twrpPublic

    Forked from TWRP-Test/android_vendor_twrp

    Makefile

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…