The iPhone Configuration Utility is used to “image” iPhone, iPadand iPod Touch. The reason I quoted image was because you aren’tlaying bits down as you would in a traditional imaging scenario.Instead, you are sending a profile and possibly some applicationsto the device. This is done through a configuration profile, whichis a property list, prefixed with a .mobileconfig extension.
The iPhone Configuration Utility stores its data in the~/Library/MobileDevice directory. Here, you will find twodirectories:
- Devices – Contains the Device data for each device that hasbeen docked to the iPhone Configuration Utility.
- Configuration Profiles – Contains the profiles that you willassign to devices in the form of .mobileconfig plists.
Both of these can be managed from the command line and thereforegenerated en masse. First, let’s look at creating Devices. If yougo into the Devices directory you will see a .deviceinfo file foreach device that you have interacted with through iPhoneConfiguration Utility, prefixed by the UDID of the device. Here,you can view one as a standard property list, which appears in avery 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”> <plistversion=”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>CharlesEdge’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 PLIST1.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 WebClip</string> <key>PayloadDisplayName</key> <string>WebClip</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>Profiledescription.</string> <key>PayloadDisplayName</key> <string>ProfileName</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>