流程
- 创建一个新的IOS项目
- 编写简单的测试代码
- 导出命令工具
- 给命令工具添加权限(加签)
- 把制作好的命令工具拖到越狱手机中的/usr/bin/ 并添加可执行权限
- 测试我们自己的命令工具
实现
1.创建一个新的IOS项目
1.创建新项目.jpeg2. 编写简单的测试代码
-
删除 以下文件
AppDelegate.h,
AppDelegate.m,
SceneDelegate.h,
SceneDelegate.m,
ViewController.h,
ViewController.m,
Main.storyboard,
Assets.xcassets,
LaunchScreen.storyboard
2.删除多余的文件.jpeg -
修改main.m文件中的代码如下所示
3.编写main函数代码.jpeg
#import <UIKit/UIKit.h>
int main(int argc, char * argv[]) {
@autoreleasepool {
printf("argc:%d\n",argc);
printf("argv:%s\n",*argv);
printf("这就是一个简单的命令行工具\n");
return 0;
}
}
3. 导出命令工具
1 编译应用程序
2 找到MyterminalTools.app包
3 显示包内容
4 拷贝包中的MyterminalTools 文件到 越狱手机的Device/usr/bin/ 目录中
5 给 MyterminalTools 添加可执行权限
chmod +x MyterminalTools
4. 给命令工具添加权限(加签)
- 添加权限的工具ldid
- 导出一个可执行文件的权限
# 这个是倒出可执行文件 MyterminalTools 的权限 覆盖到 MyterminalTools.entitlements 文件中
ldid -e MyterminalTools > MyterminalTools.entitlements
# 这个是倒出可执行文件 MyterminalTools 的权限追加 到 MyterminalTools.entitlements 文件中
ldid -e MyterminalTools >> MyterminalTools.entitlements
# 把权限MyterminalTools.entitlements 签给可执行文件 MyterminalTools
ldid -SMyterminalTools.entitlements MyterminalTools
- 找到SpringBoard 可执行 文件
# ps -A | SpringBoard
路径:/System/Library/CoreServices/SpringBoard.app/SpringBoard
- 导出SpringBoard 可执行文件的权限并给我们的可执行文件添加 导出的的这个权限
# 把SpringBoard 的权限文件导入到 SpringBoard.entitlements 文件中
ldid -e SpringBoard > SpringBoard.entitlements
# 把SpringBoard.entitlements权限 赋给MyterminalTools 可执行文件
ldid -SSpringBoard.entitlements MyterminalTools
- 把制作好的命令工具拖到越狱手机中的/usr/bin/ 并添加可执行权限
chmod +x MyterminalTools
- 测试我们自己的命令工具
第一条命令:MyterminalTools
第二条命令:MyterminalTools -l
第三条命令:MyterminalTools -l -s
5.测试命令工具.jpeg
网友评论