iOS-私有API与runtime
2016-01-01 19:41
309 查看
序
有朋友在做类似iTool的功能,跟我聊起来,这几天闲,就写了一个demo,不是正经做这个,还很粗略,具体干货诸位等这位朋友自己发文吧。
DEMO
https://github.com/liulishuo/testAppList
思路
iOS9白名单的上限是50个,如果想绕过这个限制,扫描系统中所有app的状态,只有使用私有API,需要用到的类有两个:LSApplicationWorkspace、LSApplicationProxy,知道类的名字我们就可以依靠runtime得到这个类,以及这个类的所有方法,OC的方法望文生义,接下来就可以慢慢尝试。
实现
得到LSApplicationWorkspace、LSApplicationProxy
得到类的所有方法与成员变量(编程小翁)
因为函数class_copyIvarList、class_copyMethodList有时不能返回有用的结果,所以我们使用class-dump(有朋友反映xcode7的库导不出来,大家用源码自己build一个吧),导出类的头文件。
导出MobileCoreServices.framework的所有头文件:
-o后面是输出路径 改成你需要的。
MobileCoreServices.framework的所有头文件
LSApplicationProxy
LSApplicationWorkspace
得到app列表
虽然没有注释,但是我们可以猜到这个方法应该可以得到app列表
但是他是实例方法,我们先要拿到一个LSApplicationWorkspace实例
代码如下
遍历app列表
applist里的每一个元素都是LSApplicationProxy 比对其头文件,把对应的属性打印出来研究,
属性略多,不想自己写的朋友,请看我的demo
遍历数组
YY
微信
末
注意groupContainers数组的内容,我们可以拿到group id,可不可以拿到公共存储区的数据呢?
然而并没有,那有没有共享数据的目录呢?
返回值为nil
app不在group.com.tencent.xin这个组内,咱的冒牌货强写是无效的,因为这个标识符已经被正品占用了。
App Groups
还有什么好玩的? 试试这个
workspace 是LSApplicationWorkspace实例,@"XXX"这里填你获取到的applicationIdentifier
模拟器可以正常卸载app,真机不行。
更多API,大家可以自己尝试一下。
有朋友在做类似iTool的功能,跟我聊起来,这几天闲,就写了一个demo,不是正经做这个,还很粗略,具体干货诸位等这位朋友自己发文吧。
DEMO
https://github.com/liulishuo/testAppList
思路
iOS9白名单的上限是50个,如果想绕过这个限制,扫描系统中所有app的状态,只有使用私有API,需要用到的类有两个:LSApplicationWorkspace、LSApplicationProxy,知道类的名字我们就可以依靠runtime得到这个类,以及这个类的所有方法,OC的方法望文生义,接下来就可以慢慢尝试。
实现
得到LSApplicationWorkspace、LSApplicationProxy
导出MobileCoreServices.framework的所有头文件:
MobileCoreServices.framework的所有头文件
LSApplicationProxy
LSApplicationWorkspace
得到app列表
虽然没有注释,但是我们可以猜到这个方法应该可以得到app列表
applist里的每一个元素都是LSApplicationProxy 比对其头文件,把对应的属性打印出来研究,
属性略多,不想自己写的朋友,请看我的demo
遍历数组
YY
微信
末
注意groupContainers数组的内容,我们可以拿到group id,可不可以拿到公共存储区的数据呢?
app不在group.com.tencent.xin这个组内,咱的冒牌货强写是无效的,因为这个标识符已经被正品占用了。
App Groups
还有什么好玩的? 试试这个
模拟器可以正常卸载app,真机不行。
更多API,大家可以自己尝试一下。
相关文章推荐
- IOS中对于一些控件的抖动效果
- iOS 学习(Whereami)
- ios文件和文件夹NSFileManager类
- 淘宝适配iOS屏幕的方案
- iOS 使用ZipArchive压缩文件
- IOS下利用ziparchive解压缩zip文件
- CALayer - 3
- IOS生成二维码、扫二维码
- CALayer - 2
- ios开发经常使用RGB色值
- MAC上安装、配置openfile服务器(ios即时通讯)
- CALayer - 1
- ios沙盒(sandbox)
- IOS xmppFramework 加入黑名单
- iOS 消息推送
- iOS 开发中常用的宏
- 苹果开发者计划那些事儿
- iOS开发学习之多线程
- 蓝懿 ios技术交流和心得分享12.31
- 让iOS保持界面流畅的这些技巧,你都知道吗