iPhone可以运行Android了
历史上第一次(经指正是第二次。第一次是十年前)让Android系统运行到iPhone手机上。目前(2020年3月6日)的版本只支持iPhone7/7 Plus。(iOS系统版本无要求)
Project Sandcastle: Android for the iPhone 项目地址:https://projectsandcastle.org/
正好手头有个iPhone7,体验了下。步骤简单总结下,分享给大家。理想的步骤如下,但由于macOS的安全机制,导致步骤2和3不那么轻松愉快。
- 使用checkra1n越狱
- 运行start_mac.sh
- 运行setup_mac.sh
越狱
下载 https://checkra.in/ 按照步骤越狱。(iPhone使用USB连接Mac。)
越狱后,进入iOS。
下载 Android Build
在 https://projectsandcastle.org/status 下载 Android Build。
解压下载的文件。
setup_mac.sh
iPhone使用USB连接Mac。理想情况下,macOS上执行 ./setup_mac.sh
即可。但我执行不太顺利。自带的iproxy和两个动态库的签名首次执行还需要信任。但其实功能就是iproxy的功能,因此下面手动把 setup_mac.sh 中的步骤执行。
可以先ssh连接下iOS,确保手动连接成功。然后参考如下步骤。
(1)
iproxy 2222 44
(2) 把isetup复制到iOS的/tmp/setup.sh
scp -P2222 -o StrictHostKeyChecking=no isetup root@localhost:/tmp/setup.sh
(3) 两个方法:
一是,FQ。或者,修改setup.sh中的网络连接测试的地址,比如专门测试网能不能上的baidu(看来老外也是对应的用google测试啊)
建议使用FQ的方法,因为这个脚本会下载470MB的文件,我家的Wi-Fi不FQ的话,下载这个文件很慢,FQ后貌似几分钟就好了。
(4) 执行 /tmp/setup.sh
进入DFU 模式
- iPhone关机。
- 同时按 音量下 + 关机键,10秒钟(尽量严格的10秒)。
- 松开 关机键,继续保持音量下。
- 此时手机屏幕会保持黑屏,表示进入了DFU模式。
然后在DFU模式下,执行./start_mac.sh
。
理想情况下,执行完成就可以了。但现实很残酷,我见到了下面这个弹窗(内心一万匹羊驼飞奔而过,生怕把手机搞坏了……),当然要点Cancel。
进入 System Preferences -> Security & Privacy -> General, 点 Allow Anyway。
此时还不行,为了预防万一,先命令后执行一次
./load-linux.mac
然后就可以点Open了。
但此时重新执行start_mac.sh
似乎不能”恢复继续”了,内心X#@%$$。“聪明”的我看了下start_mac.sh的代码,看来可以继续执行这一步。
./load-linux.mac Android.lzma dtbpack
终于成功,iPhone上启动了Android系统。
截图
总结
- 运行比较卡。
- 重启就恢复iOS。
还是挺有趣的,视频可抖音搜索 everettjf 查看。
- 微信小程序优秀开发资源汇总
- 编译安装openresty
- hdu 3367(Pseudoforest ) (最大生成树)
- chattr命令
- hdu 1561 The more, The Better (树上背包)
- hdu 1829 A Bug's Life(分组并查集(偏移量))
- 前端游戏编程基础-如何实现Canvas图像的拖拽、点击等操作
- hdu 4081 Qin Shi Huang's National Road System (次小生成树)
- python读取系统信息
- hdu 3948 Portal (kusral+离线)
- linuxmint下pycharm创建桌面快捷方式
- hdu 1811 Rank of Tetris (并查集+拓扑排序)
- Pycharm常用技巧
- hdu 1598 find the most comfortable road(枚举+卡鲁斯卡尔最小生成树)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 7.13论坛常见问题以及解决办法
- 移植SDL到JZ2440显示BMP图片
- Vue图片验证码-自定义组件高级版
- Angular页面调试一个有用的小技巧 - normalizeDebugBindingName和normalizeDebugBindingValue
- 19个JS超有用的简写技巧
- 【教程】移植web server到Ubuntu就是这么简单!
- 为什么采用Proxy重构响应系统 | Vue3源码系列
- 制作Linux嵌入式系统开机LOGO(图片)
- R语言奇淫巧技之pdftools包
- 14个Spring MVC超实用技巧!
- 想要成为前端Star 吗?一首歌时间将React / Vue 应用Docker 化
- 初识Pandas
- 【教程】从零制作文件系统到jz2440,使其支持telnet , ftp 和tftp
- Mybatis源码学习第六天(核心流程分析)之Executor分析
- EasyPoi导出Excel