【越狱开发】在越狱设备下开启iOS Webkit的JIT功能
来源:互联网 发布:淘宝如何批量设置运费 编辑:程序博客网 时间:2024/04/28 15:04
其实很久之前就有越狱工作者研究过iOS的MobileSafari是如何进行 JIT 处理。
原始PDF地址为:http://reverse.put.as/wp-content/uploads/2011/06/syscan11_breaking_ios_code_signing.pdf
其简单原理如下:
JIT的本质是在运行时动态生成Native Code并执行。
这个操作恰恰是App Store所禁止的,因为App Store必须审核第三方程序上传的Native Code,所以iOS系统会通过权限管理对应用程序进行限制。
所做的限制可以简单理解为 “动态生成的NativeCode只能在 某个内存分页上执行”。详情见上面的PDF。
如何在越狱设备上开启第三方应用程序的JIT:
众所周知,MobileSafari是开启了JIT的。我们可以通过 ldid 工具查看其 Code Sign,发现有如下字段:
<key>dynamic-codesigning</key><true/>该字段就是为了告诉系统,该程序有动态代码的需求。
如果我们想将iOS的Chrome开启JIT,那么我们只需参考 http://blog.csdn.net/lucky_06/article/details/8925804 的方法,添加上述entitlement 字段即可。
对于自己build的程序,只要在code sign entitlements 的时候添加上述字段就可以开启。
效率对比:
通过SunSpider测试, http://www.webkit.org/perf/sunspider/sunspider.html
在iPad2上的结果如下:(代表每项平均完成时间,越小越好)
不开启JIT : 7213ms
开启JIT : 1803ms
总体效率差距有3倍之多,Apple真是暴君。
- 【越狱开发】在越狱设备下开启iOS Webkit的JIT功能
- 越狱开发之iOS设备中WiFi信号的开启与关闭
- 使用 Xcode 在越狱 iOS 设备上进行开发调试
- 使用 Xcode 在越狱 iOS 设备上进行开发调试
- 使用 Xcode 在越狱 iOS 设备上进行开发调试
- 使用 Xcode 在越狱 iOS 设备上进行开发调试
- 使用 Xcode 在越狱 iOS 设备上进行开发调试
- LibAhead for iOS - 在未越狱设备上修改三方APP的功能
- 【越狱开发】启动iOS设备上的WebInspector功能进行网页调试
- 【iOS开发】判断iOS设备是否越狱
- 工具推荐 - windows下iOS设备越狱的
- 如何在未越狱的iOS 设备上安装 ipa
- iOS 越狱的Tweak开发
- ios设备越狱
- IOS 设备越狱原理
- iOS设备是否越狱的判断代码
- iOS设备是否越狱的判断代码
- iOS设备是否越狱的判断代码
- Windows驱动程序入门 .
- 字符串循环左移——编程珠玑第二章B
- java的单例
- ASP.NET MVC3禁用页面请求验证
- 忘记密码 密码保护SqlServer备份文件恢复方法
- 【越狱开发】在越狱设备下开启iOS Webkit的JIT功能
- 计算机软考临考前十大注意事项
- 大学毕业第一份工作重要吗?这篇文章读透你就明白了
- 对于飞凌公司的ok6410开发板linux2.6.36内核编译方法
- extern与static
- java中io流下载文件实例
- 多个字段的in 和 not in 及其替代写法(exists,not exists)
- 经典软件设计模型 - 插件模型
- i2c驱动分析