Before you start
You need
- A desktop PC/Mac with Chrome, Edge or Brave (Firefox and Safari have no WebUSB).
- A good USB-C data cable plugged straight into the computer (no hubs, no front-panel ports if you can avoid them).
- The M500 charged to at least 50%. Fastboot mode does not charge the M500 and a full install moves ~5 GB over USB (about 10 minutes). Charge on a wall charger first.
- An unlocked bootloader (Settings → Developer options → OEM unlocking). The installer checks this and can unlock for you (that wipes data).
- About 10 minutes where you will not touch the cable or the device.
Put the M500 in fastboot mode
From Android (easiest): enable USB debugging, then on the computer run adb reboot bootloader. Or use the "Reboot to bootloader" option in MikuOS' power menu if you already run MikuOS.
Hardware key combo: with the device fully off, hold Power + Volume Down until the fastboot screen appears. VERIFY: this combo comes from the repo's older notes; the M500 has a rotary volume wheel, so the exact button may differ. Confirm on a real unit before publishing.
The screen shows a plain "fastboot" splash; on the PC it enumerates as USB 18d1:d00d.
Read this
- Never unplug the cable or touch the device while flashing. An interrupted
superflash leaves the OS partitions half-written; the fix is simply to run the install again, but until then the device will not boot. - "Install (keep data)" preserves your music, likes, history and accounts. "Clean install" and "Rollback to stock" wipe everything.
- If the device stops responding mid-flash, follow the recovery section - it is a known USB quirk of the M500, not a brick.
Connect the M500
Advanced: load the manifest or images from local files (developers)
Useful for testing a build from mikuos/out without hosting 5 GB. Pick a release.json and/or the individual images; sizes must match the manifest exactly, hashes are still verified.
Pick the M500 in the browser's USB dialog. Linux users: if the dialog is empty, add a udev rule for 18d1:d00d (see README) and replug.
Device
| Not connected. |
raw getvar:all
Safety checks
- Connect a device to run the checks.
Expected product:
What do you want to do?
Exact fastboot sequence that will run
Select an action.
Flashing
Done
Log
Troubleshooting & recovery
The transfer froze / "USB transfer stalled" / the device vanished from USB
The M500's fastboot USB gadget can wedge during long transfers (this is why super is sent in 64 MiB chunks). Host-side tricks do not help; only a physical power-cycle clears it:
- Unplug the USB cable.
- Hold Power for about 10 seconds until the device is completely off.
- Re-enter fastboot (key combo above; a device with a half-written super usually falls back to fastboot by itself after a few failed boot attempts).
- Plug the cable back in and press Reconnect & Resume. The installer continues at the exact chunk that failed.
Bootloop after flashing (device bounces between logo / recovery / fastboot)
Either the super flash was interrupted or userdata was left in a raw state. Run a Clean install from this page (it re-flashes every partition, then wipes and lets the system format /data), leave the device alone until the boot animation appears. Slot A's boot-attempt counter is reset by the "set active slot A" step.
Device looks dead after a long session in fastboot
Fastboot does not charge. A flat battery shows as a blue LED and a 2-second splash that loops. Charge on a wall charger for an hour, then try again.
Nothing shows in the browser's USB dialog
- Confirm the device is in fastboot (not Android, not recovery, not "fastbootd").
- Windows: make sure the Google/Android USB driver is bound (WinUSB); Zadig can bind WinUSB to
18d1:d00dif needed. - Linux: udev rule
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d00d", MODE="0666", then replug. Close any runningfastbootCLI - never two fastboot clients at once. - Change cable / port; avoid hubs and VM USB passthrough.
Total recovery (last resort)
The M500 is a Qualcomm SM6225 device with EDL (9008) mode; a full raw restore is possible with the edl tool and a firehose loader. That is outside this installer - see the repository's rooting/unbrick guide.