Difference between revisions of "DeviceTree"

From The iPhone Wiki
Jump to: navigation, search
(minor mods)
(formatting)
Line 1: Line 1:
The device tree is a representation of hardware used by the boot loaders (iOS's iBoot and OS X's boot.efi) to provide the kernel with a mapping of hardware. The tree is a hierarchical representation of devices by connection, somewhat similar to Solaris's device tree (/devices), and Linux's /sys/devices. It is used extensively by the boot loader, as it populates the various entries of the tree, and then passes it to XNU. XNU's platform expert then maps these addresses and uses them to communicate with the I/O buses and other low level hardware.
+
The '''device tree''' is a representation of hardware used by the boot loaders (iOS's [[iBoot (Bootloader)|iBoot]] and OS X's <code>boot.efi</code>) to provide the kernel with a mapping of hardware. The tree is a hierarchical representation of devices by connection, somewhat similar to Solaris's device tree (<code>/devices</code>), and Linux's <code>/sys/devices</code>. It is used extensively by the boot loader, as it populates the various entries of the tree, and then passes it to [[kernelcache|XNU]] (the kernel). XNU's platform expert then maps these addresses and uses them to communicate with the I/O buses and other low level hardware.
   
  +
The device tree is packaged as an [[IMG3]] file and is located in the [[IPSW File Format|IPSW]] at <code>/Firmware/?</code>. They are the same for every firmware for the device they are for, however, the keys are different every build.
The device tree can be decrypted by the VFDecrypt keys. A program to dump the IMG3 file format, and in particular the device tree, can be found [http://www.newosxbook.com/src.jl?tree=listings&file=6-bonus.c the companion website to Wiley's OS X and iOS internals book]. A dump of the N88 device tree is [http://theiphonewiki.com/wiki/index.php?title=N88AP_Device_Tree here].
 
  +
  +
== See Also ==
  +
* [[xpwntool]]
  +
* [[n88ap|iPhone 3GS]]'s [[N88AP Device Tree|Device Tree]]
  +
  +
== External Links ==
  +
* [http://www.newosxbook.com/src.jl?tree=listings&file=6-bonus.c IMG3 decrypter]

Revision as of 19:10, 30 October 2012

The device tree is a representation of hardware used by the boot loaders (iOS's iBoot and OS X's boot.efi) to provide the kernel with a mapping of hardware. The tree is a hierarchical representation of devices by connection, somewhat similar to Solaris's device tree (/devices), and Linux's /sys/devices. It is used extensively by the boot loader, as it populates the various entries of the tree, and then passes it to XNU (the kernel). XNU's platform expert then maps these addresses and uses them to communicate with the I/O buses and other low level hardware.

The device tree is packaged as an IMG3 file and is located in the IPSW at /Firmware/?. They are the same for every firmware for the device they are for, however, the keys are different every build.

See Also

External Links