之前在 The iPhone Wiki 逛的時候看到韌體的條目,覺得很有趣,
因為在初代 iPhone 的地方,有提到 prototype 的韌體 :iphoneproto.zip。
在網路上搜尋了一下,我也找到了這個工程模式的檔案,
於是就嘗試安裝到自己的機器上面,
在 MacRumors 的討論串 有這樣的教學:
There is no need to use the entire prototype FW – restore to 1.1.4 is enough, but remember to backup important data.
1. Restore to 1.1.4 – It must be jailbroken. You can use whatever you like to jailbreak it, but better do not use ZiPhone – it doesn’t install afc2 service.
Once you have restored and jailbroken the 1.1.4, install OpenSSH.
2. If you have Windows, use iPhoneBrowser to copy entire AppleInternal folder onto root folder of your iPhone. If you have a Mac, use DiskAid.
3. Copy the following frameworks from firmware dump System/Library/PrivateFrameworks: ARMDisassembler.framework, CHUD.framework, Coach.framework, DiskImages.framework, diStorm.framework, iPodCalendars.framework, iPodContacts.framework, MediaKit.framework, NDISASM.framework, PerfTool.framework, PHTesting.framework, PPCDisasm.framework, Symbolication.framework
to iPhone’s /System/Library/PrivateFrameworks
4. Connect to iPhone using SSH and login as root
5. Enter commands:Code:ln -s /AppleInternal/Applications/SkankPhone.app /Applications/SkankPhone.app chmod +rwx /AppleInternal/Applications/SkankPhone.app/SkankPhoneReboot/Respring and you should have a new “interesting" icon on SpringBoard.
Note that some options inside SkankPhone doesn’t work unless you copy some contents of FW dump’s /usr directory to iPhone. I just copied my iPhone’s usr/ onto FW dump and copied it back to iPhone.
If you want SkankPhone to run at every boot, copy com.apple.SkankPhone.plist file from FW dump’s /System/Library/LaunchDaemons to iPhone’s LaunchDaemons directory.
不過這樣丟檔案太麻煩,所以經過一番折騰之後,我把它做成了安裝包…
只要你有 1.1.4 的 iPhone ,越獄之後用 Installer 加入 http://installer.hiraku.tw 的 Source ,
就可以把你的 iPhone 變成工程開發機。
方法如下:加入我的 Installer Source 後,
在「iPhone4.TW 推薦軟體」的分類找到「[系統] SkankPhone」,
之後安裝完畢離開 Installer,系統會自動 Respring,
如果你的 SpringBoard 已經出現 SkankPhone 的話,就可以直接按下去使用,
但要是什麼都沒出現,或者按下去沒有作用(閃退、自動重啓…)的話,請接下去看。
這時候開啓 CyberDuck,看到根目錄會有一個 com.apple.SkankPhone.plist,
把他複製到 /System/Library/LaunchDaemons,之後重新開機,就會出現工程模式了
工程模式大概就長這樣,大家應該都看過吧。
從這張圖片可以看出來 iPhone 原本內部代號是 Newton 系列的後續機種。
如果要回到原本的 SpringBoard,可以在主選單選「More Other」,之後選「Quit」,
或者按 Home 鍵,選擇「Prefs」,再選「Quit」,都可以回到 SpringBoard。
要是上面的方法不成功,則必須要刪除 /System/Library/LaunchDaemon 底下的 com.apple.SkankPhone.plist 再重開機。
根據原文教學提到,這個工程機模式因為少了一些 /usr 的檔案,所以有些測試是無法測的,
不過我有補這些 /usr 檔案到 Installer Source 裡面,如果有需要再去安裝吧,
不然一般光是只要出現工程機介面是不需要這些檔案的。