The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
BurnIn
This article discusses software internally used by Apple. Acquiring a copy without Apple's consent is illegal and may result in being scammed. |
BurnIn is an internal diagnostics tool used used by Apple. It is used to verify whether all device hardware components are in proper working order. It is found in nearly all internal NonUI firmwares, and is launched via SwitchBoard.app. The BurnIn application is located within AppleInternal/Applications/SwitchBoard/BurnIn.app
, and its icon is that of a flame.
Upon launch, the application will display either two or three buttons.
- The first button labeled "Start BurnIn" runs selected BurnIn tests. It's worth noting that on firmwares after 8A133 BurnIn automatically runs Inferno (utility), disabling any ways of interacting with the device until tests are completed. On Apex 8A133, however, BurnIn instead launches its rarely-seen user interface, which is rather basic.
Its user interface features a spinner whilst the tests are being performed, as well as a timer that measures how long BurnIn tests have been running. Upon completion the user will be greeted with either a green screen, meaning the test was completed successfully, or a red screen indicating failures, which are also numbered. In both cases the user is instructed to collect logs. This UI is not found in later firmwares.
- The second button labeled "Reset Test Environment" cancels any tests currently in progress. It cannot, however, close Inferno if it's currently running.
- The third button labeled "Settings" is enabled on certain versions of BurnIn/certain NonUI firmwares, whereas it does not show up in others. If accessible, this button allows the user to select which tests BurnIn is to perform.
Processes
At boot, the /AppleInternal/Applications/SwitchBoard/BurnIn.app/BurnIn
executable will run. It checks /AppleInternal/Diags/purpleskank/config.plist
for configuration information, such as version (v3.0 in this case), where to store the logs (/Library/Logs/BurnIn/
in this case), what level to set the backlight to, and also, some kind of cleanup script is defined (/AppleInternal/Diags/Utilities/burnin_cleanup.sh
). What it actually does is still not known though. Two log files are also left by it, by doing whatever is done. They are /Library/Logs/BurnIn/burning_log.xml
and /Library/Logs/BurnIn/burnin_log.txt
.
On older iPhone prototypes, BurnIn is launched by SkankPhone, a SpringBoard replacement. It starts /AppleInternal/Diags/purpleskank/factoryharness
, which loads the configuration from config.plist file in the same directory. factoryharness loads the index.plist file from location specified in config.plist (default is /AppleInternal/Diags/purpleskank/tables/index.plist
) and begins to execute the tests specified in index.plist. When tests are successful, logs from burnin process are saved to /AppleInternal/Diags/Logs/
(or to other directory that can be set in config.plist). In case of failure, a failures.plist file is created in Logs directory. If Burnin process has not been completed, file state.plist is parsed by factoryharness and it continues the burnin process. If burnin process has failed, SkankPhone shows a FAILURE screen and displays the contents of burnin_log.txt. To get rid of that screen, the user must select the Reset Test Environment option in SkankPhone, which executes /AppleInternal/Diags/Utilities/burnin_cleanup.sh
.
External Links
- Definition: http://en.wikipedia.org/wiki/Burn-in
- Another Video Demonstration (iPhone - iOS 1.1.3 - BurnIn v1.4.9): http://www.youtube.com/watch?v=oPpTROJ48aQ