DEV Community

Daniel Elias Diamon Vazquez
Daniel Elias Diamon Vazquez

Posted on

Flash SPI Tool: Flashing BIOS and SPI EEPROMs from Android with flashrom

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) ]
Enter fullscreen mode Exit fullscreen mode

🚀 Repositories and Links

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

Top comments (0)