魔趣开源项目定制版Repo-全程无需科学上网环境同步完整Android源码库

魔趣开源项目定制版Repo-全程无需科学上网环境同步完整Android源码库
0

#1

什么是Repo:
Android 使用Git作为代码管理工具,并为此开发了Repo命令行工具。
Repo实现了Git中部分命令的封装,使得海量的Git库可以得到便捷的管理。

使用魔趣开源项目定制版Repo的好处:
同步Android源码的第一步便是下载Repo,而这个脚本存放于谷歌的服务器上。
我们在下载它的时候需要科学上网,但是往往挂着代理,也常常要重试好几回方能成功下载。
而且即使下载成功了,在之后repo init的步骤中,又要在初始化目录再次下载,又要重试好多回。
更为重要的是,安卓源码中有大量项目指向"https://android.googlesource.com",不科学上网根本无法下载。
而且自己搭建科学上网服务步骤过于繁琐,受限于代理服务器性能,最终下载速度依旧会很慢。
有些人可能会选择修改源码库Manifest文件中的AOSP地址,但这种方式也有缺陷。
Manifest文件经常发生更新,一旦发生更新,同步代码就会报错。此时又需要改回去,再同步,再修改。
使用魔趣定制版Repo可以无需科学上网从魔趣开源项目位于国内的服务器上进行Repo的更新、下载。
更可以在环境变量中自定义AOSP项目的拉取地址,使得源码的下载过程中不需要科学上网和修改Manifest文件。

安装Repo:(如果你之前安装过Rpeo,请删除,必须要使用魔趣定制版本)
1.在当前用户的根目录创建bin文件夹,并添加到系统环境变量中。

$ mkdir ~/bin
$ PATH=~/bin:$PATH

2.下载Repo并给予执行权限

 $ curl https://download.mokeedev.com/git-repo-downloads/repo > ~/bin/repo
 $ chmod a+x ~/bin/repo

同步源码:
在需要同步源码的文件目录下使用repo命令进行初始化和同步,例如同步MK71.2源码

$ repo init -u https://github.com/MoKee/android -b mkn-mr1
$ repo sync

旧项目切换:
已经repo初始化过的项目,默认还是会从Google下载,需要使用repo init切换下(切换前请删除项目目录.repo/repo文件夹)

$ repo init -u https://github.com/MoKee/android.git -b mkn-mr1

高级模式:
修改用户根目录.bashrc文件添加参数配置可以修改AOSP镜像的拉取地址,默认为Google地址。(需要哪个配置哪一行)

$ export MK_AOSP_REMOTE=caf (高通镜像)
$ export MK_AOSP_REMOTE=ustc (中国科学技术大学镜像)
$ export MK_AOSP_REMOTE=tuna (清华大学镜像)
$ export MK_AOSP_REMOTE=aosp (Google镜像)
$ export MK_AOSP_REMOTE=mokee (魔趣开源项目镜像)

如何更新:
在项目根目录执行

$ repo selfupdate

特别说明:
目前我们仅向魔趣开源项目的开发者提供AOSP镜像的免科学上网同步功能。
其它ROM使用定制版Repo只能享受到Repo的免科学上网更新、下载。同步代码过程和原版Repo没有区别。


#2

摆下几个问题,自己一边谷歌一边期待指点:
$mokee 项目根目录

1.去$mokee/.repo/manifest(用git切换分支):git checkout mkm remotes/origin/mkm), 再$mokee repo sync,仍要下载部分文件,虽然量不大(再切回mkn-mr1也是如此)
↑ ↑ ↑ ↑ ↑ ↑ ↑
这个操作跟
$mokee:repo init xxx -b mkm
有区别么?

2.我用的z2,想就地试手,在魔趣的git上该机型的device,vendor已经没了,lineageos的git上也没有这两个,我能请问编译服务器上用的配置?


#3

不一样,用repo init切换更科学。
z2属于受保护的项目,维护者没有授权我们开源内核以外的项目。


#4

非常魔性的问题,需要请教
我下了zuk z2(2.0.069)的官方源码来编译
出错在这个地方:

一个叫vdso.o.dbg文件找不到 依赖项vdso.o
然后我去到vdso.S所在的文件夹尝试编译vdso.o(它依赖vdso.S)
然后,报错linux/init.h 没有那个文件或目录
我惊了,明明源码根目录有include/linux/init.h的

搞不懂,求直接或间接指点(比如怎么看make时都包含了哪些头文件路径)


#5

老哥,为什么我按照你说的做的,还是会去http://android.googlesource.com/下载东西?
用的是$ export MK_AOSP_REMOTE=ustc (中国科学技术大学镜像)

ubuntu@ubuntu:~/mokee$ echo $MK_AOSP_REMOTE
ustc

已经解决

手动修改repo的仓库地址,详情参照:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/


#6

龙猪大佬,我执行 init 的时候报了这个错

repo:6: missing end of string
repo:175: parse error near `end'

是什么原因呢,系统是ubuntu17.10
python 版本是2.7.X