Difference between revisions of "Internal Firmware"

From The iPhone Wiki
Jump to: navigation, search
m (Temporarily undo 7.1GM, awaiting response)
(Blanked the page)
Line 1: Line 1:
{{see also|Beta Firmware}}
 
<div class="toclimit-3">{{float toc|left}}</div>
 
This (will be) a documented list of known '''factory firmwares''', used by Apple workers in California to do engineering tests on prototype devices and also by factory workers on production ones during manufacturing. Factory firmwares are based on production iOS ones, but adapted for internal engineering tests, development and debugging. {{clear}}
 
They are also known as "NonUI (No User Interface)" builds, probably because most applications are command line ones. The SpringBoard replacement, named SwitchBoard, allow launching a GUI of some of those applications. Unlike production iOS firmwares, factory ones have the following differences :
 
* Contain DEVELOPMENT Fused bootloaders in \Firmware\dfu\ and \Firmware\all_flash\all_flash.[board codename].factoryfa\.
 
* Contain DEVELOPMENT Fused kernel cache with more symbols, and with individual kexts in /System/Library/Extensions
 
* Contain Skankwerk (gear) logo image file in \Firmware\all_flash\all_flash.[board codename].factoryfa\.
 
* Have the /AppleInternal folder, which the hierarchy inside get priority over hierarchy in /.
 
* No SpringBoard, requires the use of daemons to launch [[SwitchBoard.app]] as a multi-app launcher instead.
 
* /usr and subfolders contain many UNIX command line utilities.
 
* SSH daemon is pre-installed - as dropbear
 
* Boot loader passes arguments to kernel (unlike RELEASE boot loaders as of iOS 5.0) which makes it easy to disable AMFI
 
* It has some Private Frameworks in /System/Library/PrivateFrameworks for internal GUI apps and command line utilities.
 
* Most internal applications require the use of SkankKit to produce special layers such as text on the framebuffer.
 
Unlike regular iOS Firmwares, factory ones are distributed in "restore bundles". Those are unzipped IPSW files which can be restored on devices using an internal restore software such as [[PurpleRestore]]. Release and factory firmwares "restore bundles" have the same packaging structure (bootloaders, kernel, restore ramdisk, update ramdisk and root filesystem).
 
 
== Some interesting facts about factory firmwares ==
 
 
* '''Design:''' Apple seems to use the same GUI design from the production firmware to the factory one. Production iOS 1.x to 6.x skeuomorphism design is also present on 1.x to 6.x factory firmwares, but seems really more excessive than production ones. For exemple, the "skankwerk" boot logo represents a real gear and many GUI icons are realistic or simply photos of real life things (especially in [[Operator]]). For newer versions, production iOS 7.x to 9.x flat design is mostly used in 7.x to 9.x factory firmwares. For exemple, the new "skankwerk" boot logo is likely a flat, simple white gear. Some newer internal applications like Earthbound also use a "flat" design.
 
* '''Other:''' The "skank" word is used to name multiple elements of factory firmwares. For exemple, there is "skankphone", "skankbattery" (the green battery shown in SwitchBoard), "skankwerk" logo, "skankkit" framework, "purpleskank" (used by BurnIn) and probably some other. The "skank" word seems to be a reference to "Skunkworks" projects, which are secrecy projects that are usually innovative. Read more about "Skunkworks" on Wikipedia https://en.wikipedia.org/wiki/Skunkworks_project.
 
 
{{clear}}
 
== [[M68AP|iPhone]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| rowspan="2" | 1.0
 
| [[Alpine 1A420|1A420]]
 
| rowspan="2" | Alpine
 
| [[03.06.01_G]]<sup>[http://web.archive.org/web/20110730023951/http://imageshack.us/photo/my-images/399/iphone2go0.jpg/]</sup><!-- http://img399.imageshack.us/i/iphone2go0.jpg/ -->
 
| Originally available [http://forums.macrumors.com/showpost.php?p=7249071&postcount=85 here], but was soon taken down.
 
|-
 
| [[Alpine 4A57|4A57]]
 
| [[04.02.13_G]]
 
| -
 
|}
 
 
== [[N88AP|iPhone 3GS]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| 3.1b
 
| [[Sierra 7C108b|7C108b]]
 
| Sierra?
 
| ?
 
| -
 
|}
 
== [[iPhone 4]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| rowspan="3" | 4.0
 
| [[ Apex 8A133|8A133]]
 
| Apex?
 
| 01.32.01
 
| -
 
|-
 
| [[Apex 8A2062a|8A2062a]]
 
| Apex?
 
| ?
 
| -
 
|-
 
| [[Apex 8A2180g|8A2180g]]
 
| ApexNanshan
 
| 01.42.01
 
| -
 
|-
 
| 5.1
 
| [[Hoodoo 9B3176h|9B3176h]]
 
| HoodooYabuli
 
| 04.12.01
 
| -
 
|}
 
 
== [[N94AP|iPhone 4S]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| 6.0
 
| [[SundanceNanshan 10A23941a|10A23941a]]
 
|SundanceNanshan
 
| 2.0.0.2
 
| -
 
|}
 
== [[iPhone 5]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| 6.0
 
| [[Sundance 10A23110z|10A23110z]]
 
| Sundance?
 
| ?
 
| -
 
|}
 
== [[iPhone 5s]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| 7.0
 
| [[InnsbruckNanshan 11A24580o|11A24580o]]
 
| InnsbruckNanshan
 
| ?
 
| -
 
|}
 
== [[N61AP|iPhone 6]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| rowspan="2" | 8.0
 
| [[Okemo 12A9331h|12A9331h]]
 
| Okemo?
 
| ?
 
| -
 
|-
 
| [[OkemoAni 12A93650o|12A93650o]]
 
| OkemoAni
 
| ?
 
| This build is pretty obscure, but it is in the wild.
 
|}
 
== [[J86AP|iPad mini 2]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Baseband
 
! Comments
 
|-
 
| 7.0.3
 
| [[InnsbruckTaos 11B64940j|11B64940j]]
 
| InnsbruckTaos?
 
| -
 
| -
 
|}
 
== [[N18AP|iPod touch 3G]] ==
 
{| class="wikitable"
 
|-
 
! Version
 
! Build
 
! Codename
 
! Comments
 
|-
 
| rowspan="2" | 3.1
 
| [[Northstar 7C144|7C144]]
 
| Northstar?
 
| -
 
|-
 
| [[Inferno 7C1023e|7C1023e]]
 
| Inferno?
 
| -
 
|}
 
 
 
 
[[Category:Firmware]]
 

Revision as of 05:26, 6 November 2016