之前自己编译过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 first6) Build Zip Package | Use 5 first7) Compressed image | ON-Special Device Menu-8) Update Defconfig | Use 3 first9) Copy Zip | Use 6 first0) Reboot to recovery-Script Options- o) View Build Output | ONg) 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 Linaro1) GCC 6.4.1 toolchain from Linaro2) GCC 7.2.1 toolchain from Linaro-GCC UBERTC-3) GCC 5.3.1 toolchain from UBERTC4) GCC 6.4.1 toolchain from UBERTC5) GCC 7.2.1 toolchain from UBERTC6) 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 Sabermod9) 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设备驱动等等。
共同学习,写下你的评论
评论加载中...
作者其他优质文章