Ubuntu上修建iPhone OS3.1.2开辟环境[Linux安全]
本文“Ubuntu上修建iPhone OS3.1.2开辟环境[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在成立编译环境前,请先下载好所需的SDK和Firmware文件:
iPhone1,2_3.1.2_7D11_Restore.ipsw
http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw
iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg
http://shuqun.com/files/iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg
我的Linux HOST环境为Ubuntu 9.10(Karmic Koala),在这里操纵iphonedevonlinux成立toolchain.
首先配置好编译所需的HOST环境,在终端中输入以下号令:
1 sudo apt-get install automake bison cpio flex g++ g++-4.3 g++-4.3-multilib gawk gcc-4.3 git-core gobjc-4.3 gzip libbz2-dev libcurl4-openssl-dev libssl-dev make mount subversion sudo tar unzip uuid uuid-dev wget xar zlib1g-dev
点击这里获得iphonedevonlinux源代码:
1 $ mkdir -p ~/iphone/toolchain
2 $ cd ~/iphone/toolchain
3 $ svn checkout http://iphonedevonlinux.谷歌code.com/svn/trunk/ ./
目前checkout out的svn版本为83.
拷贝SDK,firmware文件到呼应目录:
1 $ mkdir -p ~/iphone/toolchain/files/firmware
2 $ mv ./iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg ~/iphone/toolchain/files/
3 $ mv ./iPhone1,2_3.1.2_7D11_Restore.ipsw ~/iphone/toolchain/files/firmware/
手动设置密匙,注释掉toolchain.sh中下载密匙的代码:
1 $ gedit ~/iphone/toolchain/toolchain.sh
01 unzip -d "${TMP_DIR}" -o "${FW_FILE}" "${FW_RESTORE_SYSTEMDISK}"
02
03 #if [ -z "$DECRYPTION_KEY_SYSTEM" ] ; then
04 #echo "We need the decryption key for `basename $FW_RESTORE_SYSTEMDISK`."
05 #echo "I'm going to try to fetch it from $IPHONEWIKI_KEY_URL...."
06 #
07 #IPHONEWIKI_KEY_URL=$( wget --quiet -O - $IPHONEWIKI_KEY_URL | awk '
08 #BEGIN { IGNORECASE = 1; }
09 #/name="'${DEVICE}'/ { found_phone=1; }
10 #/.*'${TOOLCHAIN_VERSION}'.*/ && found_phone { found_firmware=1; }
11 #/.*href=../../.*/ && found_firmware { while(sub(/href=|"/,"", $3));; print $3; exit;}
12 #')
13
14 #DECRYPTION_KEY_SYSTEM=`wget --quiet -O - "http://www.theiphonewiki.com"$IPHONEWIKI_KEY_URL | awk '
15 #BEGIN { IGNORECASE = 1; }
16 #/.*VFDecrypt.*/ { print $3;}
17 #'`
18
19 DECRYPTION_KEY_SYSTEM="a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6"
20
21 if [ ! "$DECRYPTION_KEY_SYSTEM" ] ; then
我们可以操纵
1 $ sudo ./toolchain.sh all
自动编译toolchain,但简单呈现很多问题.这里我们采取手动一步步编译:
1 $ sudo./toolchain.sh headers
2 $ sudo./toolchain.sh firmware
3 $ sudo./toolchain.sh darwin_sources
4 $ sudo./toolchain.sh build
普通来说前三步都不会呈现什么问题.(有问题请留言)
最后一步toolchain.sh build中会报错,这时翻开~/iphone/toolchain/toolchain/bld/cctools-iphone/make.log,搜索”error:”,在报错的文件中加上:
1 #include <stdio.h>
2 #include <stdlib.h>
以下是我改正的文件:
ArchiveReader.hpp MachOReaderDylib.hpp MachOWriterExecutable.hpp OpaqueSection.hpp ld.cpp Options.cpp
重新build便可.注意不要重新checkout代码,不然又要重改一遍...
假如呈现”It seems like the toolchain built!”,阐明toolchain build成功.
之后可以操纵apps下的代码测试下toolchain,普通会碰到两个问题:
1. 找不到编译器 arm-apple-darwin9-gcc
在~/.bashrc中增添环境变量便可
1 $ sudo gedit ~/.bashrc
增添export PATH=~/iphone/toolchain/toolchain/pre/bin:$PATH
2. 提醒”ld: library not found for -lobjc”
拷贝以下目录到编译器库中:
1 mv ~/iphone/toolchain/toolchain/sys/System ~/iphone/toolchain/toolchain/sys/System2
2 mv ~/iphone/toolchain/toolchain/sys/usr/lib ~/iphone/toolchain/toolchain/sys/usr/lib2
3 cp ~/iphone/toolchain/sdks/iPhoneOS3.1.2.sdk/System ~/iphone/toolchain/toolchain/sys/
4 cp ~/iphone/toolchain/sdks/iPhoneOS3.1.2.sdk/usr/lib ~/Projects/iphone/toolchain/toolchain/sys/usr/
以上是“Ubuntu上修建iPhone OS3.1.2开辟环境[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |