Skip to content

Instantly share code, notes, and snippets.

@insidegui
Last active March 29, 2024 07:46
Show Gist options
  • Star 27 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save insidegui/a18124c0c573a4eb656f5c485ea7dae4 to your computer and use it in GitHub Desktop.
Save insidegui/a18124c0c573a4eb656f5c485ea7dae4 to your computer and use it in GitHub Desktop.
Unofficial documentation for the iCloud Apple device image URL format
https://statici.icloud.com/fmipmobile/deviceImages-9.0/iPhone/iPhone9,4-2-3-0/online-infobox__3x.png
A B C D E F G
A: deviceImages version seems to determine the format of the image specifier (C, D, E, F)
B: device marketing name
C: device model identifier
D: color cover glass (front color)
1 - Black
2 - White
E: device enclosure color (back color)
1 - Space Gray
2 - White
3 - Gold
4 - Rose Gold
5 - Stainless steel white (Watch only)
6 - Stainless steel black (Watch) / Product Red (iPhone)
7 - Gold 2 (?) / Edition (Watch only) / White Ceramic (Watch only)
F: unknown
G: image variant
online-sourcelist.png
online-sourcelist__2x.png
online-sourcelist__3x.png
online-infobox.png
online-infobox__2x.png
online-infobox__3x.png
Examples:
White iPhone X
https://statici.icloud.com/fmipmobile/deviceImages-9.0/iPhone/iPhone10,6-1-2-0/online-infobox__3x.png
Black iPhone 8 Plus
https://statici.icloud.com/fmipmobile/deviceImages-9.0/iPhone/iPhone10,2-1-1-0/online-infobox__3x.png
Gold iPhone 8 Plus
https://statici.icloud.com/fmipmobile/deviceImages-9.0/iPhone/iPhone10,2-2-3-0/online-infobox__3x.png
Black HomePod
https://statici.icloud.com/fmipmobile/deviceImages-9.0/HomePod/AudioAccessory1,1-1-1-0/online-sourcelist__3x.png
White HomePod
https://statici.icloud.com/fmipmobile/deviceImages-9.0/HomePod/AudioAccessory1,1-2-2-0/online-sourcelist__3x.png
@afit
Copy link

afit commented Sep 11, 2019

There's a few different things going on here. As of today, Apple have five different generations of these values and their identifiers, combined with several versions of their image archive. Across all the sets there are 57 different values. Briefly:

  • First generation identifiers use slugified colours. Often curious choices of colour names and finishes.

    Here's a simple example, with an iPod Touch 5 in pink from the 4.0 deviceImage service. The code is white-pink.

  • Second generation identifiers use hex colour codes. These vary between releases. For instance, #e4e7e8 is white for a 6s Plus, but #e1e4e3 is white for a 6. Drove me crazy a few years back. Here's an iPhone X from the 7.0 deviceImage service.

  • The third generation got introduced with the XS / XR, but confoundingly it's used and usable for some but not all second generation devices. In most cases, a device needs to stay within its generation of colour identifiers. This generation uses combinations of simple numbers. As above 2-7 would give you white on gold.

    To show how confusing this can be, here's an iPhone 8 in gold -- but pulled from the older 4.0 deviceImages service.

The gist above starts to get confused with Apple Watch colours. That's because they're actually in a different series. There's a first generation, where you'll see codes like AlmGld, and a second generation where you'll see numbers. Neither series fits with the above codes, because these values are encoding material as well as colour.

Just as there's oddity in using different generations of iOS device colours, the Watch colour and material codes are weird, too. S0 thru S3 works on the first generation. S3 also works on the second generation. And so on.

There are a few other odd bits around where you can rely on defaults for some types of devices, and how others get represented.

@stevemoser
Copy link

@afit
Copy link

afit commented Oct 2, 2019

@stevemoser iPhone 8 was the last generation where they used different images for the different form-factor devices. They reuse images for the iPhone X, XS, and XS Max, too. They varied for the XR for obvious reasons.

@shepharddev
Copy link

How about the Apple Watch?

@shiypc
Copy link

shiypc commented May 3, 2021

Can you try to document the "appleid-cdn" device images? It includes support for older versions on new devices, and is used in Apple Store app.

https://appleid.cdn-apple.com/static/deviceImages-10.0/iPhone/iPhone13,1-3b3b3c-302f34/online-nolocation_iphone__3x.png
iPhone 11

@SkyVelleity
Copy link

SkyVelleity commented Mar 5, 2022

You may also be interested in the filename "online-nolocation_ipad__3x.png", I believe this is the highest resolution available so far.

...I'm also curious, I'm looking for the icons used in iOS/MacOS System Preferences, which still display my iPhone 12 mini with its default live wallpaper from launch, rather than the iOS 15 wallpaper. I'm curious if anyone has any clues where these files may be getting pulled from?

Edit: guessing settings is just a webview, because I can drag the icons out of it and they're just images/URL's (see: https://twitter.com/SkyVelleity/status/1500046892822319106 )

This is the file System Preferences was using:
https://appleid.cdn-apple.com/static/deviceImages-10.0/iPhone/iPhone13,1-3b3b3c-ccc7d7/online-infobox__2x.png
And we can go a bit bigger if we want:
https://appleid.cdn-apple.com/static/deviceImages-10.0/iPhone/iPhone13,1-3b3b3c-ccc7d7/online-nolocation_ipad__3x.png

I'm not sure if the hash here (3b3b3c-ccc7d7) includes the OS version or what, hence why this is displaying the original wallpaper, as I haven't updated this device past iOS 14.

As this is using deviceImages-10.0 looks like apple may now be including OS version too.
Not entirely sure if it's relevant but I suspect this may be the path needed to retrieve the hash:
libimobiledevice/libimobiledevice#818

@nsherbina1999
Copy link

These two it is just an RGB hash. #3B3B3C and #CCC7D7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment