手機

Android 執行 iOS:支援手機、HakiOS 啟動教學與實際限制

Android 上 iOS 實驗性移植概念圖:支援機型、啟動步驟與限制

已有移植專案公開在特定 Android 手機硬體上直接執行真正的 iOS 軟體。但關鍵是手機、專案和啟動方式的組合:HakiOS 以 POCO X5 Pro 5G 為基準,ios-sweet 則針對 Snapdragon 版 Redmi Note 10 Pro。它們不能把任意 Android 手機變成完整支援的 iPhone。

若你有相容的備用機,HakiOS 從記憶體暫時啟動、重新開機回到 Android 的方式,是較適合開始研究的路線。不過,事前解除開機載入程式鎖定仍可能清空資料。Apple 服務、充電及日常電話功能也有重大限制。

2026 年 11 月 5 日核對。本文是以公開資料與原始碼為基礎、透過 AI 輔助整理的技術評析,未進行實體手機安裝測試。硬體功能及啟動結果來自開發者報告。步驟說明公開的暫時啟動流程,不保證所有韌體版本成功,也不是經本站驗證的永久安裝程序。

真的在 Android 硬體上執行 iOS 嗎?

這與 iPhone 風格啟動器不同。專案移植 Apple 公開的 XNU 核心,加入自己的驅動與載入器,再執行 iPhone 系統程式。原生手機工作階段並沒有 Android 的 Linux 核心在底下運作。啟動器只是改外觀;遠端 iPhone 是串流另一台裝置;QEMU 則是在電腦模擬硬體。

Android Authority 於 2026 年 10 月 21 日的報導介紹了這些原生移植,但新聞不代表後續每個社群版本都能成功。發展很快,舊報導中「HakiOS 尚未公開原始碼」等說法也已不能直接套用,現在已有公開儲存庫。

XNU 開源不等於整套 iOS 開源。介面、函式庫與應用程式仍來自 Apple 專有的回復映像。移植專案不提供這些映像,也不替你完成 Apple 啟用,或授予重新散布 Apple 檔案的權利。

支援機型與 Android 系統條件

專案/手機 精確硬體 使用系統 Android 資料影響
HakiOS/POCO X5 Pro 5G redwood、Snapdragon 778G/SM7325;程式碼屬 SC7280 系列 iPhone X iOS 16.5/20F66;XNU 8796.121.2 預設從 RAM 啟動;解鎖仍可能清空資料。logdump 會寫入少量日誌。
ios-sweet/Redmi Note 10 Pro 相容的 Snapdragon SM7150/732G 版本,sweet;須核對主機板 iPhone X iOS 16.7.16/20H392 根檔案系統寫入 userdata,清除 Android 使用者資料。
其他 Android 手機 需要該機型可運作的專用移植 依專案而定 不能套用上述手機的映像或分割區配置。

沒有確認到「Android 13 以上就能裝」這種通用條件。關鍵是主機板、開機載入程式、裝置樹與廠商韌體。公開說明尚未建立可保證各地區版本成功的精確 MIUI/HyperOS 組建基準。請記錄現有組建,不要為配合未經證實的留言而降級或跨區刷機。

中國大陸銷售的 Redmi Note 10 Pro,不能直接等同海外 Snapdragon 機型;沒有 Pro 5G 字樣的 POCO X5 也不是基準機。產品名稱或處理器系列相近不夠,觸控、面板及保留記憶體差異都可能需要改驅動。

ios-sweet 官方儲存庫的開發者路線需要 Linux、macOS GitHub Actions 核心建置、手機原廠裝置樹、iPhone X 回復檔案及 HFS+ 映像準備。README 記錄鎖定畫面、設定與觸控可用,也列出嚴重的未支援部分。這是會清除資料的另一條路,不可與 HakiOS 的 RAM 啟動步驟混用。

公開的 ios-sweet 官方儲存庫;不是 AirMore 的實機測試照片。
公開的 ios-sweet 官方儲存庫;不是 AirMore 的實機測試照片。

目前能使用哪些功能?

