编译Android 9.0内核源码并刷入手机
目的:修改内核源码,并刷入手机
步骤如下:
1.获取手机对应的内核下载地址
参考https://source.android.com/setup/build/building-kernels
我的设备是pixel sailfish,所以对应的源码地址是kernel/msm,编译配置是marlin_defconfig
使用git下载:
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git
2.获取手机对应的内核版本
使用如下命令查看:
adb shell cat /proc/version
Linux version 3.18.100-g4212e6b8dac58 (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #42 SMP PREEMPT Sat Dec 29 19:19:56 CST 2018
其中4212e6b8dac58便是这台手机内核的git commit id,通过git切换到对应的id处:
git checkout 4212e6b8dac58
3.编译前的准备
a.先下载32位的编译工具链:
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9
b.在内核源码目录下依次执行以下几个命令:
export CROSS_COMPILE=${NDK_PATH}/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-
export CROSS_COMPILE_ARM32=${NDK_PATH_32}/bin/arm-linux-androideabi-
export ARCH=arm64
export SUBARCH=arm64
make marlin_defconfig
其中${NDK_PATH}是ndk的路径,${NDK_PATH_32}是刚下载的32位工具的路径
执行make marlin_defconfig后会在根目录下产生一个.config文件,如果想修改某些编译选项可以直接修改这个文件.
如同的手机可能对应的配置文件不同,参考上图1即可.
4.开始编译
直接在根目录执行make即可
5.编译成功:
Image.lz4-dtb便是编译好的内核文件
6.生成新的boot.img
需要生成boot.img才能输入手机,在aosp目录下执行如下命令:
export TARGET_PREBUILT_KERNEL=/home/yanchen/Dev/android-source/kernel/msm_pixel_9.0_sailfish/arch/arm64/boot/Image.lz4-dtb
rm out/target/product/sailfish/boot.img && make bootimage
TARGET_PREBUILT_KERNEL指向刚编译好的内核文件.
by the way,如果想要替换boot.img中的default.prop,可以在build/core/Makefile中做如下修改:
7.刷入手机
执行如下命令即可:
fastboot flash boot boot.img
编译Android 9.0内核源码并刷入手机相关推荐
- android 3.10. 内核,编译android 3.10内核源码时出错
最近我尝试为我的xiaomi mi4c交叉编译android内核. 要做到这一点,我已经下载并这样配置的工具链:从这里编译android 3.10内核源码时出错 git clone https://a ...
- 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码
http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...
- Ubuntu16.04编译Android 6.0系统源码过程简要记录总结
一,安装VMware Workstation,百度网盘下载(内含注册机) 链接: https://pan.baidu.com/s/1wz4hdNQBikTvyUMNokSVYg 提取码: yed7 V ...
- Ubuntu 16.04 编译Android 6.0系统源码
准备环境 1.安装open-jdk7 [使用open-jdk8会报错],原因是: 在build/core/main.mk中默认指定的是jdk1.7 # Check for the correct ve ...
- Android 4.0.1 源码下载,编译和运行
[牛人分享]Android 4.0.1 源码下载,编译和运行 转自 http://blog.csdn.net/rambo2188/article/details/6943382 ----------- ...
- android 4.0模拟器启动不了,Android 4.0 framework源码修改编译,模拟器运行不起来,求助...
当前位置:编程学习 > wap >> Android 4.0 framework源码修改编译,模拟器运行不起来,求助 我下载编译了android 4.0 ICS的源码,然后能利用编译 ...
- android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?
点击上方"刘望舒",选择"星标" 多点在看,就是真爱! 作者 : 刘望舒 | 来源 :刘望舒的博客地址:http://liuwangshu.cn/fram ...
- android s905 编译_NanoPi K2 (Amlogic S905) Ubuntu 16.04 编译Android 5.1系统源码
NanoPi K2 (Amlogic S905) Ubuntu 16.04 编译Android 5.1系统源码 1. 下载源码 在这里下载https://www.mediafire.com/folde ...
- Android 8.0系统源码分析--开篇
个人分类: Android框架总结Android源码解析android framework 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sinat ...
最新文章
- 最常见的《最聪明的技巧》实战讲解!
- 京东商城Android版客户端 安装到手机上就能轻松购物
- 【Weiss】【第03章】练习3.20:中缀表达式转后缀表达式
- hashmap中的hash扰动函数
- 前端:Vue前端开发规范,值得收藏!
- c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast
- java pojo使用_在POJO中使用ThreadLocal进行Java嵌套事务
- c++检测输入是否为数字_Go64 for Mac(检测应用是否为64位)
- 产品经理的职业天花板在哪?
- HitPaw Watermark Remover视频图去除水印工具V1.2.1.1
- 药业计算机系统专项内审检查表,2017年最新医疗器械内审检查表 分部门 已填写...
- AndroidManifest.xml文件详解(receiver)
- Python使用装饰器捕获异常,并写入日志,不中断进程
- java pgsql connection 是否可同时执行sql_Java教程:解读JDBC是什么
- 《DSP using MATLAB》Problem 6.6
- 100+个Java项目视频教程+源码+笔记,项目经验不用愁了!
- windowxp网络无法发现其他计算机,几个步骤轻松解决win7无法访问XP系统共享问题...
- Revit族加密工具分享
- 银河麒麟crontab下班自动关机
- PMP考试技巧+前九章内容提炼整理(不定时更新)
热门文章
- Maya Mash 系统的简单介绍
- 《Java SE实战指南》08-05:do-while语句
- WPScan基本使用(wordpress)
- 写代码要像女人的裙子一样美丽
- 继妹变继母,儿子与自己断绝关系,世界首富马斯克,为何这么惨?
- java设计模式转发_Java设计模式之《单例模式》及应用场景(转发:http://www.cnblogs.com/V1haoge/p/6510196.html)...
- 【金三银四】软件测试简历项目经验怎么写,没有项目经验?
- steam搬砖,项目要怎么做。
- java 团购开发_Java生鲜电商平台-团购模块设计与架构
- 让数据发声 IBM在电商时代下的智慧营销