禁止 iPhone 连接 Wi-Fi 时弹出 Log In

iphone

今天升级 iPhone 出了一些问题,都说 iPhone 3.0 问题多多,所以 VPSee 耐心等到了 3.1 出来,没想到还是碰到了问题,而且问题很严重:不能正常用 Wi-Fi 上网。每次连接 Wi-Fi 或者打开 Safari 的时候都会自动打开一个 Log In 页面,然后这个 Log In 页面自动把网页导向 www.apple.com,如果这个时候 cancel,就会断了 Wi-Fi 的连接,导致上不了网;如果不 cancel,就一直停留在 apple 主页,不能切换网址,没有地址栏可以输入。上网查了一下,很多人都遇到这个问题,原因是 iPhone 3.0/3.1 引入了一个 log in overlay,本来 iPhone 做这个 log in overlay 是为了更方便的连接 Wi-Fi,现在居然成了一个麻烦,导致连接不上某些使用了 captive portal 的 WiFi 路由器,总是先自动启动一个页面连接 captive portal,这个 captive portal 老是连接 apple.com.

根据 Disable iPhone 3.0 Hotspot login on jailbroken iPhones 这篇文章介绍的方法,只要进入 iPhone 后修改 /etc/hosts 文件就可以了。所以只需要下载 PwnageTool_3.1 工具破解(jailbreak)手机,安装上 OpenSSH 服务器,用 ssh 登录到 iPhone 修改文件就可以了。

又遇到一个问题,iPhone 不能用 Wi-Fi 上网,又没有 ftp/ssh/telnet 服务器,如何安装 OpenSSH 服务器呢? VPSee 偶然发现在 iPhone 从 sleep 状态 wake up 后会弹出选择 WiFi 网络的对话框,选择一个网络后会启动 Safari, 然后大概过5秒钟左右的会启动那个烦人的 Log In 页面,所以趁着那难得的5秒抓紧时间在启动 Log In 页面前找到并下载 OpenSSH 就可以了,幸好页面有保存,5秒做不完的事下次 wakup 的时候可以再做5秒,就这样一点点下载安装 OpenSSH Server,那个累啊~~,后来才发现其实可以使用 3G 下载,用不着这么累:(

OpenSSH 装好后就好办了,Mac 直接 ssh 到 iPhone,root 默认密码为 alpine,iPhone 上还没装 vi,连 nano 都没有怎么编辑 /etc/hosts 呢?幸好要修改的东西不复杂,用 echo 在文件末尾增加一行就可以了:

# ssh root@iphone-ip-address

# echo "0.0.0.0 www.apple.com" >> /etc/hosts