HakiOS 的 POCO 狀態表回報圖形介面、觸控、按鍵、Adreno 繪圖、Wi-Fi、喇叭、麥克風、相機與震動可用。這些是開發者在自身配置下的觀察,不是下載程式碼後就全部具備;部分需要擷取手機韌體、加入函式庫或產生相機資料表。

  • 介面:可把鎖定畫面、主畫面與內建 App 當作實驗目標,不能視為完整可用的 App 生態。
  • 圖形:OpenGL ES 加速需要映像中的 Mesa、GPU 韌體與對應核心參數;Metal 僅部分支援。120 Hz 面板不代表 120 fps、任意遊戲相容或完整 Metal。
  • 連線:數據機啟動並偵測網路,不等於已完成電信註冊、行動上網或可靠通話;所查狀態表仍不支援 Bluetooth。
  • Apple 服務:目前公開專案把啟用、Apple ID、iCloud、App Store 列為不支援且非目標。不要為 iMessage、銀行 App 或 App Store 遊戲購買手機來嘗試。
  • 電源:尚未實作執行中的充電。插著 USB 不代表正在充電,須回到 Android 充電。

下方基本映像流程以初次啟動 GUI 為目標,不保證加速繪圖或所有周邊功能。韌體擷取腳本可能列出缺檔後仍執行到結束;相機檔案模式還包含原廠 Android 未必有的 hakios_* 生成資料。缺檔是前提條件未滿足,不能拿別台手機的檔案補上。

必要設備、下載與風險

準備可正常進入 Android 的 redwood 備用機、可靠 USB 資料線和 Linux x86-64 電腦。完整使用者空間的工作區約需 12 GB,另為約 6.2 GB IPSW、儲存庫與備份保留空間。可選的完整 QEMU 測試約需主機 7 GB 可用 RAM;這不是手機需求,也不代表所有手機 RAM 版本都驗證過。

手機仍鎖定時

先把照片、檔案、驗證器復原碼及 App 資料備份到手機之外。Xiaomi 一般流程是在開發人員選項的 Mi Unlock 狀態綁定帳號與裝置,再以同一帳號登入電腦官方解鎖工具,連接 fastboot 模式手機。通常可連點 OS/MIUI 版本開啟開發人員選項,再從其他設定尋找;名稱依 ROM 而異。

請使用Xiaomi 官方解鎖入口。帳號資格、地區、HyperOS 審核與等待期限都可能阻止解鎖,以自身帳號顯示為準。不要假定固定天數或通用 fastboot flashing unlock 可以繞過規則。官方流程拒絕時,本文沒有已驗證的替代解鎖方式。解鎖與清除資料完成後,重新設定 Android 並啟用 USB 偵錯。

檔案與工具

解鎖會降低鎖定開機鏈的保護,也可能影響保固、維修、完整性檢查及敏感 App。移植亦弱化或取代部分 Apple 安全機制。不要放個人帳號、私密照片、付款憑證或工作資料。Wi-Fi 密碼可能留在建置出的映像內,請勿分享映像或 fw-* 資料夾。

HakiOS 暫時啟動:逐步操作

範圍:以下為 Linux shell 指令,使用基準機、公開預建元件及自己準備的 Apple 映像;不是 AirMore 實機測過的安裝程式。成功目標是操作 iOS 介面、保留日誌並回到 Android,不是永久替換 Android。

1. 準備電腦並識別手機

近期 Ubuntu/Debian 可用下列方式安裝常用工具。套件依發行版而異;APFS 解壓需要 7-Zip 23 以上,且本終端必須能執行 Google Platform-Tools。

sudo apt update
sudo apt install git python3 build-essential clang lld make 7zip lz4 util-linux
adb version
fastboot --version

連接 Android、啟用 USB 偵錯並在手機同意授權。以下僅讀取識別資訊:

adb devices
adb shell getprop ro.product.device
adb shell getprop ro.product.board
adb shell getprop ro.soc.model
adb shell getprop ro.build.fingerprint

應對應 redwood 與 SM7325,adb 顯示已授權的 device。私下保存組建指紋;不符、unauthorized 或無法確認主機板時就停止。從 Mi Unlock 狀態確認確實已解鎖;開啟 OEM 解鎖選項本身不等於完成解鎖。

