Android 7.1 源码编译

一、下载源码

需要curl和git,没有需要装一下

sudo apt-get install curl
sudo apt-get install git

git需要配置用户名和邮箱

git config --global user.name "xxxxxx"
git config --global user.email "xxxxxx@xxx.com"

用curl下载一份repo文件,这是个python脚本

curl https://storage.googleapis.com/git-repo-downloads/repo > repo

移到/usr/bin/里去

sudo mv repo /usr/bin/

由于某些原因,直接下载源码是下不来的,需要使用大陆镜像。可以用清华的镜像
将REPO_URL配置到环境变量里

sudo gedit /etc/profile

添加

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

终端输入如下使之生效

source /etc/profile

选择想要下载的版本,版本号可以在这里查看
https://source.android.com/source/build-numbers#source-code-tags-and-builds

比如需要下载7.1版
先建个文件夹

mkdir android-7.1

进文件夹初始化

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.1_r24

同步源码到本地,不加-f有可能报错

repo sync -f -j4

等着,大概3、40G

二、编译源码

1. 操作系统要求
Android版本编译要求的Ubuntu最低版本
Android 6.0至AOSP masterUbuntu 14.04
Android 2.3.x至Android 5.xUbuntu 12.04
Android 1.5至Android 2.2.xUbuntu 10.04
2. JDK版本要求
Android版本编译要求的JDK版本
AOSP的Android主线OpenJDK 8
Android 5.x至android 6.0OpenJDK 7
Android 2.3.x至Android 4.4.xOracle JDK 6
Android 1.5至Android 2.2.xOracle JDK 5
3. 依赖库

Ubuntu16.04中的依赖

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

7.1的编译需要openjdk-8
没有需要安装一下

sudo apt install openjdk-8-jdk-headless

如果同时存在多个Java版本,需要切换一下

sudo update-alternatives --config java
sudo update-alternatives --config javac

修改jack的配置,不知道这不是不是必须的,我不改的话会报错

build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed

修改android-7.1/prebuilts/sdk/tools/jack-admin,找到

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"

改为

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096M -cp $LAUNCHER_JAR $LAUNCHER_NAME"

然后在android-7.1目录执行

source build/envsetup.sh
lunch

选择要编译的版本,可以选aosp_arm-eng的,编译

sudo make -j8
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值