1. 硬件准备工作:
I. iPhone 1台(准备好USB连接线和Dock)
II. Intel Mac 1台 或者安装了Mac OS X 10.4.10的PC 1台
III. 无线路由器或无线AP一台
2. 软件准备工作:
参考:
http://ellkro.jot.com/iPhoneHacking
I. Kroo's Mac OS X Toolchain
http://conceitedsoftware.com/iphone/iPhoneToolchainv04.dmg
http://wickedpsyched.com/iphone/beta/iPhoneToolchainv04.dmg
http://iphone.riverdark.net/iPhoneToolchainv04.dmg
http://kaisakura.org/iPhoneToolchainv04.dmg
http://homepage.mac.com/gregmeach/iPhone/iPhoneToolchainv04.dmg
II. heavenly dmg(需要自己制作)
III. phonedmg
http://ellkro.jot.com/phonedmg12.tar.gz
IV. Software Restore Image
http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw
V. Macports
http://svn.macports.org/repository/macports/downloads/MacPorts-1.5.0/MacPorts-1.5.0-10.4.dmg
VI. Dropbear
http://iphone.port21.com/Code/iPhone_SSH_Install_for_Mac.zip
3. 安装Toolchain
I. 下载
vfdecrypt 并编译
II. 获取iPhone固件文件
(1)修改下载的Software Restore Image,修改扩展名为zip并解压缩获得"694-5259-38.dmg" 和 "694-5262-39.dmg","694-5262-39.dmg"是加密映像,包含了iPhone的系统文件,解密的密钥存储在"694-5259-38.dmg"中,执行以下命令获取密钥(72位16进制字符串):
strings 694-5259-38.dmg| grep "^[0-9a-fA-F]*$" | awk '{ if (length($1) == 72) print; }'
(2)把编译好的vfdecrypt复制到Software Restore Image的解压目录下,执行以下命令获得heavenly.dmg(替换<hex key>为刚才获得的72位16进制字符串的密钥)
vfdecrypt -i 694-5262-39.dmg -k <hex key> -o heavenly.dmg
(3)打开heavenly.dmg并且复制里面的所有内容至/Developer/SDKs/iPhone/heavenly/(注意,只有root帐户才有/Developer/SDKs/的写权限),执行以下命令
sudo su
<enter password>
mkdir /Developer/SDKs/iPhone/heavenly
cp -R /Volumes/Heavenly1A543a.UserBundle/* /Developer/SDKs/iPhone/heavenly/
cp /Developer/SDKs/iPhone/lib/libarmfp.dylib /Developer/SDKs/iPhone/heavenly/usr/lib
./configure --with-heavenly=/Developer/SDKs/iPhone/heavenly
III. 把编译器添加到路径
编辑~/.bash_profile并且把/Developer/SDKs/iPhone/bin/添加进去,如果你还没有~/.bash_profile,创建文件并保证内容如下:
PATH="/Developer/SDKs/iPhone/bin/:\\${PATH}"
export PATH
4. 编译Helloworld:
I. 建立与iPhone文件系统的联系
希望使用jailbreak和iphoneinterface通信的请参考:
http://ellkro.jot.com/WikiHome/HowToBuildObjCApps
http://www.hacktheiphone.com/iphone_first_ten_steps_to_modding.html
我在Mac没能用jailbreak和iPhoneInterface访问iPhone的文件系统,并且觉得此方法非常不方便。其实已经有很多工具可以方便地操作iPhone上的文件,Mac推荐使用iFuntastic(有GUI,同时还可以定制一些iPhone功能)
II. 安装SSH(可直接用sshkit完成以下所有操作)
参考:
http://ellkro.jot.com/WikiHome/InstallingDropbearOSX
(1)用iPhoneInterface或者iFuntastic在iPhone上建立 /etc/dropbear目录
(2)复制dropbear_rsa_host_key 和 dropbear_dss_host_key两个文件到/etc/dropbear
(3)进入iPhone的/bin目录
(4)复制chmod 和 sh两个文件到/bin
(5)进入iPhone的/usr/bin目录
(6)复制chmod, bash, ls, dropbear到/usr/bin
(7)进入iPhone的/usr/sbin目录
(8)复制update到/usr/sbin
(9)进入iPhone的/System/Library/LaunchDaemons目录
(10)复制com.apple.update.plist 和 au.asn.ucc.matt.dropbear.plist两个文件到/System/Library/LaunchDaemons
到此为止,SSH就安装好了,重起iPhone两次即可通过SSH访问iPhone,执行以下命令登陆到iPhone([your iphone ip]替换成iPhone的IP)
ssh [email=root@[your]root@[your[/email] iphone ip]
mv com.apple.update.plist.orig com.apple.update.plist
mv update.orig update
(11)进入iPhone的/System/Library/LaunchDaemons/
(12)复制com.apple.update.plist到/System/Library/LaunchDaemons/
(13)进入iPhone的/usr/sbin
(14)复制update到/usr/sbin
III. 编译和运行Helloworld
(1)进入Helloworld所在目录,执行以下命令
make
(2)在iPhone上创建/Applications/Hello.app
(3)复制Hello 和 Info.plist到/Applications/Hello.app
(4)同时也可以做一个60*60名叫icon.png的文件作为程序图标放在/Applications/Hello.app
(5)这时iPhone桌面上就会出现你的图标,单击即可执行(如果运行不成功,检查你的iPhone是否安装好了openSSH和BSD subsystem)
[
本帖最后由 johnnyrico 于 2007-10-31 10:32 编辑 ]