UPDATED 2011 年 05 月 06 日更新:修改部分文字,并增加两个小工具。

UPDATED 根据 2010 年 10 月 25 日 blog 更新而成,标记 UPDATE 以及用注销线划去的这次更新的改变,其他是原文。

由于某些事情导致这两天情绪不是太好,根据经验,这种时候要么去花钱要么找点蛋疼的事情来干——于是决定把我的 iPhone 4 越狱了。。。

用 limera1n 来越狱,虽然 geohot 做事很小P孩,但是技术确实没得说,越狱很快很顺利就完成了,也不需要备份恢复,这是比 PwnageTool 好的地方。越狱完成点击新出现的 limera1n 应用图标进去安装 Cydia,这一步需要翻墙;安装完 Cydia 就可以删掉 limera1n 了。注意 limera1n 和 Cydia 都提供了兼容 iPhone 4 的高分辨率图标,某些收费应用的开发者迟迟不肯更新真该汗颜。

UPDATED 目前最好的越狱选择是 Dev-Team 的 redsn0w,支持除 iPad 2 之外所有较新设备和和最新的 iOS 4.3.* 版本。

久违的 Cydia 图标意味着我们得到了 iPhone 的 root 权限,也打开了无限可能之门。对于坚持走正版路线的人来说,越狱能带来什么呢?答案是:增加水果死活不肯加的一些功能,改掉水果设定的一些令人不那么喜欢的缺省特性。

修改系统用户密码

  1. 进入 Cydia,安装 OpenSSH(会自动安装 OpenSSL 包);
  2. 用 SSH 登录到 iPhone,可以用 IP(可以在网络设置里看到)也可以用手机设备名;
  3. 缺省登录名和密码是 root/alpine 以及 mobile/alpine;
  4. 使用 passwd 命令修改这两个系统用户的密码;
  5. 最后习惯性的修改一下 /etc/profile。

以后就可以随时用 SSH/SFTP 登录到 iPhone 为所欲为了。。。

添加第三方 Cydia 源

我们知道,很多有用的工具都来自一些第三方的 Cydia 源,下面就是我用到的几个第三方源(括号里是相关软件),其中前几个是我必装的,最后两个可选:

  • http://kuaidial.googlecode.com/svn/deb (KuaiDial)
  • http://cydia.myrepospace.com/wiim (WI-InputMethod)
  • http://beta.notifiedapp.com/ (Notified 2 Beta)
  • http://phajas.xen.prgmr.com/repo (MobileNotifier)
  • http://gfwinterceptor.googlecode.com/svn/trunk/cydia (gfwinterceptor)

好了,可以开始安装软件了。

SBSettings

不可或缺的系统工具,能够在不切换上下文的情况下调整系统开关。除了主程序外,我还装了这些开关插件:SBSettings Autolock SBSettings VPN Toggle。另外目前版本的 SBSettings 自带的显示主题都还不支持 Retina Display,所以我又去 Cydia 找主题,免费的 Serious SBSettings HDAfterHours-HD 还可以,要是不差钱,售价 2 美刀的 iRetina 更加干净和漂亮。

UPDATED VPN toggle 已内置到 SBSettings 中,不需要再额外安装插件。

Notified Pro

iOS 里最糟糕的设计是什么?恐怕就是那个通知机制,它会打断当前操作,不可堆叠,不可事后查看,总之各种粗暴和不方便。

售价 $2.99 的 Notified Pro 彻底颠覆了 iOS 本身的通知机制,它拦截所有的通知并提供灵活的处理接口Notification GriP 则是为 Notified Pro 编写的免费插件,也是 Notified Pro 到目前位置最优雅、灵活和强大的显示前端。以前因为怕烦关掉的通知们都打开吧,Boxcar 也只管用起来吧!

UPDATED Notification GriP 目前版本做得不太好看,还不如新的 Notification Bar for Notified,所以我现在推荐装简单的后者。

