Back to Home

AppleInternal and some other stuff or development at Apple from the inside

AppleInternal · iOS · Dacron fibers · device prototypes · prototypes · software development · Foxconn

AppleInternal and some other stuff or development at Apple from the inside

I collected this information for about a year, but it is still relevant (summer 2014). I am not an employee of the apple corporation, but some people associated with Apple helped me a lot. In the article I will try to talk about the stages of development of devices, internal software and something else.

For the article I use pictures only from open sources, but if the Giktaymites support me, then in the second part I will show live videos made by me.

iPhone


Apple by 2006 already had some kind of working iPhone software, and closer to 2007 it was quite usable, but even at the presentation itself they were very afraid that the iPhone would freeze.

image

The first diagnostic shell was called SkankPhone and was designed to debug iron.

"Desktop" (aka SpringBoard) was absent, because Apple tried by all means to keep the secret, although it might well have been simply not ready .

Starting with iPhone 3G and 2.0, debugging was done using SwitchBoard:

image

But access to SkankPhone still remained.

The same thing happened for 3G [S], with the only difference being that they added new features to the firmware (my photo):

image

I think you all remember that same forgotten iPhone in a bar? It worked just on such firmware that it was in iPhone 3G [S]. Why is that?

Firmware assembly


Earlier, I naively believed that firmware was collected for each device individually. It turned out that nothing of the kind.
Build "universal firmware", in our case, firmware 4.0 was suitable for all devices at once (i.e. internal firmware contains support for all devices).

To "configure" it under the device use PurpleBuildSanitizer (my photo):

image

Bootchain compiles, but works between devices. You can run the bootchain from 4S to 4 / 3G [S] (but a little magic is needed).

Starting with 5.0 (not with 4.3) iOS is only built for ARMv7, starting with iOS 7 - ARMv7s (which is why some older ARMv7 devices (iPhone 4 / 4S and iPad 2/3) experienced problems with the speed of this OS.

Starting from 7.0, there is also a separate assembly branch - for A7 and older. A new container is used for them - img4.

iPad


Apple itself did not really hope for the success of the first iPad, but began to actively develop it since 2009. By the way, it was then that the first prototype appeared working on a diagnostic OS for iPhone 3G [S]:

image

iPhone 4 itself is very close to iPhone 3G [S], because Jobs was satisfied with the performance of 3G [S], they decided to try introducing the new A4 chip into the iPad. The Quartet itself began to be made just in 2009.

Device Development Stages


According to the roadmap used by Apple, the idea of ​​a new device appears. Consider the example of iPad 3. Everyone has long been waiting for retina. In order not to lose the race, they were forced to urgently make The New iPad.

Stages:
1. The first prototype appears on the debug board, as SoC - FPGA. There are 4 UART, Ethernet, Com.
2. If everything is more or less successful, then they collect a board for the test (most often from parts that are already in production).
A red board appears. It has three LCD connectors, there are debug outputs, JTAG (or similar), as well as the usual A5.
3. Apple is testing a red board without a case. They are not satisfied with the performance - A5X production begins.
4. The first prototype J1DVT-1 appears, then J1DEV. DEV is almost the final option, but with the firmware signature verification disabled.
If you leave such a device in the bar - it is likely that knowledgeable people will dump the bootrom and bootrom will appear a vulnerability for the SoC that is installed there.

Diagnostics of iron and software occur in different conditions. To this day, Foxconn engineers and employees use SwitchBoard for testing, and on the Apple campus - the diagnostic version of iOS.

System Testing and Optimization


iPhone OS tested on iPhone 2G prototype iPhone
OS 2 tested on iPhone 2G
iPhone OS 3 tested on iPhone 3G / 3G [S]
iOS 4 tested on iPhone 4
iOS 5 tested on iPhone 4S
iOS 6 tested on iPhone 5
iOS 7 tested on iPhone 5
iOS 8 was tested on iPhone 5S.

By the word "tested" I mean optimization (so that this model does not lag).

Beat for spelling, punctuation and syntax in drugs.

In the next article (if interesting, of course), I will talk about low-level debugging, about developing 4S and iphone 6, software for Mac OS, an Apple employee account and internal software for iOS.

Read Next