Rotenbanner.DeviceDb
1.0.20260601
dotnet add package Rotenbanner.DeviceDb --version 1.0.20260601
NuGet\Install-Package Rotenbanner.DeviceDb -Version 1.0.20260601
<PackageReference Include="Rotenbanner.DeviceDb" Version="1.0.20260601" />
<PackageVersion Include="Rotenbanner.DeviceDb" Version="1.0.20260601" />
<PackageReference Include="Rotenbanner.DeviceDb" />
paket add Rotenbanner.DeviceDb --version 1.0.20260601
#r "nuget: Rotenbanner.DeviceDb, 1.0.20260601"
#:package Rotenbanner.DeviceDb@1.0.20260601
#addin nuget:?package=Rotenbanner.DeviceDb&version=1.0.20260601
#tool nuget:?package=Rotenbanner.DeviceDb&version=1.0.20260601
Device Model to Display Name Database (C#)
A library for converting Apple and Android device models into their human readable names:
using Rotenbanner;
DeviceNameLookup.TryGetDisplayName("iPhone10,6"); // "iPhone X"
DeviceNameLookup.TryGetDisplayName("GT-S6810B"); // "Samsung Galaxy Fame"
DeviceNameLookup.TryGetDisplayName("iPhone10,7"); // null, no such device
The conversion is performed using the embedded database. No network requests are made.
License
The source code in this repository is licensed under MIT License.
I believe the database itself is a collection of facts, and hence not copyrightable.
Versioning
This package is updated automatically every 2 weeks and a new version will be published with a version 1.0.YEAR|MONTH|DAY.
For example, version 1.0.20260105 would be a database built on 2026-01-05.
See the repository's Github Action for the implementation.
Alternatives to Consider
https://github.com/NaverPayDev/device-info, Typescript. Android and iOS devices.
https://github.com/zfdang/android-device-model-to-marketing-name, Android flavored Java, only Android devices.
https://github.com/jaredrummler/AndroidDeviceNames, Android flavored Java, only Android devices.
https://github.com/souzainf3/RNDeviceName, Swift, Apple devices only.
https://github.com/kimdaehee0824/DeviceNameKit, Swift, Apple devices only. Does some insane intriguing network requests.
https://www.npmjs.com/package/ios-device-list, Javascript, iOS only.
Updating Database
To update the DB manually, see Generator Readme
Q & A:
Can I use this on Unity:
I guess? I guess you could call DeviceNameLookup.TryGetDisplayName(SystemInfo.deviceModel) but I haven't tested if this works. Specifically I haven't tested that a) Embedded Resources work b) BrotliStream works on Unity.
Removing BrotliStream is easy if need be and replacing Embedded Resource with a file seems easy too.
In short, Unity support is not in the scope of this library but it might incidentally work.
I checked the source and what the heck bro, what's this Trie stuff:
This library was initally intended to be a pure javascript EMCAScript library.
Since embedding in JS means having a huge string literal of base64 or a huge integer table, I really wanted to squeeze the database where possible.
Since names have a lot of redundancy, especially prefix redundancy, a trie compresses them well.
Okay, sure, the filesize explains it... Except I could just take the CSV, zip it and it would be smaller than the trie mess:
Yep. Turns out that lookup structure from the model name to the display-name-trie-node takes quite a bit of space. Sure, we could have computed it at load time... but I had this misconception that I could simply mmap the resource and minimize unevictable memory usage.
It could be made better, but realistically, who cares of a few hundred kilobytes.
So you want me to include your opaque binary blob, with poor justification:
Yuppers. I really recommend checking the Generator Readme and build your own database. I promise the included database doesn't contain anything weird but in the long term, it's cheaper to verify than to trust. Also, by generating the DB yourself you get the latest devices there.
What's, with, these, commas:
Sty,le.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.20260601 | 92 | 6/1/2026 |
| 1.0.20260516 | 90 | 5/16/2026 |
| 1.0.20260501 | 98 | 5/1/2026 |
| 1.0.20260416 | 110 | 4/16/2026 |
| 1.0.20260401 | 106 | 4/1/2026 |
| 1.0.20260316 | 109 | 3/16/2026 |
| 1.0.20260301 | 100 | 3/1/2026 |
| 1.0.20260216 | 106 | 2/16/2026 |
| 1.0.20260201 | 114 | 2/1/2026 |
| 1.0.20260116 | 112 | 1/16/2026 |
| 1.0.20260105 | 109 | 1/5/2026 |