|
一鍵注冊,加入手機圈
您需要 登錄 才可以下載或查看,沒有帳號?立即注冊
x
看你對「裝安卓系統(tǒng)」的定義是什么了,目前,Corelium的Sandcastle項目已經(jīng)實現(xiàn)了在搭載A10芯片的iPhone7/iPhone7 Plus引導啟動Android10并啟動到桌面,但iPhone的攝像頭、指紋識別、聲音、GPU等都無法驅(qū)動,所以拿來當日常用機肯定是不行的。
理論上說蘋果手機能不能裝安卓系統(tǒng)?-1.jpg (244.19 KB, 下載次數(shù): 19)
下載附件
2021-12-15 12:53 上傳
Sandcastle的Android設(shè)備驅(qū)動表,iPhone7/7p由于兼容大部分硬件才可以啟動
理論上說蘋果手機能不能裝安卓系統(tǒng)?-2.jpg (135.51 KB, 下載次數(shù): 18)
下載附件
2021-12-15 12:53 上傳
圖源:arstechnica.com
有意思的是這個項目的開發(fā)人員David Wang和Chris Wade在十年前就啟動了一個將Linux/Android移植到iPhone的項目,并在當時成功在第一代iPhone上啟動了Android:
理論上說蘋果手機能不能裝安卓系統(tǒng)?-3.jpg (56.23 KB, 下載次數(shù): 18)
下載附件
2021-12-15 12:53 上傳
圖源: projectsandcastle.org
下面是個人的一些結(jié)論,僅供參考:
如果你想快速閱讀:
- Sandcastle項目基于checkm8漏洞,至于如何實現(xiàn)在iPhone引導第三方操作系統(tǒng)的可以參考這篇文章:Gh0u1L5:iPhone史詩級漏洞checkm8攻擊原理淺析
- 雖然說A11以下設(shè)備擁有checkm8漏洞,但引導啟動并進入另一個操作系統(tǒng)要涉及到很多方面,例如設(shè)備驅(qū)動,特別是引導進入一個復雜的、要調(diào)用許多東西的OS。
- iPhone里的絕大多數(shù)硬件實現(xiàn)都是閉源的,因此研究它們/為它們開發(fā)驅(qū)動程序需要付出不少時間和精力。
- 就目前情況來看,要在iPhone7/7plus或更多iOS設(shè)備上「完美運行」Android(這里的完美定義是指能正常重啟,且手機所有硬件功能正常運作)是一件遙不可及的事情,因此對此項目的期望請不要太高。
這是個人的部分總結(jié):
- Sandcastle項目實現(xiàn)的第一個驅(qū)動程序是UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)在Android里簡稱serial ports[1]。像手機里的一些「外圍設(shè)備」,例如GPS、顯示屏、XBee等通常依賴它。iPhone的UART和三星S3C系列SOC的部分傳統(tǒng)設(shè)計類似。[2]
- iPhone的SPI控制器(SPI controller)也和UART一樣,是從三星「啟發(fā)(inspired)」的,但Linux Kernel Tree里的驅(qū)動不支持中斷驅(qū)動傳輸(interrupt driven transfers),于是Sandcastle團隊自己實現(xiàn)了驅(qū)動。
- 一般的aarch64芯片的中斷控制器(Interrupt controller)一般都遵守ARM GIC標準,但A系列SOC是一個稱為AIC(Apple Interrupt Controller)的自研的非標準中斷控制器(non-standard interrupt controller)
- ..........
可以參考Sandcastle的The Making Of 頁面:The Making Of — Project Sandcastle,開發(fā)人員基本都對Sandcastle開發(fā)過程中的技術(shù)問題做了總結(jié)。
參考
- ^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
----------------------------- |
|