Phone manufacturers often expose only a raw, cryptic model code (e.g. MI-ONE PLUS) at the OS/analytics level instead of the human-readable name (e.g. "小米 1 联通版"). KHwang9883's MobileModels crowdsources the mapping between these codes and their real names, one markdown file per brand.
This repo pulls that project in as a git submodule, parses every brand's markdown file, and flattens the result into a single CSV — so you can just load one file instead of parsing 20+ markdown files yourself.
brand_model.csv — one row per device, with columns:
| Column | Description |
|---|---|
brand |
Brand slug (e.g. xiaomi, huawei, apple) |
model |
Raw model code as reported by the device (e.g. MI-ONE PLUS) |
area |
cn or en, depending on which regional markdown file the entry came from |
brand_name |
Brand name in Chinese (e.g. 小米) |
model_name |
Human-readable model name (e.g. 小米 1 联通版) |
A GitHub Actions workflow (update.yml) runs daily:
- Pulls the
MobileModelssubmodule to its latest commit - Regenerates
brand_model.csvby runningphoneModel.py - Commits and pushes if the data changed
No manual token setup is needed — it authenticates with the built-in GITHUB_TOKEN. If you fork this repo and the push step fails with a permissions error, check Settings → Actions → General → Workflow permissions and set it to "Read and write permissions".
git clone --recurse-submodules https://github.com/jantacy/mobilemodels.git
cd mobilemodels
pip install -r requirements.txt
python phoneModel.py