一、底层语言的学习之越狱环境的搭建
自2015年从事,开发以来,没有意识到文章的重要性。作为一个优秀的开发工程师,并不是能完成来自于产品提出的业务代码,而是在完成功能的前提下,要有一定的大局观,一方面的考虑代码业务逻辑的完整性,还要考虑以后的代码的维护成本以及代码的性能!以此看来,对底层原理性东西的掌握还是非常有必要的,于是,从今天我会学习一些底层原理,给自己的一个完整性的底层思维。该文章,将会持续更新.....
在我们学习底层语言之前,我们先来的了解一些必备的学习环境!越狱环境的搭建。
什么是iOS Jailbreak(越狱)?
越狱就是:利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制(合法行为)
1、越狱的优点:
(1)打造个性化、与众不同的iPhone(插件、主题、App、系统App的默认行为)
(2)自由安装非AppStore来源的App
(3)灵活管理文件,让iPhone像U盘一样
(4)为开发者提供了逆向工程环境
2、越狱的缺点:
(1)不予保修、费电、不能及时更新
(2)不在受iOS系统保护,容易收到攻击、个人隐私
(3)系统容易变得不稳定,出现白苹果的状态。
我们知道了越狱的一些优缺点,那么iPhone又该如何越狱呢?
通常是使用:pp助手,http://jailbreak.25pp.com/
注意:要保证他们能进行完美越狱,否则会出现白苹果的情况
我们如何知道你的设备是否支持完美越狱呢?
检查手机是否支持越狱或者完美越狱:http://jailbreak.25pp.com/ios。
越狱查看图.png- 完美越狱
能够正常开关机,且所装App能正常使用。 - 非完美越狱
1、能正常开机,但是部分软件不能使用
2、不能正常重启,一直停留在重启的页面中,也就是所谓的‘白苹果’。
那么我们如何来辨别是否越狱成功?
-
通过pp助手
图片 1.png -
手机桌面是否有Crydia(越狱后的安装软件工具,类似AppStore)
- 代码判定(不同的iOS版本,判定方法会有所不同)
-
根据路径判定(我们知道越狱后,Cydia.app存在)
图片 3.png
根据不同的版本列出越狱后常见文件的不同路径:如下:/Applications/Cydia.app
/Library/MobileSubstrate/MobileSubstrate.dylib
/bin/bash
/usr/sbin/sshd
/etc/apt这个表可以尽可能的列出来,然后判定是否存在,只要有存在的就可以认为机器是越狱了。
-
-
判断cydia的URL scheme
屏幕快照 2019-07-28 下午8.05.20.png -
读取环境变量
这个DYLD_INSERT_LIBRARIES环境变量,在非越狱的机器上应该是空,越狱的机器上基本都会有Library/MobileSubstrate/MobileSubstrate.dylib
屏幕快照 2019-07-28 下午8.07.01.png
注意:关于如何使用代码判定是否越狱
请参考:https://www.cnblogs.com/Rong-Shengcom/p/6385375.html
以上就是越狱的具体的操作。
那么越狱后,该如何进行软件安装呢,那就用到我们之前提到的 Cydia