※ 本文轉寄自 ptt.cc 更新時間: 2023-02-05 12:22:07
看板 MobileComm
作者 標題 [心得] 製作第三方ROM LineageOS
時間 Sun Feb 5 01:00:49 2023
製作自己的Android ROM就像吃早午餐一樣,編譯指令分別爲breakfast → lunch→ brunch
,最後製作出bacon!
https://i.imgur.com/IOPmIwD.png
因為想修改Android的Linux核心(kernel),便順便學習如何編譯LineageOS ROM。
手機為Sony Xperia 5 II (pdx206),更新二個Android版本後就被放生的旗艦機。XDA上有u
nofficial移植的版本,直接拿它原始碼來用。
之所以選LineageOS,是因為接近原生AOSP的風格就很好看了。沒有預載太多軟體,Sony原
廠的相機也還能用。
https://i.imgur.com/WwDnnDt.png
理論上Linux核心可以獨立於原始碼樹編譯(standalone),不過失敗率很高。為此將整部系
統的原始碼抓下來,再用LineageOS (AOSP) 提供的工具去編譯核心。
實際操作一遍設定LineageOS專案、下載原始碼、抽取閉源驅動。
---
首先需要一台Linux電腦,這裡用Arch Linux。RAM需要至少16GB,需要至少100GB的硬碟空
間。
接著按照LineageOS Wiki的內容安裝編譯用的依賴套件。這篇是Xperia 1 II的,跟Xperia
5 II的有部分差異。
https://reurl.cc/pZQd6e
自己寫的中文解說版。網路上還有Jeremy Chen大大寫的AOSP編譯教學。
https://reurl.cc/LX9367
編譯修改第三方ROM & Kernel,以LineageOS 20 + Sony Xperia 5 II為例 | Ivon的部落格
因為想修改Linux核心設定檔(kernel config),所以學習如何編譯LineageOS ROM。參考LineageOS Wiki和XDA教學後編譯後,遂將過程記敘於此。 這篇不是LineageOS移…… ...
因為想修改Linux核心設定檔(kernel config),所以學習如何編譯LineageOS ROM。參考LineageOS Wiki和XDA教學後編譯後,遂將過程記敘於此。 這篇不是LineageOS移…… ...
步驟約略如下:
1. 下載50GB左右的LineageOS原始碼,分支選取LineageOS 20 (Android 13)
2. 下載Sony Xperia 5 II的裝置設定檔,再下載Sony的專有驅動(proprietary blob)
3. 從OTA更新包抽取Sony的專有驅動。
4. 按照需求修改LineageOS原始碼,例如改內建桌布、將Gapps預編譯進去等。
我主要是要改核心所以沒做太多變更。
5. 使用brunch指令開始編譯ROM,Intel i5-7400約要編譯6小時。
https://i.imgur.com/pKn8VrQ.png
6. 編譯好的刷機包要用手機的Recovery刷進去。如果手機已經安裝LineageOS,那麼直接髒
刷(dirty flash)更新也行的,GApps可能也要重刷。
---
最後是我比較在意的點:修改Linux核心。
Linux核心部分是可以獨立編譯的,會直接輸出為boot.img。
我主要是想開啟手機跑Docker的能力,為此需要去開啟核心選項開Cgroups等CONFIG,以及
啟用binfmt。然而開某些選項會被認為不安全而導致整個ROM編譯失敗,為此做法是先用Lin
eageOS原始的核心編譯完ROM後,將ROM刷進手機。再獨立編譯boot.img刷進手機(只刷boot.
img不用清除手機資料)
啟用binfmt。然而開某些選項會被認為不安全而導致整個ROM編譯失敗,為此做法是先用Lin
eageOS原始的核心編譯完ROM後,將ROM刷進手機。再獨立編譯boot.img刷進手機(只刷boot.
img不用清除手機資料)
值得注意的是boot.img沒有啟用Root權限,為此還得給Magisk修補才能取得Root權限。
在一番搗鼓後,終於可以在Android手機跑Docker了,另外開啟binmt以支援x86→ARM轉譯映
像檔的功能。
https://i.imgur.com/EcMOB6Q.png
--
最真實的1944年日美海空戰,絕贊上映中。
https://i.imgur.com/XvVnOv9.png
https://i.imgur.com/z3atpS6.png
https://i.imgur.com/QrmG2LL.png
https://i.imgur.com/zZ0vNvR.png
https://i.imgur.com/dlhNnEL.png
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.188.73 (臺灣)
※ 作者: ivon852 2023-02-05 01:00:49
※ 文章代碼(AID): #1Ztez9mP (MobileComm)
※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1675530057.A.C19.html
→ : 猛..1F 02/05 01:17
推 : 推~2F 02/05 01:20
推 : 很用心,雖然我三星3F 02/05 01:24
推 : 太專業了 還好我手機有官方版的Los可以刷QQ4F 02/05 01:29
推 : 如果沒有前人做的Device Tree連編譯都別想了..5F 02/05 02:09
→ : (望向我那隻跟孤兒沒兩樣的初代Xperia 1)
→ : (望向我那隻跟孤兒沒兩樣的初代Xperia 1)
推 : cool7F 02/05 02:10
※ 編輯: ivon852 (36.236.188.73 臺灣), 02/05/2023 02:25:35
推 : 想知道手機跑docker穩定度與發熱量,盒子可以做到手機應該8F 02/05 02:33
→ : 更好才是
試過跑包在Docker內的NodeJS APP,性能良好。可是docker compose不能用。→ : 更好才是
推 : 感謝分享,對工作上很有幫助10F 02/05 03:12
推 : 專業推推11F 02/05 04:11
推 : 會不會做完螢幕就多一條綠線了12F 02/05 06:30
沒,刷機前我壞掉的只有指紋XD推 : 推13F 02/05 06:36
→ : 原始碼竟然有50gb14F 02/05 07:22
推 : 強,推教學15F 02/05 07:24
推 : 先推16F 02/05 08:14
推 : ???17F 02/05 08:39
※ 編輯: ivon852 (36.236.188.73 臺灣), 02/05/2023 09:17:25推 : 推18F 02/05 09:18
推 : 推19F 02/05 09:19
推 : 推20F 02/05 09:49
推 : 好厲害21F 02/05 10:10
推 : 推22F 02/05 10:26
推 : 看惹一下,還以為走錯板23F 02/05 10:40
推 : 推 還好xz3還有lineage官方維護24F 02/05 10:51
推 : 感謝分享25F 02/05 10:53
推 : docker compose不能用應該是沒選到arm版吧?26F 02/05 11:06
推 : 鼓勵更多實作文27F 02/05 11:20
推 : 推, 很實用.28F 02/05 11:20
推 : 推 之前有想試 但是不能開網銀就退縮了29F 02/05 11:22
推 : 技術文推30F 02/05 11:57
推 : 推技術文31F 02/05 12:09
--
※ 看板: MobileComm 文章推薦值: 0 目前人氣: 0 累積人氣: 211
回列表(←)
分享