BurnIn

BurnIN is codename for a tool used by Apple. Nothing is really known about it, but somebody on Hackint0sh got their iPhone back with BurnIn on it, suggesting that it is a diagnostics or a repair tool.

What it does
Leftover strings on firmware 2.1 have told this; Apple restores a special firmware to the iPhone, but it is based on a regular firmware. At boot, /AppleInternal/Applications/SwitchBoard/BurnIn.app/BurnIn 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 the old 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.