I'm currently working on FlashPilot, it's a Linux software for Android flashing and repair
I’ve been working on FlashPilot
https://github.com/Legendary-Brilliantforous/flashpilot
an open-source, Linux-native Android flashing and repair workbench designed as an alternative to closed, Windows-only commercial tooling.
The project is split into two layers: a low-level Rust core "flashpilot-bridge" using vendored libusb) handling direct USB communication and raw bootloader protocols, and a PyQt6 GUI for the desktop interface.
A primary architectural goal was complete separation of concerns—keeping the hardware logic entirely in Rust so the engine is fully headless and reusable by other front ends, decoupled from the UI.
Currently, the engine supports:
- Samsung (Odin / HID / PIT)
- MediaTek (BROM / DA / scatter-GPT)
- Qualcomm (Sahara / Firehose EDL)
- Spreadtrum / UNISOC (BSL)
Since this deals directly with low-level hardware states, timeouts, and asynchronous streams, I'm especially looking for deep technical feedback and code reviews on:
- Rust Architecture: Is the separation clean? How can the protocol state-machines be structured more idiomatically?
- Error Handling & Recovery: Safe patterns for handling abrupt USB disconnections or interrupted flashing sessions without leaving devices bricked or handles leaked.
- Async / Concurrency Design: Managing multiple simultaneous device connections and per-device execution scopes safely.
- Testing Hardware Code: Strategies for testing hardware-dependent protocols or mocking USB transport layers cleanly.
If you're interested in systems programming, low-level USB protocols, or tooling built in Rust, I would deeply appreciate your critique, code reviews, or architectural feedback.
GitHub:
Posted Sep 12, 2026, 9:29 PM UTC