aosp 为什么某些目录没有编译_下载编译AOSP

本文介绍了在国内环境下如何高效地下载和编译Android Open Source Project (AOSP) 源码。建议从清华开源镜像站下载tar包,修改repo配置以使用中科大镜像,编写脚本来处理repo sync过程中经常出现的中断问题。在编译阶段,调整Java版本和堆大小以避免问题,并提供了刷机的注意事项。
摘要由CSDN通过智能技术生成

下载

Android的源码下载编译可以算是一个持久性老大难问题了,如果是在国内弄,更是涉及政治,经济,历史,文化的方方面面:-)

除了安装Google文档里的依赖库,源码本身的下载编译才是重头戏,我目前比较试过行之有效的方法如下:

首先,从清华开源站下载最新的源码tar包,解压后,修改.repo/manifests.git/config文件

url = git://mirrors.ustc.edu.cn/aosp/platform/manifest

1

url=git://mirrors.ustc.edu.cn/aosp/platform/manifest

然后,repo init -b xxx到你要的分支,再repo sync就可以了

选择两个站是因为,清华有tar包,可以显著提升下载速度,但至少按照他们的文档来看,仅支持http方式的git同步。相比ssh的git在repo sync阶段要慢且非常容易中断,所以下载好的.repo要修改url指向科大的源。

再来就是repo sync总是提示中断,下载错误,无论你的网络有多好,同步半个小时左右就会出现这个问题。对于这一点也确实试了所有灵丹妙药,最后发现无非就是限制线程数量,然后反复同步,为此专门写了一个脚本自动反复单线程repo sync,想要停止的话,touch stopme即可

import os

while(1):

if os.system("repo sync -j1") == 0:

break

if os.path.exists("stopme"):

break

1

2

3

4

5

6

importos

while(1):

ifos.system("repo sync -j1")==0:

break

ifos.path.exists("stopme"):

break

编译

至于编译一般来说问题不大,无非就是Java版本可能出些问题,或者堆大小要调高之类的,编译开始前就先设置一下堆的大小:

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"

./prebuilts/sdk/tools/jack-admin kill-server

./prebuilts/sdk/tools/jack-admin start-server

1

2

3

exportJACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"

./prebuilts/sdk/tools/jack-adminkill-server

./prebuilts/sdk/tools/jack-adminstart-server

刷机

由于编译好的rom并不完整,仅包含boot.img,system.img等基本信息,可能和手机内的其他模块如modem,radio,bootloader等冲突,最好先用同版本或接近版本的factory image刷一次,然后再到编译好的rom目录执行

fastboot flashall -w

1

fastbootflashall-w

如果刷机以后系统无法启动,可能是bootloader版本不匹配导致的,从官网下载同版本rom后,先./flash-all一下就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值