Difference between revisions of "PROD"

From The iPhone Wiki
Jump to: navigation, search
m
 
(6 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  +
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>.
Denotes if the firmware image should be used on a production mode device or not. This is set to 1 on personalized + release firmware images (complete images that have ECID included and such), while set to 0 on yet-to-be-personalized images. This is probably to prevent production devices from running them, since Apple wants iTunes to phone home for every restore, but at the same time will not affect their debug devices, because there is a check in iBoot's do_load_image(); routine that will skip all tag checks if it is running on a debug device.
 
  +
  +
This is to prevent production devices from running non-production code.
   
 
[[Category:Firmware Tags]]
 
[[Category:Firmware Tags]]
[[Category:Firmware Parsing]]
 

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.