Device Model Database: Apple Identifier to Name Mapping
This page explains how OpenClaw maps Apple device model identifiers to human-readable names in the macOS companion app. It covers the JSON files used, their upstream source, and how to update them.
Read this when
- Updating device model identifier mappings or NOTICE/license files
- Changing how Instances UI displays device names
The Instances view inside the macOS companion app translates Apple model identifiers into human-readable names. For example, iPad16,6 becomes "iPad Pro 13-inch (M4)" and Mac16,6 becomes "MacBook Pro (14-inch, 2024)". To select an SF Symbol for each device, DeviceModelCatalog relies on the identifier prefix, with the device family used as a fallback.
The contents of apps/macos/Sources/OpenClaw/Resources/DeviceModels/ are:
| File | Purpose |
|---|---|
ios-device-identifiers.json | Maps iOS/iPadOS identifiers to names |
mac-device-identifiers.json | Maps Mac identifiers to names |
NOTICE.md | Pinned commit SHAs from upstream |
LICENSE.apple-device-identifiers.txt | Upstream MIT license text |
Data source
These files come from the kyle-seongwoo-jun/apple-device-identifiers GitHub repository, which is MIT licensed. To guarantee deterministic builds, the JSON files are pinned to specific commit SHAs recorded in NOTICE.md.
Updating the database
- Choose the upstream commit SHAs to pin (one set for iOS, another for macOS).
- Write the new SHAs into
apps/macos/Sources/OpenClaw/Resources/DeviceModels/NOTICE.md. - Download the JSON files again, pinned to those commits:
IOS_COMMIT="<commit sha for ios-device-identifiers.json>"
MAC_COMMIT="<commit sha for mac-device-identifiers.json>"
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${IOS_COMMIT}/ios-device-identifiers.json" \
-o apps/macos/Sources/OpenClaw/Resources/DeviceModels/ios-device-identifiers.json
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${MAC_COMMIT}/mac-device-identifiers.json" \
-o apps/macos/Sources/OpenClaw/Resources/DeviceModels/mac-device-identifiers.json
- Verify that
LICENSE.apple-device-identifiers.txtstill matches the upstream version; replace it if the upstream license has changed. - Confirm the macOS app builds without errors:
swift build --package-path apps/macos