最近公司要我研究越狱开发,第一步当然是搭建开发环境。
现在已经搭建成功了,写个帖子贴出来,分享给大家的同时也加深自己的映像。
首先我是参考的以下这篇文章:
http://blog.csdn.net/lynjay/article/details/7936488
首先需要准备以下工具
1、安装MacPorts 。官方链接:http://www.macports.org/ ,安装完后记得更新index
2、用MacPorts安装DPKG,在你电脑终端里输入命令“sudo port -f install dpkg”,在我本本上安装很快,但在一体机上安装很久,这个主要是用来打包成.deb文件用了。
3、安装Theos,github下载地址:https://github.com/DHowett/theos ,下载后解压到/etc/Theos
4、安装iOSOpenDev,官方下载链接:http://iosopendev.com/
安装过程中可能会遇到问题,解决方案请见此链接:https://github.com/kokoabim/iOSOpenDev/wiki/Troubleshoot
5、搜索~/.bash_profile
, ~/.bash_login
or ~/.profile
. 这3个文件你在你电脑中看是否能找到,我是找到的是~/.bash_profile
这个文件,然后设置下面的环境变量我的设置如下
##
# Your previous /Users/yourUserName/.bash_profile file was backed up as /Users/yourUserName/.bash_profile.macports-saved_2012-11-13_at_17:11:20
##
# MacPorts Installer addition on 2012-11-13_at_17:11:20: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
export iOSOpenDevPath=/opt/iOSOpenDev
export iOSOpenDevDevice=
export PATH=/opt/iOSOpenDev/bin:$PATH
export THEOS=/opt/theos
6、在你越狱的手机设备上安装OpenSSH
在设备上安装OpenSSH并且在设备上添加SSH签名.在Cydia里搜索OpenSSH安装.建议更改SSH的默认密码,默认密码是:alpine.更改方法是在Mac上登陆设备的SSH.命令”ssh root@<设备IP>”.登陆后输入命令”passwd root”.输入新密码,注意是密文.
给SSH添加签名,在Mac的Terminal里输入”iosod sshkey -h <设备IP>”,中间问你是否继续,选yes.如果期间失败了重新试下.
7、然后就用xcode建立工程了,可以再xcode工程模板中看到有iOSOpenDev的模板,选一个吧,我选的是ActivatorListener模板,起名字叫background,这个模板要求开发者手动添加一个dylib到工程,按照给出的路径找到它并加到工程就ok了。
在工程的target-》build setting里面找到iOSOpenDev的参数配置部分
- iOSOpenDevCopyOnBuild 布尔值YES/NO 默认是NO,是否把生成的可执行文件拷贝到/var/root/iOSOpenDevBuilds/[project name]/[executable name] 路径下.是为了方便那些远程SSH控制的程序,可能暂时用不到.
- iOSOpenDevDevice 设置你设备的IP.
- iOSOpenDevInstallOnProfiling 布尔值 默认为YES, 是否在build for profiling的时候直接远程安装到设备上.
- iOSOpenDevPath 不要修改此项,是iOSOpenDev的安装路径.
- iOSOpenDevRespringOnInstall 布尔值 默认为YES,是否在安装后重启SpringBoard.
iOSOpenDev默认安装在/opt/iOSOpenDev里,在里面可以找到undocument api的头文件.
编译的时候不能像正常的App点Run,点击Product->Build For->Build For Profiling.配置好上面的设备IP,程序会自动安装到设备里.
ok,走到这一步了,Build For Profiling刚刚建的ActivatorListener模板app,发现报错了
提示信息如下:
ssh_askpass: exec(/usr/libexec/ssh-askpass): No such file or directory
Permission denied, please try again.
几经波折,在下面的连接中找到了答案:http://blog.retep.org/2009/04/09/ssh-askpass-on-osx-10-5/
//自己建个名为ssh-askpass的脚本放在/usr/libexec/目录下
//内容如下,保存推出vim,为其添加权限
sabrina:~ peter$ sudo vi /usr/libexec/ssh-askpass 02 #! /bin/sh 03 04 # 05 # An SSH_ASKPASS command for MacOS X 06 # 07 # Author: Joseph Mocker, Sun Microsystems 08 09 # 10 # To use this script: 11 # setenv SSH_ASKPASS "macos-askpass" 12 # setenv DISPLAY ":0" 13 # 14 15 TITLE=${MACOS_ASKPASS_TITLE:-"SSH"} 16 17 DIALOG="display dialog \"$@\" default answer \"\" with title \"$TITLE\"" 18 DIALOG="$DIALOG with icon caution with hidden answer" 19 20 result=`osascript -e 'tell application "Finder"' -e "activate" -e "$DIALOG" -e 'end tell'` 21 22 if [ "$result" = "" ]; then 23 exit 1 24 else 25 echo "$result" | sed -e 's/^text returned://' -e 's/, button returned:.*$//' 26 exit 0 27 fi 28 sabrina:~ peter$ sudo chmod +x /usr/libexec/ssh-askpass
做完以上工作,再来Build For Profiling刚刚建的ActivatorListener模板app,输了无数次的ssh密码之后,终于,这个叫background的东东纵欲被安装在了我的越狱手机上了,但是到底安装在哪了呢?我如何执行它?
在ios设备的桌面找到Avtivator这个app,点击进去-》任意位置-》单指手势-》从屏幕底部-》然后你就会看到一个叫background的玩意儿。选中它。
相信你已经猜出来了,“任意位置-》单指手势-》从屏幕底部-》”是你要启动background动作,意思就是一根手指从屏幕底部向上拖动,然后就会启动background。
ok,就写到这儿。
越狱后的IOS和linux相差无几,必须要好好学习linux啊。
我的最终目标是要实现IOS一开机就启动我的app,如果有大神知道,希望能留言指点指点。
如果发现上述文章有错误的地方也欢迎指正。
欢迎转载,保留出处!