前言
現在拿的 OnePlus 7 Pro 已經接手3年多了,整體令我非常滿意,是我用過最久的一台手機了。可惜續航一直是短版,電池都換兩塊了,但續航還是不太行,因此一直在找下一台要換的手機。期間換過很多品牌,但總覺得不太滿意,最後又換回來了。最近看到 OnePlus 12 ,各方面都很不錯,但要2w的價格… 有點難負擔。還看到 OnePlus Ace 3 ,雖然是中階機,但整體規格也不差,價格可以省約8k,電池還更大,因此就決定下單了😆。
目前 Ace 3 轉換 OxygenOS 還不完美,會有行動網路無法使用的問題,仍需刷回 ColorOS 的 oplusstanvbk.img 才會正常工作。且每次 OTA 後都需要再刷一次,表示 Bootloader 無法上鎖;或是鎖上 Bootloader 後,放棄系統更新。且此手機缺 B7 和半殘 B28 頻段,CA 組合也較少,對 4G 網速介意者勿購買!
建議想省麻煩,還是買 OnePlus 12 就好了。
刷機步驟
解鎖 Bootloader
拿到手機後,先備份 OCDT, Persist 和 Oplusstanvbk 分區。
要想備份分區,需要先取得 Root 權限;要取得 Root 權限,需要解鎖 Bootloader 才能操作。
先找出手機開發人員選項,在 設定→關於本機→版本資訊→版本號碼 上一直點擊,直到出現開發人員選項已開啟的提示。
接著在 設定→其他設定→開發人員選項 ,找到 OEM 解鎖 和 USB偵錯 打開來。
下載 ADB Tools ,解壓縮資料夾後,開啟 CMD 到資料夾路徑。 手機連接電腦並設為傳輸檔案, CMD 輸入 adb devices ,手機上允許 USB 偵錯。都正常的話, CMD 中會顯示設備 ID 和狀態,如下圖。

CMD 輸入 adb reboot bootloader ,手機會自動重啟進入 Bootloader 。
輸入 fastboot devices ,如果有設備,代表電腦已自動安裝驅動。

沒有的話, Windows Update 裡檢視所有可選更新,查看是否有 Android Bootloader Interface 項目。
或是下載 Android USB Driver ,並進裝置管理員→Android上右鍵→更新驅動程式→瀏覽電腦上的驅動程式→讓我從電腦上…→顯示所有裝置→從磁片安裝,如下圖選擇。並安裝 Android Bootloader Interface 。

!!!以下指令將完全清除手機資料!!!
CMD 輸入 fastboot flashing unlock 進行 Bootloader 解鎖。此時手機上會做最後確認,使用音量鍵移動光標,電源鍵確認。選擇yes後手機重啟。開機會出現警告,並開始清除資料。做好手機初始設定後,再次開啟 USB偵錯 ,準備進行 Root 步驟。
取得 Root 權限進行備份
現在主流 Root 工具,主要使用 Magisk,對 boot 分區打 Patch ,較新款支援 GKI 的設備,可以使用 KernelSU。
這邊使用 KernelSU 中的 LKM 模式進行安裝。首先依照現在系統版本,去大俠阿木網站下載相同版本系統包。下載完後解壓縮,得到 payload.bin ,再下載 payload dumper_go 進一步解開檔案。
在 output 資料夾中,找到 init_boot.img 並複製到手機。接著到 KernelSU 的 GitHub Releases 找到 KernelSU 的 apk 下載並安裝。
開啟 app 按一下以安裝,選擇剛才複製的 init_boot.img 開始修補。

完成後會保存在手機的 Download 資料夾中,名為 kernelsu_boot_… 的 img 檔,將其複製到電腦上。
CMD 輸入 adb reboot bootloader 將手機啟動至 Bootloader 。進入後使用 fastboot flash init_boot <kernelsu_boot.img路徑> 刷入剛才修補的 init_boot ,刷入 OK 後使用 fastboot reboot 重啟手機到系統,此時已具有 Root 權限。
刷入 OxygenOS
要將系統從 ColorOS 轉為 OxygenOS ,可以使用以下兩種方式 :
Payload 法簡單容易,且風險低,但部分分區沒有刷到,轉換後會有預裝的中國app,app之後都能刪除。
OCDT + EDL 法的環境架設、操作複雜,更動OCDT分區風險高,但轉換較為完整,不會有上個方法的問題出現。
Payload 方法
使用XDA Jookean 整理的 OP12R Global.zip 檔案。
下載完後解壓縮,CMD 輸入 adb reboot bootloader 將手機啟動至 Bootloader ,執行資料夾內的 Flash_All.bat 。等待CMD顯示完成即可操作手機Recovery,執行format data分區重啟了。
想要EU或US的韌體,可以透過 Oxygen Updater 取得韌體, App設定裡指定 OnePlus 12R (EU 或 US) ,並選擇完整更新,就可以下載更新全量包。並透過前面 payload dumper_go 解開 payload.bin 。
將得到的所有 img 檔,取代 OP12R Global/images 資料夾裡面的所有檔案。按前面方法刷入即可。
OCDT 替換、使用 EDL 方法
待補…
刷回 ColorOS 的 oplusstanvbk.img
使用以上方法轉換後,會發現收不到行動網路訊號,這是因為 oplusstanvbk.img 和 OCDT 需要同系統才能匹配啟用。
目前更換 OxygenOS 的 OCDT 和 Oplusstanvbk ,仍有 3G 訊號無法使用的問題。為求穩定,使用 ColorOS 的 OCDT 和 Oplusstanvbk 是較好的選擇。
重啟至 Bootloader 後, CMD 輸入 fastboot flash oplusstanvbk <備份的oplusstanvbk.img> 。刷入成功後, fastboot reboot 重啟手機即可恢復行動網路訊號。
回鎖 Bootloader 並停用系統更新
重啟至 Bootloader 後, CMD 輸入 fastboot flashing lock 。手機上使用音量和電源鍵選擇鎖定,確認後會重啟並清除資料。
開啟 USB偵錯 ,在 CMD 中輸入 adb shell pm suspend com.oplus.ota 。成功後就無法啟動更新了。

Source
XDA [12R/Ace 3] EDL DownloadTool to restore your device to OxygenOS/ColorOS
XDA [Ace 3] Convert OCDT 23801 to 23861 (Ace3 to 12R)
XDA [OP11] EDL DownloadTool to restore your device to OxygenOS/ColorOS
大俠阿木 一加你不让我停更养老是几个意思?
Android Debug Bridge Tools
Android USB Driver
KernelSU LKM method