关于这两个东西的设置,有几点说明:

  • Notified Pro 装好之后会有个应用图标,点击进去可以看所有历史通知,也可以进行设置。设置里最重要的两个:一个是 Manage Alerts,可以用来关闭缺省的通知弹窗;另一个是 Manage Redirections,可以设置点击消息时启动的应用,比如我用 Boxcar 来接受 Twitter 通知,但是点击并不希望打开 Boxcar 而希望打开 TweetList,就在这里设置。
  • Notification GriP 装好后没有界面,但是在系统设置里会有一个设置项,里面可以设置通知显示的具体方式,比如弹出方向、自动消失时间、多消息显示,等等。Notification GriP 支持两个显示,一个是通知来的时候显示的小窗口,看完就关,也可以设置自动关闭;另一个是历史记录列表(见上面图),采取类似 SBSettings 的弹出方式,点击消息可以打开应用程序。它还会在状态栏显示类似 Android 系统那种小图标告诉你有未读通知。
  • 同样在系统设置里还会有一个叫做「Activator」的选项,这是一个通用接口,可以设置在 iPhone 各种上下文里进行某种手势操作(例如双击状态栏、向左或者向右划过状态栏等等)激活什么程序,SBSettings 和 Notified Pro 都支持这个接口,所以可以在这里设置激活这两个程序的手势。我习惯用状态栏上左右划过打开 SBSettings,双击状态栏打开 Notified Pro 的历史记录。

UPDATED Notified Pro 有个非常讨厌的问题,就是它会在屏幕顶端使用自己的一个小小的条来覆盖缺省的 status bar 显示,平常看不出来,但是在某些全屏应用中会显示一个白色条,难看得很,作为视觉完美主义的我完全无法接受,好在最新的 beta 版本已经解决了这个问题,该版本还有不少其他的增强和改良,只要按照本文开始部分的说明添加了相应的 repo source,那么搜索 Notified 安装的就是最新的 beta 版本。
另外类似的工具还有个比较简洁且开源的 MobileNotifier,功能比 Notified 差不少,但是简单,问题也少些,也可以试试。

中文输入法

UPDATED iOS 自带的中文输入法是一直在不断改进的,也比最开始的好多了,但是还是有些问题,比如跟随光标的选词条经常带来古怪的兼容性问题和误操作,另外 T9 笔画输入也是个很好的东西,但是系统本身不支持,等等。目前最喜欢的是哈工大开发的 WI-InputMethod,这是一个和内置输入法看上去很接近的输入法,主要是加入了按键智能纠错(类似 Android 上的触宝输入法),干净,有效。

其他

最后的是最好的,其实这些小插件才是我越狱的主要驱动力。。。

  • gfwinterceptor 是推友 @overboming 开发的 iPhone 上的透明代理软件,利用它能够使本来不支持代理的应用也能访问受限资源,配合对应的服务端(目前有基于 PHP 和 GAE 的两个版本),提供了目前兼容性最好、配置最简单的解决方案。
  • KuaiDial 是另一位国内开发者 exu 开发的系统增强插件,极大的弥补了内置的电话、短信应用的不足,支持通话记录单条删除,支持 T9 智能拨号,支持来电归属地及网络运营商显示,接通震动提醒、通话时间提醒,还有一个简单易用的来电防火墙。
  • Location Fix 是国内威锋论坛开发组开发的一个小插件,作用是修正国内 Google Map 的地图偏移问题,简单有效。

UPDATED 自从使用了 12vpn 的 On Demand IPSec VPN 之后,gfwinterceptor 就不用了;iOS 4.3 之后地图偏移已经修正了,Location Fix 也无意义了。

还有两个名气很大也很牛X的软件,一个叫 MyWi,一个叫 My3G。前者可以把 iPhone 变成一个 Wi-Fi 热点,让电脑或者 iPad 之类的设备共享其 GPRS 或者 3G 网络;后者可以修改系统限制,在 3G 网络下也能进行 FaceTime,准确的说它就是欺骗系统说 3G 网络是 Wi-Fi -_-bb 这俩都是收费软件,前一个更是贵到 $19.99,我暂时用不到,就没装了,有兴趣的朋友可以玩玩。

另外,App Stat 可以跟踪你使用应用的频度、时长,属于比较有趣的玩具;OpenNotifier 可以为你的状态条增加一些有用的状态 icon,有兴趣也可以试试。

UPDATED iOS 4.3 提供了个人热点功能,支持最多3个设备接入,所以一般来说 MyWi 意义已经不大了。