2. 取得已檢查的專案版本

git clone https://github.com/oosexgang/hakios-xnu-kernel.git hakios
cd hakios
git checkout 87bf4851bcc9cbb24fd79997820aa3661abe4ea5
tools/hakios-device.py sync
make doctor

manifest 已固定裝置與 UEFI 版本,不要各自更新成不相干版本。make doctor 的選用 SDK/QEMU 警告,與缺少編譯器、手機無法存取、7-Zip 太舊等問題不同;先排除必要條件錯誤再繼續。腳本是會執行的程式碼,請保留官方來源,不要替換成匿名的一鍵 iOS APK。

部分 Linux 套件提供 7zz,但解壓腳本呼叫 7z。只有「7zz 可用、7z 不存在」時,才在本資料夾建立本地名稱:

mkdir -p .host-bin
ln -s "$(command -v 7zz)" .host-bin/7z
export PATH="$PWD/.host-bin:$PATH"

不要取代既有 7z。先執行 7z 查看版本,再解壓。

3. 擷取這台手機的廠商韌體

devices/redwood/pull-firmware.sh
make redwood_defconfig
make config

擷取時保持 Android 運作,逐項查看 not on the phone 訊息及 fw-gpu、fw-wifi、fw-audio 等資料夾的實際檔案。done 不代表全部成功;讀取權限不足、相機生成檔缺失或主機板不同,都必須在啟用相關功能前解決。

若要額外測試 Wi-Fi,來源碼還需要本機廠商韌體中的 bd_m20gl.elf、regdb_xiaomi.bin 等,放入 fw-wifi/qca6750/。fw-wifi/network 第一行是 SSID,第二行是密碼;fw-wifi/mac 為冒號分隔的六個十六進位位元組。使用訪客網路,變更後重新建置映像;檔案存在不等於已確認連線成功。

4. 準備 iOS 映像與載入器

把上述精確的 Apple 檔案下載至 Downloads,先檢查大小再解壓。

Downloads 是指令範例的儲存位置。若存到其他資料夾,請把第一行 IPSW 改成檔案的實際路徑,並保留引號。

IPSW="$HOME/Downloads/iPhone10,3,iPhone10,6_16.5_20F66_Restore.ipsw"
stat -c %s "$IPSW"
7z t "$IPSW"
sysimage/unpack.sh "$IPSW"
PREBUILT=1 REST=1 userland/build.sh
make loader
ls -lh userland/root.apfs userland/system.apfs xnuloader/loader.efi prebuilt/hakios-kernel

應為 6165698198 位元組。壓縮檔測試只檢查封裝完整性,不證明使用權或其他版本相容性。腳本解出所選系統檔,再建立兩個 APFS 映像。PREBUILT=1 省略使用者空間工具的編譯,但載入器仍需 clang、lld-link,並從你的 IPSW 取得 iPhone 識別資訊。無 Apple 資訊的佔位載入器不足以啟動 GUI。

先維持基本配置。包含 Mesa 的 GL=1 映像與進階 Metal 設定是另一回事;僅加 gpu=1 不能補入不存在的圖形函式庫,也不能以這個基本流程評斷開發者加速展示的效能。

5. 檢查載入器,監看啟動過程

先在 Android 充電。以超過 60% 開始,為官方手機指南的 50% 門檻留下餘裕。保持資料線連接,不要無人看管。基準機儲存庫提供預建 Silicium UEFI 說明,腳本在檔案存在時優先選用;缺少就先停止。改用 U-Boot 是不同配置,功能限制也不同。

make doctor
make config
./xl state
XL_END=android make phone SECS=600

開始前 xl state 應回報 android。最後一行經 fastboot 進入 RAM 載入器,傳送 system.apfs、執行十分鐘核心工作階段,再要求返回 Android。較小的 root.apfs 與核心以另一份負載傳送。時間依建置與電腦而異,不要只因 Apple 標誌停留就反覆重新啟動。

觀察可互動的鎖定/主畫面、正常返回 Android,以及已儲存日誌;記下自己結果和版本。只有核心主控台文字,不等於 iOS GUI 成功。

