爱锋贝

 找回密码
 立即注册

只需一步,快速开始

扫一扫,极速登录

开启左侧

理论上说苹果手机能不能装安卓系统?

[复制链接]
发表于 2021-12-11 23:22:29 | 显示全部楼层 |阅读模式

一键注册,加入手机圈

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
看你对「装安卓系统」的定义是什么了,目前,Corelium的Sandcastle项目已经实现了在搭载A10芯片的iPhone7/iPhone7 Plus引导启动Android10并启动到桌面,但iPhone的摄像头、指纹识别、声音、GPU等都无法驱动,所以拿来当日常用机肯定是不行的。

理论上说苹果手机能不能装安卓系统?-1.jpg

Sandcastle的Android设备驱动表,iPhone7/7p由于兼容大部分硬件才可以启动

理论上说苹果手机能不能装安卓系统?-2.jpg

图源:arstechnica.com

有意思的是这个项目的开发人员David Wang和Chris Wade在十年前就启动了一个将Linux/Android移植到iPhone的项目,并在当时成功在第一代iPhone上启动了Android:

理论上说苹果手机能不能装安卓系统?-3.jpg

图源: projectsandcastle.org

下面是个人的一些结论,仅供参考:
如果你想快速阅读:

  • Sandcastle项目基于checkm8漏洞,至于如何实现在iPhone引导第三方操作系统的可以参考这篇文章:Gh0u1L5:iPhone史诗级漏洞checkm8攻击原理浅析
  • 虽然说A11以下设备拥有checkm8漏洞,但引导启动并进入另一个操作系统要涉及到很多方面,例如设备驱动,特别是引导进入一个复杂的、要调用许多东西的OS。
  • iPhone里的绝大多数硬件实现都是闭源的,因此研究它们/为它们开发驱动程序需要付出不少时间和精力。
  • 就目前情况来看,要在iPhone7/7plus或更多iOS设备上「完美运行」Android(这里的完美定义是指能正常重启,且手机所有硬件功能正常运作)是一件遥不可及的事情,因此对此项目的期望请不要太高。
这是个人的部分总结:

  • Sandcastle项目实现的第一个驱动程序是UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)在Android里简称serial ports[1]像手机里的一些「外围设备」,例如GPS、显示屏、XBee等通常依赖它。iPhone的UART和三星S3C系列SOC的部分传统设计类似。[2]
  • iPhone的SPI控制器(SPI controller)也和UART一样,是从三星「启发(inspired)」的,但Linux Kernel Tree里的驱动不支持中断驱动传输(interrupt driven transfers),于是Sandcastle团队自己实现了驱动。
  • 一般的aarch64芯片的中断控制器(Interrupt controller)一般都遵守ARM GIC标准,但A系列SOC是一个称为AIC(Apple Interrupt Controller)的自研的非标准中断控制器(non-standard interrupt controller)
  • ..........
可以参考Sandcastle的The Making Of 页面:The Making Of — Project Sandcastle,开发人员基本都对Sandcastle开发过程中的技术问题做了总结。
参考


  • ^https://developer.android.com/things/sdk/pio/uart
  • ^原文:Of course, the first thing you need to do is print, so our first driver was for the uniquely modified UART. It shares some heritage with UARTs in the Samsung S3C series SoCs

-----------------------------
精选高品质二手iPhone,上爱锋贝APP
发表于 2021-12-11 23:41:01 | 显示全部楼层
看你对「装安卓系统」的定义是什么了,目前,Corelium的Sandcastle项目已经实现了在搭载A10芯片的iPhone7/iPhone7 Plus引导启动Android10并启动到桌面,但iPhone的摄像头、指纹识别、声音、GPU等都无法驱动,所以拿来当日常用机肯定是不行的。

理论上说苹果手机能不能装安卓系统?-1.jpg

Sandcastle的Android设备驱动表,iPhone7/7p由于兼容大部分硬件才可以启动

理论上说苹果手机能不能装安卓系统?-2.jpg

图源:arstechnica.com

有意思的是这个项目的开发人员David Wang和Chris Wade在十年前就启动了一个将Linux/Android移植到iPhone的项目,并在当时成功在第一代iPhone上启动了Android:
GitHub - planetbeing/iphonelinux: Port Linux to the iPhone
理论上说苹果手机能不能装安卓系统?-3.jpg

图源: projectsandcastle.org

下面是个人的一些结论,仅供参考:
如果你想快速阅读:

  • Sandcastle项目基于checkm8漏洞,至于如何实现在iPhone引导第三方操作系统的可以参考这篇文章:Gh0u1L5:iPhone史诗级漏洞checkm8攻击原理浅析
  • 虽然说A11以下设备拥有checkm8漏洞,但引导启动并进入另一个操作系统要涉及到很多方面,例如设备驱动,特别是引导进入一个复杂的、要调用许多东西的OS。
  • iPhone里的绝大多数硬件实现都是闭源的,因此研究它们/为它们开发驱动程序需要付出不少时间和精力。
  • 就目前情况来看,要在iPhone7/7plus或更多iOS设备上「完美运行」Android(这里的完美定义是指能正常重启,且手机所有硬件功能正常运作)是一件遥不可及的事情,因此对此项目的期望请不要太高。
这是个人的部分总结:

  • Sandcastle项目实现的第一个驱动程序是UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)在Android里简称serial ports[1]像手机里的一些「外围设备」,例如GPS、显示屏、XBee等通常依赖它。iPhone的UART和三星S3C系列SOC的部分传统设计类似。[2]
  • iPhone的SPI控制器(SPI controller)也和UART一样,是从三星「启发(inspired)」的,但Linux Kernel Tree里的驱动不支持中断驱动传输(interrupt driven transfers),于是Sandcastle团队自己实现了驱动。
  • 一般的aarch64芯片的中断控制器(Interrupt controller)一般都遵守ARM GIC标准,但A系列SOC是一个称为AIC(Apple Interrupt Controller)的自研的非标准中断控制器(non-standard interrupt controller)
  • ..........
可以参考Sandcastle的The Making Of 页面:The Making Of — Project Sandcastle,开发人员基本都对Sandcastle开发过程中的技术问题做了总结。
精选高品质二手iPhone,上爱锋贝APP
发表于 2021-12-12 01:16:12 | 显示全部楼层
当然可以 ,只要找到对应的引脚,编写驱动就行
精选高品质二手iPhone,上爱锋贝APP
发表于 2021-12-12 03:35:17 | 显示全部楼层
那必须可以啊
@悠然心声
是不是啊,是你说的没错吧

理论上说苹果手机能不能装安卓系统?-1.jpg
精选高品质二手iPhone,上爱锋贝APP
发表于 2021-12-12 03:51:33 | 显示全部楼层
当然能。这还用问吗……
精选高品质二手iPhone,上爱锋贝APP
发表于 2021-12-12 05:54:58 | 显示全部楼层
能,需要将AOSP为目标处理器编译,同时Apple需要解除设备bootloader对第三方ROM的限制
精选高品质二手iPhone,上爱锋贝APP
发表于 2021-12-12 07:02:52 | 显示全部楼层
能 已经可以安装了,但是就苹果手机那个运行内存……
精选高品质二手iPhone,上爱锋贝APP
您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

快速回复 返回顶部 返回列表