自己编译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设备驱动等等。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

《Spring Boot极简教程》第17章 Spring Boot集成日志小结

Java日志框架众多,常用的有java.util.logging, log4j, logback,commons-logging等。

1392
来自专栏用户2442861的专栏

守护进程与僵尸进程

http://blog.csdn.net/russell_tao/article/details/7090033

951
来自专栏龙首琴剑庐

OpenJDK8 Windows编译

前言 Open JDK 是开源的JDK。通过对开源JDK的编译调试,我们可以深入了解JVM的运行原理。 以下是我的环境信息: 操作系统: Microsoft W...

80911
来自专栏LEo的网络日志

windows安装redis

4337
来自专栏数据之美

windows 小技巧搜集(不定期更新)

1、更改cmd的默认路径 你可以在注册表的“HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor” 下面新...

2518
来自专栏区块链入门

第三十二课 如何在Windows环境搭建REMIX本地环境,访问本地目录?1,摘要2,参考文档完成NODE.JS的安装3,命令行安装REMIX IDE4,启动本地IDE5,在REMIX上访问本地文件夹

《第十课 Solidity语言编辑器REMIX指导大全》文章详细介绍了使用REMIX IDE环境调试Solidity智能合约的方法,其中没有介绍在本地部署IDE...

3053
来自专栏一个会写诗的程序员的博客

8.7 Spring Boot集成日志小结

Java日志框架众多,常用的有java.util.logging, log4j, logback,commons-logging等。

4112
来自专栏小狼的世界

Eclipse Galileo SR2 参数配置

要崩溃了,下载了 eclipse-jee-galileo-SR2-win32.zip ,解压缩,运行后提示:

1173
来自专栏Cloud Native - 产品级敏捷

微服务架构设计 第八步: 设计微服务对外 REST API

2016.9.22, 北京, Ken Fang 开发与测试人员协作完成了: 微服务对外需提供的方法 (API) 后, 开发与测试人员便需继续协作, 将微服务对外...

4636
来自专栏学习有记

安装Scrapy库报错 “error: Microsoft Visual C++ 14.0 is required. ”解决方法

1424

扫码关注云+社区

领取腾讯云代金券