Difference between revisions of "BurnIn"

From The iPhone Wiki
Jump to: navigation, search
(What it does)
m
 
(25 intermediate revisions by 15 users not shown)
Line 1: Line 1:
  +
{{internal software}}
 
[[Image:Burnin2.jpg|thumb|left|"Drag To Unlock" screen. Text is "Drag To Unlock" and "Shut Down"|150px]]
 
[[Image:Burnin2.jpg|thumb|left|"Drag To Unlock" screen. Text is "Drag To Unlock" and "Shut Down"|150px]]
[[Image:Burnin1.jpg|thumb|After "Drag To Unlock" screen, when you "Drag To Unlock", you get this screen. In order, "Start Burnin", "Reset Test Enviroment", and "Quit"|150px]]
+
[[Image:Burnin1.jpg|thumb|After "Drag To Unlock" screen, when you "Drag To Unlock", you get this screen. In order, "Start BurnIn", "Reset Test Environment", and "Quit"|150px]]
[[Image:Burnin3.jpg|thumb|left|boot logo|150px]]
+
[[Image:BurninUI1.jpg|thumb|left|BurnIn running tests after pressing the "Start BurnIn" button.|150px]]
  +
[[Image:BurninUI2.jpg|thumb|right|BurnIn when all tests are finished and device has passed each one successfully.|150px]]
'''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 diagnotstics or a repair tool.
 
  +
[[Image:BurninUI3.jpg|thumb|left|BurnIn when all tests are finished and device has failed one or more tests.|150px]]
  +
'''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 <code>AppleInternal/Applications/SwitchBoard/BurnIn.app</code>, and its icon is that of a flame.
   
  +
Upon launch, the application will display either two or three buttons.
== What it does ==
 
Leftover strings on firmware 2.1 have told me 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.
 
   
  +
* 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.
On the old iPhone prototypes, BurnIn is launched by the /AppleInternal/Applications/SkankPhone.app/SkankPhone, a SpringBoard replacement. It starts the /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 ("Burnin process"). 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. When Burnin process has not been completed, file state.plist is parsed by factoryharness and it continues the burnin process. When burnin process has failed, Skankphone.app shows an FAILURE screen and contents of /Library/Logs/SkankLog.txt. To get rid of that screen, user must select the Reset Test Environment option in SkankPhone - it executes the /AppleInternal/Diags/Utilities/burnin_cleanup.sh.
 
   
  +
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.
==BurnIn on iPod touch==
 
The day of the launch, numerous iPod touches shipped with BurnIn on it. In order to get it off them, you just did a restore. A few of these were sold on eBay.
 
   
  +
* The second button labeled "Reset Test Environment" cancels any tests currently in progress. It cannot, however, close Inferno if it's currently running.
<div style="clear:both;"></div>
 
   
  +
* 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.
<gallery caption="BurnIn on iPod touch" widths="100px" heights="100px" perrow="5">
 
Image:0.jpg|boot logo
 
Image:1.jpg|The main menu.
 
Image:2.jpg|Wi-Fi antenna test.
 
Image:3.jpg|The "Bluetooth" screen.
 
Image:4.jpg|The "Battery" screen.
 
Image:5.jpg|The "Accelerometer" menu.
 
Image:6.jpg|The "Buttons" menu.
 
Image:7.jpg|Speaker screen.
 
Image:8.jpg|"Touch" screen.
 
Image:9.jpg|The "Serial Number" screen.
 
Image:10.jpg|Tests the ambient light sensor.
 
Image:11.jpg|A test for any connected headphones.
 
Image:12.jpg|The temperature inside the device.
 
</gallery>
 
   
  +
== Processes ==
Video: http://www.youtube.com/watch?v=nVMY1aC1kk4
 
  +
  +
At boot, the <code>/AppleInternal/Applications/SwitchBoard/BurnIn.app/BurnIn</code> executable will run. It checks <code>/AppleInternal/Diags/purpleskank/config.plist</code> for configuration information, such as version (v3.0 in this case), where to store the logs (<code>/Library/Logs/BurnIn/</code> in this case), what level to set the backlight to, and also, some kind of cleanup script is defined (<code>/AppleInternal/Diags/Utilities/burnin_cleanup.sh</code>). What it actually does is still not known though. Two log files are also left by it, by doing whatever is done. They are <code>/Library/Logs/BurnIn/burning_log.xml</code> and <code>/Library/Logs/BurnIn/burnin_log.txt</code>.
  +
  +
On older iPhone prototypes, BurnIn is launched by [[SkankPhone]], a SpringBoard replacement. It starts <code>/AppleInternal/Diags/purpleskank/factoryharness</code>, 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 <code>/AppleInternal/Diags/purpleskank/tables/index.plist</code>) and begins to execute the tests specified in index.plist. When tests are successful, logs from burnin process are saved to <code>/AppleInternal/Diags/Logs/</code> (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 <code>/AppleInternal/Diags/Utilities/burnin_cleanup.sh</code>.
  +
  +
== 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
  +
  +
[[Category:Apple Internal Apps]]
  +
[[Category:Software]]

Latest revision as of 23:47, 21 July 2018

This article discusses software internally used by Apple.

Acquiring a copy without Apple's consent is illegal and may result in being scammed.
Engaging in illegal activity is not condoned. This information is provided for educational purposes only.

"Drag To Unlock" screen. Text is "Drag To Unlock" and "Shut Down"
After "Drag To Unlock" screen, when you "Drag To Unlock", you get this screen. In order, "Start BurnIn", "Reset Test Environment", and "Quit"
BurnIn running tests after pressing the "Start BurnIn" button.
BurnIn when all tests are finished and device has passed each one successfully.
BurnIn when all tests are finished and device has failed one or more tests.

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