Flash SPI Tool: Native Android GUI for BIOS and EEPROM Flashing (flashrom Engine)

When repairing computer motherboards, laptops, or game consoles with corrupted BIOS / UEFI firmware, technicians typically rely on an external programmer (like the CH341A) connected to a desktop computer.

Flash SPI Tool brings the full power of the industry-standard flashrom engine to Android devices over USB-OTG, eliminating the need for a PC during bench repairs.

🔬 How It Works

Flash SPI Tool bridges the gap between low-level hardware flashing and Android's sandboxed environment:

  • Custom Native flashrom Engine: Compiled for arm64-v8a with 16KB page-size alignment for compatibility with modern Android versions (Android 7.0 up to Android 17).
  • Zero-OOM C++ Transport Layer: Implemented via a high-performance native USB bridge (usb_bridge.cpp) communicating through Android USB Host APIs without root permissions.
  • Supported Memories: SPI Flash (25-series, W25Qxx), I2C EEPROMs (24-series), and LPC/FWH chips using SOIC8 test clips or DIP sockets.
 [ Android Phone / Tablet ] │ (USB-OTG Host API - Non-Root) ▼ [ Native C++ USB Bridge ] │ ▼ [ flashrom Core Engine ] │ ▼ [ SPI Programmer: CH341A / FT2232 ] │ (SOIC8 Clip) ▼ [ Target BIOS / SPI Flash Chip (25Q64 / 25Q128) ] 

🚀 Repositories and Links

Feel free to check out the project, file issues, or suggest new chip definitions!