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

自己编译Android(小米5)内核并刷入(一键自动编译打包)的更多相关文章

  1. 编译Android源代码与内核总结

    这些天花了些时间自己下载了android源代码来编译,当中走了一些弯路导致耗了些时间,如今又一次梳理总结下,让有同样想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.and ...

  2. 关于小米4电信4g刷入第三方ROM无信号解决办法

    from: http://www.yuwantb.com/xiaomi4-lineage-os.html   关于小米4电信4g刷入第三方ROM无信号解决办法 下载这个电信4g补丁包. 链接:http ...

  3. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  4. 小米路由器3G R3G 刷入Breed和OpenWrt 20.02.2 的记录

    小米 R3G 参数 Architecture: MIPS Vendor: Mediatek Bootloader: U-Boot System-On-Chip: MT7621 family CPU/S ...

  5. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...

  6. 自己动手编译Android(LineageOS)源码

    准备 设备:红米3s 设备代号:land Android版本:7.1.1 源码提供:Lineage PC配置: 系统:Ubuntu16.04 x64 至少12G RAM 至少80GB 剩余硬盘空间 良 ...

  7. 红米手机4A怎么样刷入开发版获得ROOT权限

    小米的手机或平板不同手机型号一般情况官方都提供两个不同系统,可分为稳定版和开发版,稳定版没有提供root权限管理,开发版中就支持了root权限,在很多工作的时候我们需要使用的一些功能强大的app,都需 ...

  8. MIUI8系统完整刷入开发版开启root权限的经验

    小米的机器不同手机型号一般情况官网都提供两个不同的安卓系统版本,可分为稳定版和开发版,稳定版没有提供root超级权限管理,开发版中就支持了root超级权限,很多情况我们需要使用的一些功能强大的APP, ...

  9. MIUI7系统如何刷入开发版启用root超级权限

    小米的手机或平板不同手机型号通常情况MIUI官方论坛都提供两个不同系统,大概可分为稳定版和开发版,稳定版没有提供root权限管理,开发版中就开启了root权限,很多情况我们需要使用的一些功能强大的AP ...

随机推荐

  1. Java裸写爬虫技术,运用多线程技术,高效爬取某个医疗机构网站数据

    最近喜欢上了数据的庞大的感觉,就爬取了一下某个医疗机构网站医疗数据,由于数据量庞大,只爬取了江西省的各个市的各个医院的各个科室的各个科室.中各种信息.其中用的持久层技术是hibernate框架,和用到 ...

  2. Flsk-Bootstrap-2

    目录 Flsk-Bootstrap-2 结构 解压Bootstrap 制作基础模板 视图函数 初始文件 启动文件 浏览器 Flsk-Bootstrap-2 参考:Flask 项目中使用 bootstr ...

  3. BZOJ 5093[Lydsy1711月赛]图的价值 线性做法

    博主曾更过一篇复杂度为$O( k· \log k)$的多项式做法在这里 惊闻本题有$ O(k)$的神仙做法,说起神仙我就想起了于是就去学习了一波 幂与第二类斯特林数 推导看这里 $$ x^k=\sum ...

  4. 题解 洛谷P3936 Coloring

    考虑搜索,发现复杂度爆炸        贪心,正确性过低(~~实测爆炸~~) 于是,~~发现~~这题是模拟退火 这里不讲解退火的定义了,初学退火可以去平衡点 退火本身维护一个答案图像,答案的q,当前图 ...

  5. 传输层--TCP和UDP的区别

    UDP(用户数据报协议):为调用它的应用程序提供了一种不可靠.无连接的服务. TCP(传输控制协议):为调用它的应用程序提供了一种可靠的.面向连接的服务. 当设计一个网络应用程序时,该应用程序的开发人 ...

  6. 管理外部表(External Tables)

    Oracle数据库允许对外部表中的数据进行只读访问.外部表定义为不驻留在数据库中的表,并且可以是为其提供访问驱动程序的任何格式.通过为数据库提供描述外部表的元数据,数据库能够公开外部表中的数据,就好像 ...

  7. Spring Cloud 2-RabbitMQ 集成(八)

    Spring Cloud  RabbitMQ  pom.xml application.yml 提供者 消费者 队列配置 单元测试 通过消息队列MQ做为通信中心,这里采用RabbitMQ.安装方参考: ...

  8. multiwan 脚本

    以下为校区ACM实验室多拨脚本,使用了macvlan模块,具体策略路由和连接标记等思路就不解释了. #! /bin/bash getip() { |grep -o -e 'inet addr:[^ ] ...

  9. git branch 分支

    几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副 ...

  10. 2018开源中国最受欢迎的中国软件MyBatis-Plus

    2018开源中国最受欢迎的中国软件MyBatis-Plus 官方网址:https://mp.baomidou.com 中国软件,中文文档 什么是MyBatis-Plus? 进入官方第一句话:为简化开发 ...