1. 程式人生 > >Android 9.0 核心編譯實戰(以一加6為例)

Android 9.0 核心編譯實戰(以一加6為例)

前人栽樹後人乘涼…

我們這裡用EX核心編譯做個示範 https://github.com/flar2/OnePlus6/tree/ElementalX-3.00

1.同步程式碼啦

git clone https://github.com/flar2/OnePlus6.git -b ElementalX-3.00

2.交叉編譯工具鏈下載
https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/
解壓到某個目錄.

3.配置環境,這個可以參考我的上一篇文章,只到搭建環境那一步原始碼就不用同步啦…編譯核心我們用不到那麼多…

https://blog.csdn.net/qq910689331/article/details/83622290

我這裡直接這麼幹了.最好還是配置臨時環境變數

sudo gedit /etc/profile 
export ANDROID_AARCH64=~/android/onepluspie/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin
export ARCH=arm64
export SUBARCH=arm64
export PATH=$PATH:$ANDROID_AARCH64
export CROSS_COMPILE=aarch64-linux-android-
source /etc/profile && . /etc/profile
cd ~/android/onepluspie/kernel/oneplus/ElementalX-3.00
make O=output elementalx_defconfig
cd output
make O=output DTC_EXT=dtc -j16

4.開心的告訴你,上面的命令已經把核心編譯出來了… 生成的產物在

~/android/onepluspie/kernel/oneplus/ElementalX-3.00/output/arch/arm64/boot/
~/android/onepluspie/kernel/oneplus/ElementalX-3.00/output/arch/arm64/boot/dts/

下面是將核心刷入手機,
這裡推薦一個開源庫anykernel2,具體使用自己去看,灰常詳細
https://github.com/osm0sis/AnyKernel2/blob/master/README.md
一加6是A/B system…我很懶 直接用現成的指令碼啦…
解壓
EX核心卡刷包
我們只需要替換dtbs kernel即可
在這裡插入圖片描述


dtbs目錄底下的sdm845-v2.1.dtb sdm845-v2.dtb sdm845.dtb 對應於我們編譯出來的
~/android/onepluspie/kernel/oneplus/ElementalX-3.00/output/arch/arm64/boot/dts/qcom
下的檔案…

kernel/Image.gz 對應於我們編譯出來的~/android/onepluspie/kernel/oneplus/ElementalX-3.00/output/arch/arm64/boot/Image.gz

替換壓縮成zip,匯入手機用twrp3.2.3(Team Win Recovery Project) 刷入即可…

刷完了老哥.下面我們看下成果
在這裡插入圖片描述
文中用到的卡刷檔案
都在這了
連結: https://pan.baidu.com/s/1Tnmaa8ZvMK2OsC9iU7DlGA 提取碼: 4wnu 複製這段內容後開啟百度網盤手機App,操作更方便哦

這,只是剛剛開始,核心有趣的多了…自個玩去吧