Ubuntu 19.10 编译安卓6.0.0_r1源码

本文详细记录了在Ubuntu 19.10上编译Android 6.0.0_r1源码的步骤,包括配置软件源、启动i386架构、安装JDK7、使用repo下载源码、下载驱动文件、修改mk文件、切换Python版本、使用ccache加速编译以及最后的编译和刷入过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博客链接:https://blog.xhyeax.com/2019/12/29/ubuntu-1910-android-6-source/

提示

[2020/04/16更新]
建议使用docker进行编译,省心省力
见:在WSL2中使用docker编译安卓源码

概述

之前编译了AOSP 5.1.1源码,没有写文章记录。这次记录一下编译安卓6.0.0_r1的过程,流程大致跟编译5.1.1一样

步骤

配置软件源

sudo vim /etc/apt/sources.list

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

启动i386架构

sudo dpkg --add-architecture i386

更新软件源

sudo apt-get update

安装依赖

程序包
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib \
tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \
dpkg-dev libsdl1.2-dev libesd0-dev \
git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib \
libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev \
lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip m4
JDK

官网查询得知,编译安卓5.x-6.0都是使用JDK7
下载地址: https://pan.baidu.com/s/1AcnT-D9x8EE0Z6Jzuxgscw 提取码: hqh5
将openJDK7解压到/usr/lib/jvm目录下:

mkdir /usr/lib/jvm
tar xvf openjdk-1.7.0_121.tar.xz -C /usr/lib/jvm/

最终文件夹名为/usr/lib/jvm/openjdk-1.7.0_121

修改/etc/profile文件,在末尾添加:

export JAVA_HOME=/usr/lib/jvm/openjdk-1.7.0_121
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

之后执行source /etc/profile,从而免重启使环境变量在当前bash环境下生效,
然后执行以下命令测试java是否正常:

java -version
javac -version

下载源码

有两种选择,直接下载压缩包或者使用repo下载

下载压缩包

http://pan.baidu.com/s/1ngsZs

使用repo下载

repo可使用中科大版本或清华版本
ustc - AOSP(Android) 镜像使用帮助
tuna - AOSP(Android) 镜像使用帮助
以清华源为例
~/.bashrc添加以下内容:

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/

再执行

mkdir aosp
cd aosp
## 创建工作文件夹,并初始化repo
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.0_r1 --depth=1
## 指定深度和分支,只下载对应版本的代码,不下载commit记录
repo sync
## 同步源码树

下载驱动文件

官网找到对应型号和版本的驱动,并解压到源码目录下
然后逐一运行解压出的脚本,读到第8条第e项之后输入I ACCEPT解压出驱动

编译前准备

修改mk文件

修改 art/build/Android.common_build.mk文件,定位到75行

ifneq ($(WITHOUT_HOST_CLANG),true)
改为
ifeq ($(WITHOUT_HOST_CLANG),false)

切换python版本

如果python默认版本为python2,则不需要进行这一步

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
sudo update-alternatives --config python

选择python2的序号并回车

使用ccache

为提高编译效率,使用ccache加速编译
(1) 在~/.bashrc文件末尾添加:export USE_CCACHE=1
(2) 在源码目录执行:
prebuilts/misc/linux-x86/ccache/ccache -M 100G
PS:据说该设置会保存到CCACHE_DIR中,且该命令是长效的,不会因系统重启而失效。
但是可能因为其他原因失效,导致不使用ccache编译,所以建议每次编译前手动设置一下

编译

执行export LC_ALL=C
然后导入编译Android源码所需的环境:
source build/envsetup.sh
执行lunch选择编译目标
make -j24 多线程编译,建议设置线程数为cpu核心数的2倍(grep ^processor /proc/cpuinfo | wc -l查看)

耐心等待编译完成

刷入

out/target/product/型号下找到生成的镜像,fastboot刷入即可

参考

Ubuntu 18.04.3 LTS 编译安卓6.0.0_r1
E:Unable to locate package libssl-dev:i386
ubuntu18.04无法安装libesd0-dev【学习笔记】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值