体验 iPhone 安装 Android 系统
近期 Corellium 团队发布了一个名为 Project Sandcastle 的项目,这个项目可以在 iPhone 上安装 Android 系统,不过暂时只支持 iPhone 7、iPhone 7 Plus、iPod Touch 7G。接下来我们来亲自操作体验一下 iPhone 上安装和运行 Android 系统的效果。
首先需要使用 checkra1n v9.8.1 以上的版本对设备进行越狱,没操作过的朋友可以参考一下这个教程 https://www.exchen.net/checkra1n-ios-13-jailbreak.html, 装好之后如果没有安装 OpenSSH 请手动安装。
访问 https://projectsandcastle.org/status 下载 "Android Build",下载完成解压后文件内容如下:
连接好设备,执行 setup.mac.sh,如果出错没关系,我们看到 setup_mac.sh 这个脚本里的代码功能实际是调用 iproxy 对 SSH 的端口转发,效果和使用 usbmuxd 是一样的,然后复制 isetup 这个文件到手机上的 /tmp/setup.sh,最后执行 /tmp/setup.sh。我们不执行 setup_mac.sh 自己手动操作效果也是一样,使用 usbmuxd 转发,然后手动执行这两条命令,输入密码后等待操作完成后相当于完成 setup_mac.sh 的工作。
1 2 3 |
scp -P2222 -o StrictHostKeyChecking=no isetup root@127.0.0.1:/tmp/setup.sh ssh -oStrictHostKeyChecking=no -p2222 root@localhost "chmod 755 /tmp/setup.sh && /tmp/setup.sh |
中途会到 checkra1n 下载安卓的镜像文件,如果网络不好的话可能会要半小时以上,请耐心等待。查看 setup.sh 脚本代码,可以找到镜像文件的下载连接是:http://assets.checkra.in/downloads/sandcastle/88b1089d97fe72ab77af8253ab7c312f8e789d49209234239be2408c3ad89a34/nand.gz,
保存的目录是:/tmp/mnt/nand.gz,文件大小有 470MB。setup.sh 在执行过程中,我们可以手动查看 /tmp/mnt/nand.gz 文件大小能知道下载的进度。
将手机重启进入 DFU 模式,然后执行 ./start_mac.sh 即可进入 Android 系统。
进入系统之后,连接 Wi-Fi 上网,打开浏览器能够浏览网站,拍照和摄像不行会闪退,使用起来有点卡,比 iOS 要慢多了,不过凑合下简单操作还可以。使用 adb 命令查看当前设备,CORELLIUM-I7 就是这台设备。
1 2 3 4 |
$ adb devices List of devices attached CORELLIUM-I7 device |
接下来测试 adb shell 可以操作命令,进入 /mnt/sdcard,这个是 sdcard 的目录,文件内容可读可写。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
generic_arm64:/ # cd /mnt/sdcard/ generic_arm64:/mnt/sdcard # ls -al total 0 drwxrwx--x 12 root sdcard_rw 240 2020-03-10 09:22 . drwx--x--x 3 root sdcard_rw 60 2020-03-10 09:22 .. drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Alarms drwxrwx--x 4 root sdcard_rw 80 2020-03-10 09:22 Android drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 DCIM drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Download drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Movies drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Music drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Notifications drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Pictures drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Podcasts drwxrwx--x 2 root sdcard_rw 40 2020-03-10 09:22 Ringtones |
安装 apk 正常,上传文件都正常。
1 2 3 |
adb install ~/Downloads/test.apk adb -s CORELLIUM-I7 push /Users/exchen/Downloads/test.apk /mnt/sdcard/Download |
不过有些 apk 安装时会提示出错:
1 2 |
Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113] |
看起来像是 CPU 架构不匹配,具体原因未知,有可能是系统做的不够完善,希望不久的将来 sandcastle 项目能做的更完善。还是一点注意的是如果手机重启后会进入 iOS,相当于安装了双系统,如果想启动 Android,只需进入 DFU 模式,然后执行 ./start_mac.sh 即可,不过重启后之前上传到 sdcard 的数据会被重置。