【Darwin】 越狱后玩耍IPhone系统
玩耍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 <usbmuxd目录>/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.sqlite safira 浏览器的收藏夹数据库存放路径是://private/var/mobile/Library/Safari/Bookmarks.db 日历数据库的存放路径是://private/var/mobile/Library/Calendar/Calendar.sqlitedb
还有这篇文章让我受益匪浅!!【http://www.cnblogs.com/ygm900/p/3461024.html】,闲着无聊的时候可以看看!!
【Darwin】 越狱后玩耍IPhone系统的更多相关文章
- [置顶] 不刷机让越狱后的iphone恢复出厂设置
iphone越狱后,设置里的清除所有内容和设置选项是不生效的,选上之后菊花转个不停,只能强制退出,还有白苹果的危险. 若想恢复出厂设置有两个办法: 一.刷机 最直接的办法,我觉得itunes配合ito ...
- iPhone屏蔽IOS更新、iPhone系统更新的提示(免越狱,有效期更新至2021年)
iPhone屏蔽IOS更新.iPhone系统更新的提示(免越狱,有效期更新至2021年) 1.在Safari浏览器中粘贴如下链接,按提示打开链接. 输入http://apt.dataage.pub 2 ...
- 苹果iphone4s完美越狱后破解4g网络方法
苹果iphone4s完美越狱后破解4g网络方法教程 作者:佚名 字体:[增加 减小] 来源:互联网 时间:01-15 10:07:25我要评论 自从港版iPhone5s/c能够破解移动4G网络后, i ...
- iphone5越狱后问题的解决办法
1,添加各种源失败,显示红字. 解决办法: 如果出现bad 404等红字,一般是由于网络问题,服务器挤爆了,导致不能添加,这种情况大家可以换一个时间段添加源,或者使用网速快一点的网络,比如3g,多试几 ...
- 越狱后的ios如何用apt-get 安装各种命令
越狱后的ios如何用apt-get 安装各种命令 iphone越狱后想玩linux. 1. ssh 客户端:ssh Term Pro. 2. 只装客户端是连不上的,还得一个 ssh connect ...
- ios 7.1 7.1.1 半完美越狱后 电脑訪问手机越狱文件夹的方法
7.1和7.1.1因为越狱不成熟,半完美越狱后电脑上无法訪问系统越狱文件夹,如var usr 等等. 今天有些意外地发现,能够在电脑上使用手机的越狱文件夹我手机 i4 7.1.1 联通 半完美越狱,没 ...
- 【转载】iPhone系统概览
iPhone OS OverviewiPhone系统概览iPhone OS comprises the operating system and technologies that you use t ...
- IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法
IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法 申明: 下面安装PP源的方法已经失效,请不用按照下面的方法操作. 更新最新的方法,在cydia中搜索源 apple fil ...
- iPhone10.3.X越狱后SSH连接不上的问题(已解决)
iPhone10.3.X越狱后SSH连接不上的问题 G0blin RC2,iPhone5s10.3.3 Jailbreak 最近研究了好几天,试了好多的方法. ssh 访问越狱iPhone的两种方式 ...
随机推荐
- Linux 的进程状态
(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态.处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个.在没有其他进程可以执行时(如所有进程都在阻塞状 ...
- Linux下搭建SVN服务器遇到的问题及解决方法,
1.checkout时,提示:URL svn://192.168.1.99/svntest doesn't exist... 奇怪,怎么会提示库不存在呢?肯定是哪里配置问题.后来尝试了半天,也在网上搜 ...
- R语言︱集合运算——小而美法则
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 集合运算的一般规则如下: union(x ...
- Linux 系统裁剪笔记 软盘2
第一步:裁减内核打开终端,输入:cd /usr/src/linux2.4,然后输入make xconfig.现在编译内核正式开始了1.1 "code maturity level optio ...
- R语言︱画图
笔者寄语:不论画啥,你先plot准没错. plot 二维坐标绘图 dotchart 点图 barplot 条形图 hist 直方图 pie 饼图 points 添加点 lines 添加线 text 添 ...
- vxworks下硬盘测速程序
void speed(int buflen,int mod){/*int mod = 0;*/ int len=50; FILE *fp; unsigned int i=0,j=0,tmp,tmp2; ...
- 【mongodb系统学习之九】mongodb保存数据
九.mongodb保存数据: 1).插入.保存数据:insert:语法db.collectionName.insert({"key":value}),key是字段名,必须是字符串( ...
- freemarker报错之十一
1.错误描述 六月 03, 2014 11:00:35 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- 列出JDK中常用的Java包
列出JDK中常用的Java包 1.java.lang 2.java.sql 3.java.io 4.java.math 5.java.text 6.java.net 7.java.util 8.jav ...
- 【原】Spring源码浅析系列-导入源码到Eclipse
用了Spring几年,平时也断断续续在项目里看过一些源码,大多都是比较模糊的,因为一旦从一个地方进去就找不到方向了,只能知道它大概是做了什么事能达到这个功能或者效果,至于细节一般没有太深入去研究.后来 ...