Difference between revisions of "PROD"

From The iPhone Wiki
Jump to: navigation, search
(Fixed, see discussions for what it was)
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
The '''PROD''' ('''PRODuction''') tag is a bit value that denotes if a firmware is for production devices or not. When set to <code>true</code>, the firmware is designated to be installed onto production devices. When set to <code>false</code>, the firmware is typically incomplete and designed for [[Prototypes|internal devices]].
+
The '''PROD''' ('''PRODuction''') tag is a bit value that denotes if the image/ticket signature is for production devices or not. It is present in the SHSH certificate img3 and APTicket. When set to <code>true</code>, the image is designated to be installed onto production and development devices. When the tag value is <code>false</code>, the image/ticket is only explicitly accepted on [[Prototypes|internal devices]]. This is enforced through [[iBoot (Bootloader)|iBoot]]'s <code>do_load_image(void);</code> routine. The routine skips the '''PROD''' tag check if the device's fuse value is <code>false</code>.
   
  +
This is to prevent production devices from running non-production code.
This is most likely to prevent production devices from running internal firmwares as Apple wants [[iTunes]] to "phone home" for every restore, but at the same time, not affect their internal debug devices. This is acomplished through [[iBoot (Bootloader)|iBoot]]'s <code>do_load_image(void);</code> routine that skips all tag checks if the '''PROD''' tag is not set.
 
   
== C-pseudocode for <code>do_load_image()</code> ==
 
if (flags.prod)
 
do_load_image();
 
 
{{stub|firmware}}
 
 
[[Category:Firmware Tags]]
 
[[Category:Firmware Tags]]

Latest revision as of 19:35, 16 July 2015

The PROD (PRODuction) tag is a bit value that denotes if the image/ticket signature is for production devices or not. It is present in the SHSH certificate img3 and APTicket. When set to true, the image is designated to be installed onto production and development devices. When the tag value is false, the image/ticket is only explicitly accepted on internal devices. This is enforced through iBoot's do_load_image(void); routine. The routine skips the PROD tag check if the device's fuse value is false.

This is to prevent production devices from running non-production code.