Ivon將分享如何在Google Pixel手機安裝GrapheneOS系統。
1. GrapheneOS簡介#
講到刷機,我們都會先想到LineageOS吧?它是支援機型最多的第三方ROM。最近幾年,出現了GrapheneOS,是為一個注重安全與隱私的Android系統。
茲列舉部份特色:
- 由非營利組織維護的開放原始碼專案
- 相容大多數的Android APP
- 強化Android的權限系統,例如禁止APP內的WebView啟用JIT、禁止APP上網、禁止存取感測器、啟用Hardened malloc保護記憶體、用Storage Scope限制APP能夠讀取哪些檔案
- 截圖與拍照之後,會自動清除任何有關手機硬體的資訊,防止EXIF被用於社會工程
- 搭載自家開發的Vanadium瀏覽器與WebView,預設停用JavaScript JIT,提供擋廣告功能
- 緊跟Google上游最新版軟體,每月提供安全性修補更新
- 系統去Google化,沒有Google全家桶,預設沒有任何GMS服務在背景浪費電。需要使用者手動安裝。
- 去除Android系統所有依賴Google伺服器的服務,例如時間同步、GNSS、LTE SUPL、連線能力確認,換成GrapheneOS自家的代理伺服器
- 使用標準的Android硬體加密技術,提供驗證系統完整性的能力,不依賴Play Integrity
- 利用AVB custom key,讓Bootloader可以在刷機後重新上鎖,防止使用其他系統開機破解資料
- 使用Verified Boot在開機時驗證系統完整性,防止惡意竄改
- 連上Wifi的時候使用隨機MAC位址
- 預設停用掃描附近Wifi裝置(改善定位精確度)的功能。
- 超過18小時不解鎖的話就自動重開機,強制讓裝置進入BFU狀態,更難以被破解
- 定時自動關閉Wifi與藍牙
- 限制連接埠的存取權限,設定充電時只能充電,不可傳輸資料
GrapheneOS不是LineageOS的那種通用作業系統,而是一個安全性至上的Android發行版。因此,愛搞機的人要失望了,它不鼓勵使用者root,因其會破壞安全機制,而且會無法OTA(當然你硬要的話還是可以用修補boot.img的方式root)。所以GrapheneOS不能用Magisk,Zygisk無法運作。GrapheneOS甚至建議你在刷機後把Bootloader鎖回去。
從這點來看,他們注重使用者安全的程度,勝過給使用者自由胡搞亂搞。
2. Pixel與GrapheneOS界面比較#
GrapheneOS官方支援的機型目前以Pixel手機為主。
Pixel的系統是基於Android原生,設計語言為Material Expressive。內建了許多Google認為「你需要」的APP。
GrapheneOS繼承了Android原生的界面。內建APP非常少,不需要網路就能運作,功能很精簡。GrapheneOS連自家的桌布都沒有,一片烏趖趖(oo-sô-sô)的。
畢竟外觀不是GrapheneOS的賣點。
3. 準備項目#
GrapheneOS官網說明文件提供二種刷機方法,一種是用圖形界面Web Installer,一種是用指令稿。
Web Installer使用十分無腦,只要按照GrapheneOS網頁指示一直下一步就行了。
因為Web Installer需要用到WebUSB,僅限Chrome才能用,Firefox不行,所以我就用指令刷了。
準備一台Linux或Windows電腦。安裝ADB工具。
下載刷機包。GrapheneOS支援的機型目前以Pixel全系列手機為主,支援的最舊裝置為Google Pixel 4。
我手機是Google Pixel 6a,到這裡下載GrapheneOS刷機包:Releases | GrapheneOS,更新頻道選取Stable。得到
bluejay-install-2025120400.zip(選擇性步驟)GrapheneOS開發者建議在下載刷機包之後,用OpenSSH校驗檔案檔案是否有被竄改,應會顯示Good
curl -O https://releases.grapheneos.org/allowed_signers
ssh-keygen -Y verify -f allowed_signers -I contact@grapheneos.org -n "factory images" -s bluejay-install-2025120400.zip.sig bluejay-install-2025120400.zip
- 將刷機包的zip檔案解壓縮
4. 解鎖Pixel手機的Bootloader#
開啟系統設定,在關於手機 → 版本號碼,點5下
找到開發人員選項,開啟「允許OEM解鎖」
手機關機。同時按著音量下鍵+電源鍵,開機進入Fastboot(注意不是fastbootd),接上電腦
在電腦上開啟終端機,解鎖Bootloader。
fastboot flashing unlock
在手機上用音量鍵移動選項到Unlock bootloader,然後按電源鍵確定。
重開機,會清除資料
fastboot reboot
5. 開始刷入GrapheneOS#
再次進入Fastboot。手機關機。同時按著音量下鍵+電源鍵
在刷機包解壓縮的目錄開啟終端機,開始刷入系統,期間會多次重啟
bash flash-all.sh
- 等到指令稿跑完後,輸入以下指令,給Bootloader重新上鎖(是的,即使Bootloader上鎖,GrapheneOS還是可以開機)。增強安全性。在手機上用音量鍵移動選項到Lock bootloader的選項,然後按電源鍵確定。
fastboot flashing lock
- 啟動手機。雖然Bootloader上鎖了,但Pixel在開機的時候仍會顯示「Your device is loading a different operating system」的訊息。
fastboot reboot
啟動後手機資料會清除一遍。
完成系統設定。系統會問你要不要將允許OEM解鎖上鎖?建議點選是,增強安全性。

