The iPhone Configuration Utility is used to “image” iPhone, iPad and iPod Touch. The reason I quoted image was because you aren’t laying bits down as you would in a traditional imaging scenario. Instead, you are sending a profile and possibly some applications to the device. This is done through a configuration profile, which is a property list, prefixed with a .mobileconfig extension.
The iPhone Configuration Utility stores its data in the ~/Library/MobileDevice directory. Here, you will find two directories:
- Devices – Contains the Device data for each device that has been docked to the iPhone Configuration Utility.
- Configuration Profiles – Contains the profiles that you will assign to devices in the form of .mobileconfig plists.
Both of these can be managed from the command line and therefore generated en masse. First, let’s look at creating Devices. If you go into the Devices directory you will see a .deviceinfo file for each device that you have interacted with through iPhone Configuration Utility, prefixed by the UDID of the device. Here, you can view one as a standard property list, which appears in a very simplistic fashion as follows:
<?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”><plist version=”1.0″><dict><key>UniqueChipID</key><integer>0</integer><key>applicationDictionaries</key><array/><key>configurationProfiles</key><array/><key>deviceActivationState</key><string>WildcardActivated</string><key>deviceBuildVersion</key><string>7E18</string><key>deviceCapacityKey</key><integer>15333203968</integer><key>deviceIdentifier</key><string>12a0b688649cfe0ce5df2ab8b4f9eaaee0d000fc</string><key>deviceLastConnected</key><date>2010-05-27T00:17:17Z</date><key>deviceName</key><string>Charles Edge’s iPhone</string><key>devicePhoneNumber</key><string>1 (310) 555-1212</string><key>deviceProductVersion</key><string>3.1.3</string><key>deviceSerialNumber</key><string>12345678901</string><key>deviceType</key><string>iPhone</string><key>provisioningProfiles</key><array/></dict></plist>
<?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”><plist version=”1.0″><dict><key>PayloadContent</key><array><dict><key>FullScreen</key><false/><key>IsRemovable</key><true/><key>Label</key><string></string><key>PayloadDescription</key><string>Configures Web Clip</string><key>PayloadDisplayName</key><string>Web Clip</string><key>PayloadIdentifier</key><string></string><key>PayloadOrganization</key><string></string><key>PayloadType</key><string>com.apple.webClip.managed</string><key>PayloadUUID</key><string>80222944-B43C-4A43-AB93-2998CDCBE808</string><key>PayloadVersion</key><integer>1</integer><key>Precomposed</key><false/><key>URL</key><string></string></dict></array><key>PayloadDescription</key><string>Profile description.</string><key>PayloadDisplayName</key><string>Profile Name</string><key>PayloadOrganization</key><string></string><key>PayloadRemovalDisallowed</key><false/><key>PayloadType</key><string>Configuration</string><key>PayloadUUID</key><string>5B0879F3-9BA9-41E7-AC8F-F4703D4400DB</string><key>PayloadVersion</key><integer>1</integer></dict></plist>