记录其中的一些坑点。
一、theos下tweak的作用域问题
通过进一步研究introspy的作用域问题 发现 只用添加com.apple.UIKit则对应用级别app生效
但是 对于系统级别的进程 还是无效 所以对于系统级别的应该进一步研究
hook demo中最终的作用域为
二、theos定制版tweak和应用级别tweak的区别
其中hook是theos定制版的app
hook_demo是开发者的app
区别如下:
1:在应用级别是否可删除 这是表面上的区别
2:theos定制版的app是可以和它的tweak插件绑定在一起的 由于IOS的沙盒机制 即便越狱也无法完全打破
一个沙盒对另一个沙盒的文件最多只能有可读的权限 不能有写的权限 即便越狱也是如此(注意,此处是最多)
所以 如果是应用级别的hook_demo,是无法读tweak插件写入的sqlite文件的
所以要事先tweak产生log的导入 必须要定制自己的系统级别的应用
3:必须要安装Respring插件 如上图
三、preference bundle的实现
https://yohunl.com/ios-yue-yu-de-tweakkai-fa/这里有一种flex嵌入式的applist
可定制化对app的list bundle id的选择
这三个是层层相扣的
app定制->基于app的插件->基于app的preference bundle
app层:
tweak层
preference bundle层
编译如下
四、最终实现
这是详细的log
这是基于每一个app或者说进程的log分类