1. 准备Ubuntu环境
Ubuntu 10.04
sudo apt-get install git-core libxar-dev bison flex patch openssl libbz2-dev libssl-dev autoconf
sudo apt-get install build-essential gnustep gobjc gnustep-make libgnustep-base-dev gnustep-devel uuid
gcc, g++等编译器默认已经安装
sudo apt-get install g++
Ubuntu 10.04 amd64:
在64位系统上,apt-get找不到xar,就从网站上下载xar安装,要先安装依赖文件libxar1, 再安装xar
2.准备SDK和iPhone Fireware文件
2.1
iPhone1,2_3.1.2_7D11_Restore.ipsw
,2_3.1.2_7D11_Restore.ipsw
2.2
iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg
3. 准备iphonedevonlinux源代码、SDK和firmware文件
3.1 checkout iphonedevonlinux源代码
$ mkdir -p ~/iPhone/toolchain
$ cd ~/iPhone/toolchain
$ svn checkout ./
目前checkout out的svn版本为revision 83
3.2 拷贝SDK,firmware文件到相应目录
$ mkdir -p ~/iPhone/toolchain/files/firmware
$ mv iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg ~/iPhone/toolchain/files/
$ mv iPhone1,2_3.1.2_7D11_Restore.ipsw ~/iPhone/toolchain/files/firmware/
4. 执行toolchain.sh
4.1 sudo ./toolchain.sh headers
4.2 sudo ./toolchain.sh firmware
由于GFW的原因,这一步可能不成功。如果失败了,就手工修改toolchain.sh,直接添加解密firmware的key
修改toolchain.sh如下:
注视掉以下内容:
if [ -z "$DECRYPTION_KEY_SYSTEM" ] ; then
# echo "We need the decryption key for `basename $FW_RESTORE_SYSTEMDISK`."
# echo "I'm going to try to fetch it from $IPHONEWIKI_KEY_URL...."
#
# IPHONEWIKI_KEY_URL=$( wget --quiet -O - $IPHONEWIKI_KEY_URL | awk '
# BEGIN { IGNORECASE = 1; }
# /name="'${DEVICE}'/ { found_phone=1; }
# /.*'${TOOLCHAIN_VERSION}'.*/ && found_phone { found_firmware=1; }
# /.*href=.*/ && found_firmware { while(sub(/href=|"/,"", $3));; print $3; exit;}
# ')
#
# DECRYPTION_KEY_SYSTEM=`wget --quiet -O - "http://#"$IPHONEWIKI_KEY_URL | awk '
# BEGIN { IGNORECASE = 1; }
# /.*VFDecrypt.*/ { print $3;}
# '`
DECRYPTION_KEY_SYSTEM="a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6"
if [ ! "$DECRYPTION_KEY_SYSTEM" ] ; then
error "Sorry, no decryption key for system partition found!"
exit 1
fi
echo "I found it!"
fi
message_status "Mounting ${FW_RESTORE_SYSTEMDISK}..."
mount_dmg "${TMP_DIR}/${FW_RESTORE_SYSTEMDISK}" "${MNT_DIR}" "${DECRYPTION_KEY_SYSTEM}"
别忘了添加DECRYPTION_KEY_SYSTEM=...这一行
4.3 sudo ./toolchain.sh darwin_sources