SkankPhone

From The iPhone Wiki
Jump to: navigation, search

This article discusses software internally used by Apple.

Acquiring a copy without Apple's consent is illegal and may result in being scammed.
Engaging in illegal activity is not condoned. This information is provided for educational purposes only.

SkankPhone on an iPhone. Text in the background is a UI rendering error warning about a low battery level.

SkankPhone is a part of Apple's internal debug utilities suite. It can be defined as a SpringBoard alternative. Instead of dividing the iPhone OS functions such as Phone, Safari, etc. into standalone applications, Apple developers combined many functionalities into one app. SkankPhone has a integrated phone, web browser, music player and SMS editor. Pressing Home Button reveals a toolbar with 5 shortcuts to other SP sections: Phone, Web, SMS, Music and Setup. In Alpine 1A420 prototype firmware it also had a built-in Operator screen.

SkankPhone was a notable part of Non-UI firmwares from versions 1.0 to 5.1. It's last appearance was on prototypes running 5.1. Versions 6.0 and above no longer feature SkankPhone, for unknown reasons.

Certain versions of SkankPhone have minor differences when compared to one another. Some have a "Quit" button in the right bottom corner, whilst other have an "About Device" button there. Interestingly enough, newer versions of SkankPhone feature a "More Other" button even though there is no "Other" button present.

SkankPhone can coexist with SpringBoard. When the SkankPhone.app is linked into /Applications/SkankPhone.app, it shows up in SB and can be launched (if you have 1.x firmware). During launch, SkankPhone kills SpringBoard.

Technical

SkankPhone does not depend on SpringBoard, SkankPhone can live with or without it. It is not like a regular UIKit application, in this way, it is not linked with UIKit and uses it's own custom framework. SkankPhone's framework located in it's application bundle named SkankKit, this is small UIKit replacement. SkankPhone is launched by a daemon. Somewhere in this process SkankPhone unloads SpringBoard's daemon, this kills SpringBoard while giving SpringBoard no way to respawn.

App File Structure

_CodeSignature
_internal_Default.png                 com.apple.SkankPhone.plist
_internal_icon.png                    config.plist
_internal_SkankPhone.png              Info.plist
CodeResources                         PkgInfo
SkankPhone