该项目服务于LineageOS编译, 将AOSP的源代码替换成国内的镜像(中科大与清华的镜像).
首先现在repo工具, 下载地址: https://storage.googleapis.com/git-repo-downloads/repo, 如果被墙, 走清华的镜像(我是用VPS下载原地址后从服务器拉取的).
下载完毕, 因为每次运行repo命令, repo自身将检查自己的更新。 使用清华镜像:
# 可以放在.bashrc中
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
wiki中使用命令同步代码:
repo init -u https://github.com/LineageOS/android.git -b lineage-15.1
repo sync
不过github中的这个Manifest地址配的都是google的官方地址, 拉取肯定失败。
该仓库与github上的LineageOS仓库保持同步,包括分支名称lineage-15.1. 理论上将https://github.com/LineageOS/android.git 替换成本仓库地址。
不过本文推荐使用国内镜像下载基础包的方式下载: 毕竟网速快, 还有迅雷一类的下载加速软件。 linux使用aria2c下载该镜像网速还可以, 4-5M/s (同时使用10个连接)吧, 不稳定. 下载后一定要校验md5值.
校验完成, 解压:
tar -xf aosp-xxxx.tar // 需要几分钟时间
cd aosp
repo init -u https://gitee.com/ldkxingzhe/LineageOsManifest -b lineage-15.1
repo sync --sync-force
以后再需要进行同步只需要执行repo sync方法即可, 至于第一次为什么需要强制同步, 好像是仓库被占用, 强制就好. 接下来就需要从github拉取LineageOS的代码了, 也是一个挺费时的操作。 等待吧. 给个脚本:
#sync.sh
#!/usr/bin/zsh
print "Start Sync"
../repo sync $@
for var1 in 1 2 3 4
do
if [ $? -eq 0 ]
then
print "sync complete"
break
else
../repo sync $@
fi
done
echo "Done, now Shutdown"
# 执行命令
./sync.sh --force-sync
因为个人使用的是ArchLinux, 滚动式更新, 不想因为编译弄脏了电脑, 更不想因为类库版本出现编译问题。 决定使用docker, 并将home外挂的形式。
镜像使用的是官方的ubunut 16.04base, 安装wiki与aosp的官网教程, 没有问题。
缺点:没有处理docker关于USB的问题, 所以docker中不能使用adb sync等方法操控手机,必须切换到宿主机才可以。 还有文件读写权限问题, 在docker中建一个与宿主机相同的账户即可。
现在临时创建一个swap文件挂上吧, 建议直接8G走起。 我刚开始就只给了6G, 编译过程中报出了第二个错误, 又临时加的. 最后还是要抱怨一下google的Jack编译, 真是很坑。 编译速度老慢啦!!
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。