ubuntu16.04下编译android-goldfish-3.4内核源码(android6.0.1系统源代码)

配置

笔者环境

系统: ubuntu 16.04 LTS
硬盘: 固态硬盘

笔者刚开始直接克隆的时候出现如下错误:

error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected

所以将buffer配置增大
git config --global http.postBuffer 520000000

开始克隆

这里使用的是国内的镜像
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git

ubuntu16.04下编译android-goldfish-3.4内核源码(android6.0.1系统源代码)_第1张图片

刚克隆完是没有内容的,可以用如下命令看下分支,注意分支是
android-goldfish-3.4,这个是android系统源代码6.0.1的内核版本。
ubuntu16.04下编译android-goldfish-3.4内核源码(android6.0.1系统源代码)_第2张图片

编译源码

根目录下配置脚本build.sh,其中的PATH路径替换成你本机的

export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eabi-
export PATH=/media/byhook/Backup/Code/6.0.1_r74/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin:$PATH
make goldfish_armv7_defconfig
make -j4

开始编译
bash build.sh

整个过程比编译源代码快多了,几分钟就可以了

ubuntu16.04下编译android-goldfish-3.4内核源码(android6.0.1系统源代码)_第3张图片
可以看到最终生成的文件:
ubuntu16.04下编译android-goldfish-3.4内核源码(android6.0.1系统源代码)_第4张图片

编译Android6.0.1源码

下载和编译配置过程不多说,可以参看之前的文章,Android系统源代码的下载与编译
需要注意的是:
需要将art/build/Android.common_build.mk中的ART_HOST_CLANG改为false

ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),true)
# By default, host builds use clang for better warnings.
ART_HOST_CLANG := false
endif

开始编译
make -j8

ubuntu16.04下编译android-goldfish-3.4内核源码(android6.0.1系统源代码)_第5张图片

配置下相关的环境变量:

export PATH=$PATH:$android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=$android/out/target/product/generic

注意其中的$android是你的android6.0.1的源码根目录。
启动模拟器:
source build/envsetup.sh
lunch 1
cd ~/Code/goldfish
emulator -kernel ./arch/arm/boot/zImage &
注意其中的路径需要替换成你自己的,比如~/Code/goldfish这个就是存放android-3.4内核源代码的目录

ubuntu16.04下编译android-goldfish-3.4内核源码(android6.0.1系统源代码)_第6张图片

可以看到红色区域就是下午编译的内核版本信息。

你可能感兴趣的:(Android源代码,Android系统源代码)