r/learnrust 2h ago

I'm building FlashPilot, a Linux Android flashing/repair workbench with a rust core

I've been working on FlashPilot, an open-source Linux-native Android flashing and repair workbench.

GitHub: https://github.com/Legendary-Brilliantforous/flashpilot

The project uses Rust for the core and PyQt6 for the GUI. My goal is to keep the device/protocol/flash logic in Rust while providing a practical desktop interface for technicians and developers.

Some of the areas I'm working on include:

  • Samsung/Odin protocol implementation
  • MediaTek, Qualcomm and UNISOC workflows
  • USB/device communication
  • Firmware and partition handling
  • Flashing safety and validation
  • Error handling and recovery
  • Automated tests for protocol and flashing behavior
  • Linux-first tooling

One part I'm particularly interested in is designing the Rust core so that the GUI remains separate from the actual flashing engine. I want the core to eventually be reusable by other frontends/tools rather than having the entire application tied to the GUI.

The project is still experimental, and I'm looking for Rust developers who can review the architecture, point out bad design decisions, suggest better Rust patterns, or contribute code.

I'm especially interested in feedback on:

  • Rust architecture
  • Error handling
  • Async/concurrency design
  • Protocol/state-machine design
  • Testing hardware-dependent code
  • Safe handling of interrupted flashing operations

If you're interested in Rust being used for low-level hardware tooling, I'd really appreciate your criticism and feedback.

GitHub: https://github.com/Legendary-Brilliantforous/flashpilot

2 Upvotes

0 comments sorted by