玩耍IOS系统
大家都知道IOS是自Mac OS修改而来的。而Mac OS和IOS的共同核心是Darwin,其基于FreeBSD发展而来,整体而言也是个类Unix系统。之前把自己的手机越狱之后正好开始接触Linux这类OS,然后觉得很有意思就去网上找了些资料来自己玩自己的手机,也做了一些笔记。说来惭愧,当时手机系统版本还是8.3。而后来也因为没什么时间加上这部分笔记维护在另外一个笔记本上,导致一直没有时间记录下来【捂脸】。本来想等10.3的越狱出来,把Pad越狱之后再来详细研究的,无奈10.3越狱也迟迟不出,不得已,只好现在来记录一下了。。
没有什么干货的技术知识,全部都是一点个人的爱折腾手机的小兴趣,系统版本又老。。嗯就这样吧。
■ 第一步
IPhone越狱后,第一标志当然就是在桌面上看到了Cydia。作为折腾手机的第一步,当然是要让手机有本地命令行来装逼了hh。如果没记错的话,几年前越狱的时候还是会附带一个命令行工具的,现在好像必须得自己下载安装了。进入Cydia,搜索安装MTerminal这个命令行工具。其他也有一些命令行工具比如mobileTerminal什么的,不过那些好像都已经过时了,新系统们都打不开。打开MTerminal默认用户是mobile,退出时自动也会退出这个用户,不用担心用户进程会留存在机器上。还有一点比较有意思的是MTerminal的非键盘区域,点击靠上下左右的边部区域就像是键盘上按上下左右方向键,所以可以进行退格和重复上条命令等操作。至于Tab键自动补全命令什么的操作至今还未发现。。
有了命令行,但是在手机上敲命令太蛋疼了,我们最好能通过电脑连入手机,这样方便多了。第一个想到的当然是通过SSH。在Cydia安装openSSH,之后就可以通过22端口远程连接手机了。一般可以直接用root用户连入手机,进入之后的第一件事
【重要】千万要记得改root账户的密码,所有越狱后的IPhone手机root用户的默认密码都是一样的!!!都是alpine!不马上改掉,那随便什么人都可以直接连入你的IPhone,你就没有任何安全可言了【重要】
改完密码之后,就可以对字符界面的IOS做一些改造让它看起来更像是一台服务器了w。
■ 适当改造
首先可以在/etc/profile中加上对环境变量PS1的定义,这个变量决定的是字符提示行的样式。这个文件是什么作用在Linux笔记中说过了,就不说了,样式可以选择'[\u@\h \W]\$'这款。在文件中加上export PS1='[\u@\h \W]\$'即可。
默认的ls命令出来的文件没有任何颜色特效,看起来很累。可以加上LS_COLORS这个环境变量,至于具体的值怎么写可以参见已经配置好的CentOS系统等等,我这里给出一个参考:
export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;35:*.exe=01;35:*.com=01;35:*.btm=01;35:*.bat=01;35:*.sh=01;35:*.csh=01;35:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:'
在设置好了配置文件之后source之以生效,至于ls的颜色,如果还是没有效果记得看一下ls有没有默认alias ls='ls --color',必须带上color参数ls才会显色。
忘记了系统是否自带了vim程序,应该是没有,那就需要安装。vim的样式文件vimrc不放在/etc/vimrc,而是放到/usr/share/vim/目录下面去。
■ 常用工具安装
在CentOS上习惯了用yum安装包,但是这里没有yum,只有apt-get。用法是类似的:
apt-get install <包名> 安装某个包
apt-get update 更新apt源(是不是有点眼熟,其实估计Cydia里面的更新源就是运行了下这个命令)
apt-get remove <包名> 卸载某个包
在update过后,apt会把所有更新到的包信息放到缓存里面,如果想要从最新的包信息中搜寻某个特定的包可以执行:
apt-cache search <包名> 这条命令用的还是模糊搜索,可以帮助你寻找想要装的包名到底叫什么。由于一般人记的肯定是命令名而不是包名,所以下面给出的是一些命令和它们所在包的名字。如果想用这些命令就apt-get install这些包把:
ifconfig,netstat,route network-cmds
curl cURL
top top
wget wget
finger,last,ps adv-cmds
vim vim
locate mlocate
lrz,lsz(命令名和linux上略有出入,linux上是直接rz,sz,这里多个l) org.thebigboss.lrzsz
gcc iphon-gcc
less less
这里稍微提醒一句,如果通过SSH经电脑连入手机操作,虽然是在电脑上打命令,不过网络走的还是手机的路,所以要注意手机别开4G跑流量了。。
另外装了一个新包之后不知道有什么用或者怎么用时可以到手机端Cydia--已安装--<包名>里面,划到最下面的文件系统内容中,看这个包具体安装了的哪些文件,有什么文件被安装到了/usr/bin这种目录下,那个文件自然就是一个命令了。
■ 一些酷酷的事情
上面装的一些东西都是管理机器必须的,实用的工具。还有一些比较花哨,适合用于装逼的工具。比如下面:
● 远程打开程序
bigboss源上有个叫做open(com.conadkramer.open)的插件,装上之后可以在SSH里输入open <APPID>命令来远程让手机打开一个APP。APPID是每个APP目录下的plist.xml文件中记录的CFBundleIdent.fier的值,比如safari的话就是com.Apple.mobilesafari,系统自带的音乐的话就是com.Apple.Music。
● netstat
netstat -ntlp在这个系统里不管用,要用只能用netstat -an。而-p在这里的netstat是protocol的意思。所以你可以netstat -ntlp TCP来显示所有TCP连接的情况。
● 安装python
Cydia中搜索一下Python,似乎可以找到一个python2.5.1版本的包,虽然老了点,但是勉强凑合可以用。至于用源码进行安装我没有试过,估计也可以吧。装上python之后就可以更加剧烈地折腾手机了。比方说为了安全性考虑,我的手机平时都是关闭22端口的,想要开启的时候再开。于是就写了一个python脚本,做成命令来手动开关22端口的访问。
● 启停服务
其实上面说的那个python脚本就是调用了启停服务的命令。在/Library/LaunchDaemons和/Library/LaunchAgents下面有很多跟服务相关的plist文件。LaunchDaemons指系统启动时自动启动的程序,而LaunchAgents中存放的是针对某个用户登录时自动启动的程序的配置。
想要启动或停止一个服务,可以这么操作:
launchctl load/unload -w <plist的路径>
因为指定了plist文件的路径,所以plist文件未必一定要在那两个指定目录下,完全可以拷贝出来然后自己手动指定它的路径以启动。
● 媒体和APP文件的位置(系统版本比较老,估计新版本系统已经有变化了)
自带播放器的音乐和视频文件都放在/private/var/mobile/Media/ITunes_Control里面,但是文件名是被点窜过的,要用一定的手段来定位寻找特定的文件。(比如看大小,看修改日期,MP3文件的话还可以解析其标签来判断是什么歌等等)
用户的APP的文件基本上都放在/private/var/mobile/Container/Data/Application/<一个被点窜过的目录名>。因为目录名是一串没有规律的,很难定位哪个目录对应哪个APP。办法还是有的,比如可以通过脚本把每个目录的大小算出来,然后比较一下手机里的信息。还有定位特定的文件等等,方法就靠灵活自己想了 。
■ 如何通过usb直接连接系统后台
上面连接进IOS系统都是通过了WIFI这个媒介。虽然方便一些,但是存在速度稍慢,安全性有疑问等问题。其实我们可以通过一些手段通过USB来模拟SSH连接,这样通过一条数据线,即使没有WIFI也可以做到连接系统了。
做法是首先确保系统中有合适的驱动。Mac之类的机器就不用说了肯定是有的,像没有装itunes的windows机器的话可以下载安装AppleApplicationSupport和AppleMobileDeviceSupport这两个驱动程序,只要有这两个就行,也不用安装整个庞大的itunes了。
然后,我们下载一个名叫【usbmxud】的工具。这个百度一下就能下载到了,然后在命令行运行一下这个工具中的一个脚本:
python/python-client/tcprelay.py -t 22:10022
然后这个程序就会在PC端开启本地的10022端口,并把这个端口映射到IOS端的22端口。只要IOS开了22端口,就可以在本地通过工具ssh连接10022端口就可以了。
同理,不仅限于22端口,其他任何IOS上的端口都可以进行映射。非常好用。
■ IOS上一些重要文件的位置等
【http://www.cnblogs.com/ygm900/category/538781.html】这位大神的博客还挺有参考价值的。
短信数据库的存放位置在ios的: /private/var/mobile/Library/SMS/sms.db 联系人数据库存放的位置在ios的://private/var/mobile/Library/AddressBook/AddressBook.sqlitedb 联系人的头像估计存放在这里://private/var/mobile/Library/AddressBook/AddressBookImages.sqlitedb通话记录数据库的存放路径是://private/var/wireless/Library/CallHistory/call_history.db备忘录数据库的存放路径是://private/var/mobile/Library/Notes/notes.sqlitesafira 浏览器的收藏夹数据库存放路径是://private/var/mobile/Library/Safari/Bookmarks.db日历数据库的存放路径是://private/var/mobile/Library/Calendar/Calendar.sqlitedb
还有这篇文章让我受益匪浅!!【http://www.cnblogs.com/ygm900/p/3461024.html】,闲着无聊的时候可以看看!!