Ubuntu Android源码以及内核下载与编译
本教程是基于Ubuntu下Android6.0.1源码以及内核的下载和编译,记录一下,以后也就不用自己去找资料,一遍一遍的尝试了。可以翻墙的,英语好的,直接去AndroidSource.
系统环境:Ubuntu14.04LTS
Android版本:6.0.1
重要网址
清华大学镜像
AndroidSource
下载前的准备
安装OpenJdk
sudoadd-apt-repositoryppa:openjdk-r/ppa sudoapt-getupdate sudoapt-getinstallopenjdk-8-jdk sudoupdate-alternatives--configjava java-version
安装git
sudoapt-getinstallgit-core
安装额外的组建
sudoapt-getinstallgnupgflexbisongperfbuild-essential\ zipcurlzlib1g-devgcc-multilibg++-multiliblibc6-dev-i386\ lib32ncurses5-devx11proto-core-devlibx11-devlib32z-devccache\ libgl1-mesa-devlibxml2-utilsxsltprocunzip
下载
因为网络以及墙的原因,我们使用清华大学镜像,步骤如下:
下载repo工具
mkdir~/bin PATH=~/bin:$PATH curlhttps://storage.googleapis.com/git-repo-downloads/repo>~/bin/repo chmoda+x~/bin/repo
下载源码
wgethttps://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar#下载初始化包
tarxfaosp-latest.tar
cdAOSP #解压得到的AOSP工程目录
#这时ls的话什么也看不到,因为只有一个隐藏的.repo目录
reposync#正常同步一遍即可得到完整目录
#或reposync-l仅checkout代码
ps:总共25G,慢慢下吧!
编译
进入AOSP根目录
初始化编译环境
.build/envsetup.sh
选择编译目标,选择1,所有选项的意思,后面更新
lunch
开始编译,这里使用了4个并发数:
make-j4
使用打包工具mmm,完成命令后会在根目录下生成android.irp,用androidstudio打开一个现有项目,打开android.irp即可
mmmdevelopment/tools/idegen/
运行当前版本的模拟器
将emulator源码目录加入PATH中
exportPATH=&PATH:~/bin/AOSP/out/host/linux-x86/bin
设置源码编译输出目录
exportANDROID_PRODUCT_OUT=~/bin/AOSP/out/target/product/generic
运行emulator
emulator
下载Android内核源代码
进入kernel目录,下载内核
gitclonehttps://aosp.tuna.tsinghua.edu.cn/android/kernel/goldfish.git
进入goldfish目录,选择分支
cdgoldfish
gitbranch-a
gitcheckoutremotes/origin/android-goldfish-2.6.29
编译Android内核源代码
将交叉编译工具目录添加到PATH环境变量中
exportPATH=$PATH:~/bin/AOSP/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin
打开goldfish下Makefile修改配置文件,找到ARCH,CROSS_COMPILE,将其修改如下
ARCH ?=arm
CROSS_COMPILE ?=/home/user/bin/AOSP/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/
arm-linux-androidkernel-
note:一定要设为绝对路径。
生成配置文件以及编译
makegoldfish_defconfig
make
运行当前内核版本的模拟器
运行当前模拟器
emulator-kernel./kernel/goldfish/arch/arm/boot/zImage
查看内核版本
adbshell
cdproc
catversion
BUG
JDK内存溢出
FAILED:/bin/bashout/target/common/obj/JAVA_LIBRARIES/framework_intermediates/dex-dir/classes.dex.rsp
Outofmemoryerror(version1.2-rc4'Carnac'(298900f95d7bdecfceb327f9d201a1348397ed8a843843byandroid-jack-team@google.com)).
GCoverheadlimitexceeded.
Tryincreasingheapsizewithjavaoption'-Xmx<size>'.
Warning:Thismayhaveproducedpartialorcorruptedoutput.
ninja:buildstopped:subcommandfailed.
make:***[ninja_wrapper]错误1
A:
exportJACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8-XX:+TieredCompilation-Xmx4g"
./prebuilts/sdk/tools/jack-adminkill-server
./prebuilts/sdk/tools/jack-adminstart-server
以上就是对Android源码的下载,和编译,后续继续更新相关文章,谢谢大家对本站的支持!