自己編譯Android(小米5)內核並刷入(一鍵自動編譯打包)


之前自己編譯過Android系統,刷入手機。編譯很簡單,但坑比較大,主要是GFW埋的坑。。

編譯android系統太大了,今天記下自己編譯及刷入android內核的方法。

主要是看到第三方內核可以超頻,高通820 大核2.1Ghz 可以超頻到2.3Ghz。
https://forum.xda-developers.com/mi-5s/development/mi5s-floppy-kernel-t3723653

今天就編譯這個第三方內核Floppy Kernel
內核地址:https://github.com/JonasCardoso/android_kernel_xiaomi_msm8996
編譯Android有兩大坑,
第一個是交叉編譯需要設置各種環境變量。
第二個是編譯出來的內核Image文件如何刷入Android系統。

Floppy Kernel 代碼有個神器的腳本 build.sh 居然可以一鍵搞定。。

先說下配置環境,當然先下載內核文件,然后下載交叉編譯工具鏈。
https://bitbucket.org/jonascardoso/toolchain_aarch64_travis

toolchain_aarch64_travis 文件夾重命名為Toolchain,放到內核文件夾同一層目錄。
然后運行source build.sh

$ source build.sh 

Simple Linux Kernel 3.18.31 Build Script (26/06/2018)
FloppyKernel-Nougat-HMP Release 26/06/2018 Build #0
-Clean Menu-
1) Zip Packages      | Already Done!
2) Kernel            | Already Done!
-Main Menu-
3) Device Choice     |  
4) Toolchain Choice  | 
-Build Menu-
5) Build Kernel      | Use 3 first
6) Build Zip Package | Use 5 first
7) Compressed image  | ON
-Special Device Menu-
8) Update Defconfig  | Use 3 first
9) Copy Zip          | Use 6 first
0) Reboot to recovery
-Script Options-
o) View Build Output | ON
g) Git Gui  |  k) GitK  |  s) Git Push  |  l) Git Pull
q) Quit

可以看到很簡單,3 選擇設備,4選擇編譯工具,5編譯,6打包,7啟動recovery刷入。。

簡單解釋下:
3 ,選擇設備,其實是選擇設備配置文件,arch/arm64/configs 這個文件夾里有設備文件夾。
當然可以直接通過 make menuconfig 用界面裁剪配置內核。。
(自己編譯過Linux內核肯定都知道make menuconfig,如果報錯,可能需要安裝相關庫。)

4,選擇編譯工具鏈,也就是選擇編譯器,編譯器有很多種,如下。

-APTESS - Toolchain Choice-

-GCC Linaro-

0) GCC 5.5.0 toolchain from Linaro
1) GCC 6.4.1 toolchain from Linaro
2) GCC 7.2.1 toolchain from Linaro

-GCC UBERTC-

3) GCC 5.3.1 toolchain from UBERTC
4) GCC 6.4.1 toolchain from UBERTC
5) GCC 7.2.1 toolchain from UBERTC
6) GCC 8.0.0 toolchain from UBERTC

-GCC Google-

7) GCC 4.9.0 toolchain from Google

-GCC Sabermod-

8) GCC 4.9.X toolchain from Sabermod
9) GCC 7.0.X toolchain from Sabermod

*) Any other key to Exit

具體有何區別,網上抄來一段。。。。

近年興起的第三方GCC GNU工具鏈有Linaro,Saberod和UberTC。Linaro開源項目的開發者利用GCC工具鏈優化Android,在測試中,他們編譯的版本比目前Google在AOSP(Android Open Source Project)中提供的Android性能提升了20%到30%。例如,在0xBenchmark圖形顯示測試中,官方版本只有30 fps,而Android Linaro優化版本能達到60fps,而SaberMod在其基礎上優化了Linaro的APPs內存展開速度,但UberTC的創建人Chet Kener發現,Linaro庫編譯的Android界面很流暢但加載Apps很不理想,而SaberMod剛好相反界面卡但加載APPs很快,至此一個結合兩者優點的GNU工具鏈UberTC誕生了。

我想說的是有的編譯不過去,多換幾個試試。。

按直接編譯,按6直接打包。然后到zip-creator文件里會多一個zip文件,在用recovery (twrp)刷入即可。。

當然手機可能會用你編譯的內核會無限重啟。。。

自己編譯內核能干哪些事情?

超頻
修改內核模塊,比如喜歡刪溫控的我,直接在內核里把thermal刪掉了。。
添加驅動,比如添加USB設備驅動等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM