越狱开发整理文档(一)配置theos环境与第一个Demo
刚开始配置Theos环境的时候各种踩坑,装好了又卸载,各种问题,各种尝试之后总结出了一下的方法,也是收集各方大神的资料综合,做一个记录方便以后自己使用也分享给各位。
1.如果有多个Xcode选择一个Xcode路径,只有一个Xcode可忽略此步骤
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
2.下载Theos
export THEOS=/opt/theos 配置环境变量
sudo git clone git://github.com/DHowett/theos.git $THEOS 下载Theos
注:后面使用可能还需要更新Theos
3.下载ldid
http://joedj.net/ldid
复制下载的ldid到/opt/theos/bin
sudo chmod 777 /opt/theos/bin/ldid 给ldid赋权限
4.配置CydiaSubstrate
用iFile连上iPhone,将iOS上
/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate
拷贝到电脑上然后改名为libsubstrate.dylib
拷贝到/opt/theos/lib 中.
5.配置dkpg
sudo port install dpkg
如果是下载的dpkg-deb需要执行 sudo chmod 777 /opt/theos/bin/dpkg-deb 给dpkg-deb赋权限
二、创建Tweak工程
1.cd到某一个自己想要保存的文件夹执行下面语句
/opt/theos/bin/nic.pl
注:这里可能会报错出现Theos过期需要执行git指令,有提示,cd到these文件夹下,然后根据提示输入sudo git submodule update --init --recursive 【命令根据提示粘贴】执行完这句话再回到创建工程/opt/theos/bin/nic.pl步骤
出现下面这个
工程目录NIC 2.0 - New Instance Creator
------------------------------
[1.] iphone/activator_event
[2.] iphone/application_modern
[3.] iphone/cydget
[4.] iphone/flipswitch_switch
[5.] iphone/framework
[6.] iphone/ios7_notification_center_widget
[7.] iphone/library
[8.] iphone/notification_center_widget
[9.] iphone/preference_bundle_modern
[10.] iphone/tool
[11.] iphone/tweak
[12.] iphone/xpc_service
Choose a Template (required): 11 【选择你想要构建的工程类型,这里选的Tweak】
Project Name (required): tweak 【工程名】
Package Name [com.yourcompany.tweak]: com.app.tweak 【包名,相当于bundleId】
Author/Maintainer Name [apple2015]: bean 【作者】
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.apple.spingboard
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: SpringBoard
Instantiating iphone/tweak in tweak/...
Done.
2.修改Makefile
THEOS_DEVICE_IP = 192.168.1.128 【iP改成自己手机的iP,手机和电脑必须在同一wifi下】
ARCHS = armv7 arm64
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = tweak
tweak_FILES = Tweak.xm 【tweak这里的名字是工程名】
include $(THEOS_MAKE_PATH)/tweak.mk
after-install::
install.exec "killall -9 SpringBoard"
3.修改Tweak.xm
#import <UIKit/UIKit.h>
#import <SpringBoard/SpringBoard.h>
%hook SpringBoard
-(void)applicationDidFinishLaunching:(id)application {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome"
message:@"First Blood"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
%orig;
}
%end
注:这里代码的意思是勾出springboard的初始化方法。
之所以勾springboard是因为它是越狱手机一直在后台运行的东西。
4.配置环境变量
export THEOS=/opt/theos/
export THEOS_DEVICE_IP=192.168.1.128 【手机的ip地址】
注:在之后执行make package install命令中出现了tool.mk notfound 或者xx.mk notfound就需要配置这个东西了。
5.打包安装工程到手机
cd 到有makeFile的文件路径下
make package install
也可以分解步骤一步一步走
make
make package
make install
注:如果出现错误,一个可能是刚刚第4步提到的错误,还有一个就是第1步提到的错误,进行相应的修改即可
这里还会提示你输入两次密码,如果手机没有设置过密码的话,就是初始的密码:alpine
执行完成你就等着手机重新加载,然后露出你得意的微笑。
三、小总结
1.如果你安装完成之后发现/opt/theos/vendor/这里面是空的,就说明需要执行第二步骤的第1步注意事项;
2.如果你发现make成功之后还想make 发现报了Nothing to be done for `internal-library-compile,那就把你刚才创建出来的obj删掉和packages删掉 , 然后显示隐藏文件, 你就会发现和obj同一个目录有一个.theos , 吧.theos里面的东西删掉就好了
或者最狠的就是重新开始工程,或者make clean
3.有正向经验的小伙伴可以简单理解为makefile相当于plist文件,Tweak.xm相当于要写代码的工程。
四、开启你的逆向之路吧!!!
注:以上提到的文件如需要下载的可以用我的github下载,好用的话给个start吧。
https://github.com/BeanMan/tweakPackage
参考文章:http://blog.csdn.net/app_ios/article/details/52596230
http://www.jianshu.com/p/3c1d71c880ca
站在巨人的肩膀上才有这些总结
菜鸟走向大牛,大家共同前进,如果觉得不错,请给个赞/关注。
一起交流学习,有问题随时欢迎联系,邮箱:383708669@qq.com