Android 开发笔记 5:Android 内核下载、编译与调试
来源:互联网 发布:罗马人和日耳曼人 知乎 编辑:程序博客网 时间:2024/06/05 19:48
一、确定Android 内核版本
用虚拟机打开上一节产生的Android系统镜像,与上一节不一样的是我们使用后台打开
$ /home/stone/Android/Sdk/emulator/emulator -avd MyPhone -system out/target/product/generic/system.img &
使用Android SDK自带调试工具adb进入正在的运行的虚拟的终端界面,读取当前的内核版本号
这里可以看出使用的是3.10版本的内核,后面我们就下载编译自己的3.10版本内核。
二、Android 内核源码下载
Android 内核并不是原生Linux 内核,而是经过特殊修改的Linux 内核。因此Android 内核并不是从kernel.org网站下载,而是直接在Android官网下载。
访问网址:https://source.android.com/
这里我们可以看到一个Android 设备与内核的对应表
我们这是使用的设备是虚拟机,虚拟平台并不在这个表中。继续看这个页面的下方可以找到一个专门用于虚拟平台的内核源码下载方式:
但实际上由于某种原因我们不能从这个地址下载源码,因此选择使用国内的清华大学镜像源:https://mirrors.tuna.tsinghua.edu.cn/,Android 相关的源码都可以在这里下载。
我们创建一个新的目录kernel-source/用于保存内核源码:
$ mkdir kernel-source
$ cd kernel-source
$ git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
$ cd goldfish
查看远程分支情况
$ git branch -a
切换分支,使用3.10+的内核
$ git checkout remotes/origin/android-goldfish-3.10
二、Android 内核源码编译
1、设置交叉工具链
交叉工具链在上一节Android 源码目录下
$ ls android-source/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/
$ sudo vim /etc/profile
在PATH中加入交叉工具链路径
重启电脑
$ sudo reboot
重启后测试交叉工具链
$ arm-linux-androideabi-gcc -v
正确显示gcc版本号表示交叉工具链安装成功
2、配置
$ cd goldfish/
$ make distclean
$ make ARCH=arm goldfish_armv7_defconfig
这里有一个问题,就是3.10内核源码的arch/arm/configs/目录下并没有文件goldfish_armv7_defconfig,因此上面的命令会执行失败。关于为什么没有这个问题不得而知,这里采取简单的解决办法,从之前的Android系统中读取配置文件。还是使用adb工具:
(如果之前的adb shell界面没有退出,使用exit退出)
首先切换到root权限
$ /home/stone/Android/Sdk/platform-tools/adb kill-server
$ /home/stone/Android/Sdk/platform-tools/adb root
导出配置文件
$ /home/stone/Android/Sdk/platform-tools/adb pull /proc/config.gz
拷贝配置文件到内核源码中
$ gunzip config.gz
$ cp config kernel-source/goldfish/.config
3、编译
$ make ARCH=arm CROSS_COMPILE=arm-linux-androideabi-
若编译过程中要求选择某些配置,选NO即可,除非有特殊需要。
三、测试Android 内核
测试同样使用上一节使用的虚拟机MyPhone
$ /home/stone/Android/Sdk/emulator/emulator -avd MyPhone -kernel arch/arm/boot/zImage
等待若干分钟我们就能看到虚拟机正常启动了
- Android 开发笔记 5:Android 内核下载、编译与调试
- Android 开发笔记 3:Android 系统源码下载与编译
- Android内核源码下载与编译
- Android内核源代码下载与编译
- Android Linux内核编译调试
- Android Linux内核编译调试
- Android Linux内核编译调试
- 下载和编译Android内核
- pandaboard ES学习之旅——5 Android Linux内核源代码下载与编译
- android开发-6内核编译
- Android内核的编译和调试
- Android内核编译、调试环境配置
- Android内核编译与裁剪
- Android内核编译与裁剪
- Android kernel 下载编译笔记
- Android模拟器*内核下载-编译-运行
- Android 及内核源码下载编译
- 下载android kernel内核,并编译。
- ros同时接收多话题并发布
- 黑苹果链接分享!
- 对数几率回归-机器学习
- 超级汽车电池充电技术,充电一分钟行驶500英里---凯利讯半导体
- 【2017.12.04】日常学习01
- Android 开发笔记 5:Android 内核下载、编译与调试
- idea快捷键,附带和eclipse对比
- 「机器学习」和「深度学习」的 Cheat Sheets Helperhaps
- 基础练习 数列特征
- 设计模式——单例模式
- 学习回顾算法(二分法查找)
- iOS中(以#开头)十六进制的颜色转换为UIColor(RGB)
- js图片查看器
- Linux C Socket编程发送结构体、文件详解及实例