6. 安裝GApps (Sandboxed Google Play)#
沒有GApps / GMS我怎麼活!?其實你不見得需要GMS啦!F-Droid上面有很多好用APP。
但總有APP沒有開源替代品呀,且不是裝APK就行。有些APP需要GMS才能傳送通知,甚至偵測到沒有GMS就不給使用。
GrapheneOS不支援GApps,也永遠不會內建GApps。應該是說,開發團隊是不鼓勵使用者往系統塞GApps啦,得手動安裝。GrapheneOS開發者提出了一個「GMSCompat」的功能,能讓GMS服務像是一般Android APP一樣沙盒化執行,不授予過高的權限。這稱之為Sandboxed Google Play。它跟microG不一樣,並不需要signature spoofing偽裝成GMS就能使用。
值得注意的是,雖然理論上GrapheneOS是非常安全的系統,包括Bootloader上鎖與支援硬體級別的系統防竄改,但依然無法通過Play Integrity。很多金融類的APP只有粗暴地依賴Play Integrity來確保安全性,而非是Android硬體提供的加密方案。未來GrapheneOS開發團隊可能會與歐盟聯手,逼迫Google開放Play Integrity。
不需要從Recovery安裝GApps,只要從GrapeneOS的App Store下載即可

由於這裡的GMS服務被沙盒隔離,權限與一般APP無異,需要手動授予安裝APP的權限。此外,GrapheneOS採取最小授權原則,只授予GMS必要權限,剩下的端看使用者決定要不要開啟(會顯示在通知欄問你權限,例如讀取簡訊)

GMS可以隨時強制停止,不會自動重新啟動。
你也可以將GMS安裝到工作設定檔私人空間,這樣只有該名使用者能存取GMS服務。而且關在設定檔裡面的APP能夠一鍵停止執行,讓GMS的通知完全出不來。參見:將Android的GApps關在私人空間執行,凍結背景執行權限
7. 沒有GCam的拍照品質#
GrapheneOS的相機是自行開發的,使用CameraX extensions提供夜拍模式。不是LineageOS那種AOSP最原生的相機。
我覺得拍起來不輸Pixel原廠相機啦,下面左邊GrapheneOS,右邊Pixel。當然功能比GCam少。
論可以手動調整拍照參數的開源APP,我推薦用OpenCamera。
如果你真的很需要GCam,就用Sandboxed Google Play下載原廠的「Pixel相機」吧。但是,這樣你就會走回Google全家桶的老路了呀,因為GCam會要求你下載Google相簿才能檢視照片,有完沒完!