1、新建tweak项目
新建一个存放tweak项目的文件夹,例如命名为tweak,终端进入tweak文件夹输入:
$ nic.pl
NIC 2.0 - New Instance Creator
------------------------------
[1.] iphone/activator_event
[2.] iphone/activator_listener
[3.] iphone/application_modern
[4.] iphone/application_swift
[5.] iphone/control_center_module-11up
[6.] iphone/cydget
[7.] iphone/flipswitch_switch
[8.] iphone/framework
[9.] iphone/library
[10.] iphone/notification_center_widget
[11.] iphone/notification_center_widget-7up
[12.] iphone/preference_bundle
[13.] iphone/preference_bundle_swift
[14.] iphone/theme
[15.] iphone/tool
[16.] iphone/tool_swift
[17.] iphone/tweak
[18.] iphone/tweak_with_simple_preferences
[19.] iphone/xpc_service
[20.] iphone/xpc_service_modern
Choose a Template (required):
选择iphone/tweak:17 回车
Project Name (required):
以喜马拉雅为例:tweak_ting 回车
Package Name [com.yourcompany.tweak_ting]:
以喜马拉雅为例:com.xl.ting 回车
Author/Maintainer Name [mxl]:
默认是用户名:回车
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:
以喜马拉雅为例:com.gemd.iting 回车
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]:
默认重启SpringBoard:回车
Done.
当输出Done.时,代表新建完成!
获取App的BundleId可以通过mjcript:cy# MJAppId 也可以使用脱壳工具:$ python3 dump.py -l
2、编写tweak代码
2.1、编辑Makefile
在Makefile中添加环境变量,写清楚通过哪个IP和端口访问手机:
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=10010
由于现在采用usb的方式连接,所以ip是本机ip127.0.0.1,端口是映射的10010端口
如果不希望每个项目的Makefile都编写IP和端口环境变量,也可以添加到用户的配置文件中(推荐):
$ vim ~/.zprofile
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=10010
编辑完毕如果需要立即生效需要终端输入:$ source ~/.zprofile 或重启终端
2.2、编写代码
打开Tweak.x文件,编写tweak代码,结构一般如下:
// 需要hook的类
%hook XXXClass
// 需要hook的方法
- (id)XXXFunction {
return nil;
}
// hook结束
%end
2.3、多文件开发
如果调整了Tweak.x文件路径,比如放在新建的src文件夹下,需要调整Makefile中的tweak_wechat_FILES:
tweak_wechat_FILES = src/Tweak.x
如果添加了一些其它文件需要编译,也可以使用通配符进行配置:
tweak_wechat_FILES = src/.x src/Model/.m src/View/.m src/Controller/.m
在导入头文件时也需要添加所在路径:
#import "Model/MyModel.h"
3、编译、打包、安装
编译:$ make
打包:$ make package
安装:$ make install
执行安装命令后,插件就会被安装到iPhone上并重启SpringBoard。终端支持使用 && 合并命令,可以在用户目录下创建一个tweak.sh文件,写入命令:
make clean && make package debug=0 && make install
之后打包可以在终端直接输入:$ sh ~/tweak.sh
make package 包含 make 操作 发布release版本:$ make package debug=0
4、卸载插件
4.1、Cydia卸载(推荐)
4.2、手动卸载
找到 iPhone上的 /Device/Library/MobileSubstrate/DynamicLibraries/ 路径下的 tweak_ting.plist 和 tweak_ting.dylib 删除即可。