About
A non-commercial dataset covering the one part of Xiaomi ROM flashing that nobody has organised: whether the thing you are about to do can be undone. Run by GDA Labs. No ads, no affiliate links.
Scope
| In scope | Reversibility (ARB, EDL, relocking). What unlocking costs you, per region. Verified per-device facts. Hash records for distributed ROM files. |
|---|---|
| Out of scope | Flashing instructions. ROM file distribution. Recommending a particular custom ROM. |
Why there are no instructions here
Instructions rot faster than anything else on this subject, and the cost of following a stale one is the highest. Someone reading an outdated guide and hitting an ARB violation ends up with hardware nobody can repair. Read the upstream sources for procedure — xiaomi.eu, XDA, the LineageOS wiki. This site exists to tell you whether you should be running that procedure at all.
Why no ROM files are mirrored
Three reasons; any one of them is sufficient.
- No redistribution right. Official ROMs are Xiaomi's copyright and the EULA forbids redistribution. Modified ROMs such as xiaomi.eu are themselves redistributed without that right, so nothing downstream of them can be justified either.
- GPL obligations. Distributing a binary containing the Linux kernel obliges the distributor to provide the corresponding source.
- Mirroring makes you the publisher. Hosting the file is your own act of making it available — a different position from merely passing along what someone else posted. If a malicious build were served, the practical consequence arrives long before any legal one: Safe Browsing warnings and hosting suspension.
Every large ROM database states "we don't host files, we only link to official sources." That is not modesty.
Why blank cells are left blank
Fields such as arb and felica cannot be confirmed without the physical device
or the fastboot ROM metadata. Roughly 60% of the device table is currently
unverified. A fuller-looking table would be easy to produce, and on this subject a guess ends
somebody's phone.
Setting a value requires source (URL) and verified_at (date). This is not a
convention described in prose — scripts/validate.mjs rejects the build otherwise, and warns
on anything verified more than 180 days ago.
Contributing
The data is the JSON in the GitHub repository; the site is a view of it. Pull requests filling in a single field are welcome. Most fields can only be filled by someone holding the device, so this dataset will not be finished by one person.
Legal
Radio-equipment certification, import rules and consumer-warranty law differ by country. Operating a device that lacks your jurisdiction's certification may be an offence where you live, and unlocking the bootloader may void the manufacturer warranty. Nothing here is a recommendation to do either — it is a record of the technical consequences. Follow the laws that apply where you are.
Disclaimer
Provided without warranty of any kind. No guarantee is made as to accuracy or currency, and no liability is accepted for any damage arising from actions taken on the basis of this information. Flashing can render a device permanently unusable. Proceed at your own risk and judgement.
Contact
Corrections go to GitHub Issues. Reports of the form "this page nearly cost me a device" are handled first.