Tuesday, March 25, 2008

iBooter: iPhone boot diagnostics utility

An interesting new program out there is iBooter, described by its author, cmw, as an “interactive console for iBoot” (Apple iPhone’s bootloader).

It provides full two way communication with your iPhone, and a big number of commands. You can use iBooter to read memory/write memory, load ramdisks, change your wifi mac address, read files from nand, and much more (see the commands list below). With iBooter you can debug your iPhone’s booting issues, and the program works with Windows, Mac OS X, and even Linux.

ibooter iphone

iBooter doesn’t use iTunes’ mobile device dll driver and as such doesn’t need iTunes to be installed — instead it’s using George Hotz‘ kernel driver.

Direct downloads:
* iBooter for Windows. You will also need Libusbfilter 0.1.12.
(If this doesn’t work for you. Put your phone into recovery and then uninstall the driver via device manager. Then plug it back in and install the recovery driver. )
* iBooter for Linux (2.6.x). This should work without libusb, since it is statically linked
* iBooter for Mac OSX 10.5.2. You will need to install these usb libraries in /usr/local/lib for it to work.

You must put your phone into recovery for this to work. Turn off your iPhone then hit power and quickly hold home until you see the iTunes plugin screen. Type fsboot to get out of recovery.

For more information on iBooter visit its official page.

command list:
help this list
script run script at specific address
go jump directly to address
bootx boot a kernel cache at specified address
diags boot into diagnostics (if present)
tsys boot into tsys (if present)
bdev block device commands
image flash image inspection
fs file system commands
fsboot try to boot kernel at /kernelcache
devicetree create a device tree from the specified address
ramdisk create a ramdisk from the specified address
halt halt the system (good for JTAG)
reboot reboot the device
poweroff power off the device
md memory display - 32bit
mdh memory display - 16bit
mdb memory display - 8bit
mw memory write - 32bit
mwh memory write - 16bit
mwb memory write - 8bit
mws memory write - string
crc POSIX 1003.2 checksum of memory
printenv print one or all environment variables
setenv set an environment variable
clearenv clear all environment variables
saveenv save current environment to flash
run use contents of environment var as script
bgcolor set the display background color
setpicture set the image on the display
iic iic read/write
radio Manipulate the radio board.
setbusclock Set bus clock to the given frequency in Hz.
setcorevoltage Set core voltage to the given voltage in mV.
syscfg flash SysCfg inspection
charge Manage the charger chip.
powernvram Access Power NVRAM.
usb run a USB command
chunk chunk a file

No comments: