编译Android内核

简介: 版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/47807089 首先需要知道自己android内核的版本,我们android系统是android 4.
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/47807089

首先需要知道自己android内核的版本,我们android系统是android 4.0.1,内核版本为2.6.29.

这里写图片描述

由于我们在下载android源代码的时候默认是不带内核源码的,因为他内置了一个编译好的zImage内核镜像,所以,如果要编译内核源码的时候,我们需要下载我们当前版本的内核源码.注意,这里的内核源码并不是Linux官网的内核源码,而是谷歌定制的内核.

我们首先需要在android源代码根目录下新建一个kernel目录.

mkdir kernel
cd kernel
git clone http://android.googlesource.com/kernel/goldfish.git

这个需要等待一段时间,下载完成之后,我们使用如下命令.

git branch -a
//找到自己需要的内核源码版本
git checkout remotes/origin/android-goldfish-2.6.29

好了,完成之后,我们就可以编译我们的内核源代码了.在编译之前,我们需要修改一个内核源码的根目录下的Makefile文件,也就是老罗提到的修改两个部分:

ARCH            ?= arm
CROSS_COMPILE   ?=  arm-eabi-   

在make之前,我们需要将Android提供的交叉编译链添加到我们的环境变量中,android提供的交叉编译链在目录
/prebuilt/linux-x86/toolchain 中.

这里写图片描述

下面我们使用下面的命令进行编译:

export PATH=$PATH:~/android/prebuild/linux-x86/toolchain/arm-eabi-4.4.3/bin

//android2.3以下使用这个
make goldfish_defconfig
//android2.3以上使用这个
make goldfish_armv7_defconfig

//多线程编译
make -j4 

等出现zImage生成成功,表示编译完成.

这里写图片描述

最后,指定内核运行我们的虚拟机.

emulator -kernel ./kernel/goldfish-android/arch/arm/boot/zImage 

如果想要在后台运行这个虚拟机来启动adb的话,则需要在命令后面添加”&”.

emulator -kernel ./kernel/goldfish-android/arch/arm/boot/zImage &
目录
相关文章
|
5月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
373 1
|
1月前
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
2月前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。
|
3月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
119 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
3月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
3月前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
5月前
|
Android开发 Docker 容器
docker中编译android aosp源码,出现Build sandboxing disabled due to nsjail error
在使用Docker编译Android AOSP源码时,如果遇到"Build sandboxing disabled due to nsjail error"的错误,可以通过在docker run命令中添加`--privileged`参数来解决权限不足的问题。
1016 1
|
5月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
242 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
5月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
362 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
5月前
|
搜索推荐 Android开发
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
本文分享了不同价位电脑配置对于编译AOSP安卓系统源代码的影响,提供了从6000元到更高价位的电脑配置实例,并比较了它们的编译时间,以供学习AOSP源代码时电脑配置选择的参考。
323 0
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?