The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "PROD"
m |
m |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | The '''PROD''' ('''PRODuction''') tag is a bit value that denotes if |
+ | 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.