此暫時實驗不要加入 ufs_write=1、var_store=1,也不要切出 darwin 分割區、刷寫開機插槽或切換啟用插槽。預設仍會向 logdump 寫少量載入器日誌,所以不是完全零寫入。

HakiOS 官方手機啟動文件。暫時啟動與永久安裝的前提條件、風險不同。
HakiOS 官方手機啟動文件。暫時啟動與永久安裝的前提條件、風險不同。

排錯與回到 Android

狀況 檢查或處理
找不到手機/unauthorized 解開 Android 畫面並允許偵錯,檢查資料線及 adb devices;充電線不一定傳資料。
拒絕 fastboot boot 確認確實已解鎖;重裝 adb 無法解除開機鎖。
拒絕 IPSW 核對 20F66、檔名與精確大小,不要用新版映像繞過保護。
缺識別資訊/GUI 不啟動 確認解壓、make loader 與兩個 APFS 映像;佔位載入器只支援開放核心。
沒有 GPU、聲音、Wi-Fi 或相機 核對本機韌體、生成檔案、函式庫及啟動參數。
第二次立即失敗 已知每個載入器工作階段只跑一次核心,兩次之間 reload 或重新開機。
凍結或過熱 結束並返回 Android,不要把實驗性溫控或電量保護當成已證實安全機制。

在同一份專案目錄中,可分別查狀態、提早停止、讀日誌、重新開機。請依需要逐行執行,不要在正常運作時整段貼上。

./xl state
./xl stop
./xl log
./xl reboot

工作階段日誌也會存於 logs/,名稱依執行方式而異。軟體無法控制時,文件建議長按電源約 15 秒重新開機,電源加音量下進 fastboot。若只做 RAM 流程而停在一般 fastboot,可用 fastboot reboot 要求返回 Android。再試前確認 Android 可正常啟動、充電。

暫時啟動不會恢復先前已解鎖的狀態,也無法找回解鎖清掉的資料,或自動修復其他教學改過的分割區。存在實驗映像或不明配置時不要重新上鎖。若無法進入 fastboot,或開機鏈受損,可能需要機型專屬維修。

為什麼永久安裝要更謹慎?

HakiOS 有雙系統說明:從 userdata 尾端切出 20 GiB 的 darwin、清除資料,把開機映像放在 A 插槽,Android 留在 B 插槽。這與 RAM 載入不同;U-Boot 版本的表格另有聲音、震動限制。

文件仍有矛盾:安裝頁像是在敘述已完成的操作,但安全階段文件仍把部分儲存及開機插槽操作列為規劃或未驗證。簡略安裝說明也假定系統與開機映像已準備好,不是通用安裝程式。這些證據不足以把破壞性指令寫成可靠的新手流程。

ios-sweet 同樣需要匹配的核心、原廠 DTB、HFS+ 映像與相容 recovery。即使 shim 是暫時啟動,把根映像寫入 userdata 仍會摧毀使用者資料,重新開機不會復原。因此本文說明架構,但不虛構通用 recovery、分割區指令或保證回原廠的程序。

如果你一定要不接線永久安裝,目前不能承諾「幾步就能安全完成」。請等到自己機型的精確映像、主機板、驗證過的備份與恢復程序齊備,再考慮永久路線。

適合哪些人嘗試?

適合:已經有相容備用機、能使用 Linux 與讀日誌,接受解鎖風險,想研究核心與驅動移植的玩家。開放元件不需要付費 iOS 啟用服務,但硬體、儲存、下載和復原時間都有成本。

不適合:想把便宜 Android 變成日常 iPhone,取得 App Store、可靠通話、安全銀行功能或保證的電池管理。不要只因影片寫著 iOS on Android 就購買任意手機。

價值在於特定硬體真的執行原生軟體。第一次實驗應保留 Android 作實用系統,選擇時間有限、離開方式明確的工作階段。公開展示、文件化再現流程,以及自己的安裝成功,是不同層級的證據。

登入

或

建立帳戶

密碼必須為 8-20 位,且包含字母和數字

或

忘記密碼

密碼必須為 8-20 位,且包含字母和數字