iPhone向来采用封闭的生态系统,在一般情况下只允许由官方App Store安装App,也不允许安装旧版iOS操作系统,更是禁止自行安装第三方操作系统、Rom,让手机只能安装「越来越肥大」的新版iOS。现在Project Sandcastle的出现一改这个问题,让iPhone能够安装并执行Android操作系统。
解决电子垃圾问题
每当Apple推出新版iOS时,大家最常讨论的话题不外乎新版系统是否比较耗电,或是操作流畅度是否受到影响,虽然先前UL(原Futuremark)就透过透过iOS版3DMark验证过新旧版iOS对效能测试的成绩几乎没有影响,但也解释因为新功能可能占用较多系统资源,或是为新装置设计的App无法流畅地在旧装置上运作,以及App是针对旧版本iOS最佳化等原因,造成体感效能低下的状况。
而有些新功能或App需要在新版iOS才能运作,所以使用者可能因此将iOS升级至最新版,然而受限于Apple对iOS采「只升不降」的管理策略,一旦使用者更新iOS之后就不能降回旧版,所以日后如果觉得操作不流畅的话,也无法再降级回到旧版iOS。
虽然目前已经有手法能破解iOS的降级限制,但来自虚拟化技术公司Corellium的开发团队则是采取更极端的做法,推出Project Sandcastle,着手开发支援iPhone的Android操作系统,希望能透过较为轻省的Android延长老旧装置的使用寿命,进而达到减少电子废弃物的目标。
一波三折的冒险旅程
Android是款具有相当弹性的操作系统,完成系统底层的Linux核心并不是太困难的工作,但是要搞定驱动程式可就让人头大了。Corellium凭借着在虚拟化领域厚实的技术与经验,完成了在虚拟机器上启动系统核心的任务,并可做为开发过程的除错平台。
接下来就是要考虑如何读出系统资料,团队参考了Samsung S3C系列SoC中的UART设计,并在修改后完成UART介面,接着自行开发了SPI控制器、模组的驱动程式。
接下来遇到的问题,是iPhone使用的SoC采用非标准的AIC中断控制器,与AArch64(64bit Arm架构)使用的Arm GIC并不相同,而且计时器中断(Timer Interrupt)的运作方式也不相容,因此开发中断控制器驱动程式又是个繁重的任务。
在完成一连串的Linux核心开发之后,开发团队接着进行Android的移植工作,他们解决了虚拟记忆体页面、系统不支援32bit程式、缺少触控屏幕与Wi-fi无线网路驱动程式等问题,开发了称为OpenLauncher的启动器,并编译了烧录用的映像档,让开发工作告一段落。
目前Project Sandcastle已经支持iPhone 6到11以及iPod 6、7等装置,但各装置都有部分功能尚未支援的状况。
相关文章
- 2022年iPhone SE为最平5G iPhone 加入屏下Touch ID06-24
- 买iPhone不附充电器!苹果遭巴西重罚03-22
- 新iPhone面临生产中断危机!全球芯片短缺问题延烧冲击三星屏幕供应03-22
- iPhone没创新就简单等于苹果没创新吗03-09
- iPhone12信号为什么比安卓手机差多了03-05
- iPhone12 mini怎么样-是否值得入手02-09
- iPhone 12 pro max和华为mate40 pro哪个更值得入手02-09
- iPhone 12不送充电器和耳机真的是为了环保吗10-29
- 如何用iPhone 12 Pro手机测量身高10-28
- iPhone 12夜间拍摄模式做了哪些升级10-25