Skip to main content
Android mainboards · Touch displays · Firmware — since 2013

MaskRom recovery

The hardware first-aid kit. When a board won't boot, won't enter Loader mode, and a normal USB flash fails or can't even see the device — MaskRom is what brings it back. It works at the raw chip level, before any bootloader loads, so it can reach a board that nothing else can.

If your board still enters Loader mode and normal flashing works, you don't need this page — flash over USB instead. Reach for MaskRom when the loader is missing or damaged.

When you need it​

  • The board does nothing on power-up — no boot, no display, no ADB.
  • RKDevTool / rkdeveloptool never shows a Loader device.
  • A normal flash fails at "Download IDB" or disconnects immediately.
  • A firmware write was interrupted and left the bootloader corrupt.

Any of these means the bootloader can't be trusted. MaskRom bypasses it.

How MaskRom works​

Every Rockchip SoC has MaskRom burned into the silicon. When the chip can't load a valid bootloader from any medium (eMMC, SD), it can be forced to wait for commands over the USB download port using the RockUSB protocol. RKDevTool / rkdeveloptool then rewrites the firmware directly — including the bootloader itself. That's why it recovers a "bricked" board: the brick is a bad bootloader, and MaskRom writes underneath it.

What you need​

  • The correct firmware package for your exact KTM board (see the caution in Flashing overview) — including the matching loader .bin.
  • A USB data cable on the board's download port.
  • RKDevTool (Windows) or rkdeveloptool (Linux/macOS), driver installed.

Entering MaskRom mode​

The exact control varies by board — a dedicated MaskRom button, a recovery button, or two test pads to short. Check your board's documentation for which it is. The general procedure:

  1. Power off the board completely. Remove any bootable microSD.

  2. Hold the MaskRom control (button, or short the MaskRom test pads).

  3. While holding, connect the USB download cable (and apply power if the board isn't already powered).

  4. Release once the tool detects the device:

    Found One MASKROM Device (RKDevTool)
    rkdeveloptool ld
    # DevNo=1 ... Mode=Maskrom (rkdeveloptool)

If it doesn't appear, release, power off, and repeat — the timing of when you connect the cable versus release the button is the fiddly part.

Flashing from MaskRom​

Windows (RKDevTool)​

  1. Upgrade Firmware tab. RKDevTool shows the MaskROM device.
  2. Select your update.img (unified image).
  3. Click Upgrade. The tool sends the loader, initializes memory, then writes the full image including the bootloader.
  4. The board reboots into recovered firmware.

For partition-based recovery, use the Download Image tab with the loader and per-partition images instead of the unified update.img.

Linux / macOS (rkdeveloptool)​

# confirm MaskRom
rkdeveloptool ld # Mode=Maskrom

# send the loader (must match your SoC + DDR)
rkdeveloptool db rk35xx_loader_vX.XX.bin

# write the full unified image
rkdeveloptool wl 0 update.img

# reset into the recovered firmware
rkdeveloptool rd

If MaskRom recovery fails​

SymptomCauseFix
No MaskRom device ever appearsButton/pad timing, cable, or wrong portRetry timing; data cable on the download port
"Download boot failed"Wrong loader for the SoC/DDRUse the exact loader from your board's package
Disconnects while sending loaderUnstable power or DDR init failureStable supply; correct loader; try again
Flashes OK but still won't bootWrong image for the boardUse the firmware for your exact model

MaskRom does not bypass everything. It does not override secure-boot signatures, encryption, or rollback protection where those are provisioned. If a board is secured, recovery has to use properly signed images — talk to your account manager.

The loader and image must match the board

MaskRom writes at the lowest level, so a wrong loader or image is also the most likely thing to leave the board unbootable. Use only the loader and update.img from your specific KTM board's firmware package. When in doubt, get the package from your account manager before writing anything.