2016-04-04 14 views
2

最近我决定深入Android开源项目世界。这就是我如何将自己的生活与AOSP相结合:如何在分派AOSP清单后正确运行回购同步?

为了深入了解AOSP世界,我需要弄清楚我的手并修改项目中的代码。我将在三台不同的计算机上执行此操作,因此我需要将我的工作存储在远程git存储库中。所以我需要在我自己的github帐户中分发AOSP清单并从中解决问题。

说后,我尝试用框架项目打,那么我就需要这个项目叉到我自己的github帐户,以及:理想情况下

<project path="frameworks/base" name="platform/frameworks/base" groups="pdk-cw-fs,pdk-fs" /> 

,当我做了本地回购同步,框架/基地项目将从我自己的github账户中获取,所有其他项目将从谷歌git仓库中获取。

这是我在做动作:

我想要做的就是从那里建立该AOSP清单混帐回购协议,以我的github和工作。然后我做:

repo sync -u [email protected]:my_own_github_account/platform_manifest.git 

然后我做的:

repo sync 

不过,我收到了很多错误,像控制台:

fatal: remote error: 
    my_own_github_account/platform/external/libopus is not a valid repository name 
    Email [email protected] for help 

看来回购将承担项目会来自与清单项目相同的基础。我不确定如何正确执行分叉清单的回购同步。

此外,我不确定我试图开始AOSP工作的方式是愚蠢还是不专业。如果是这样,如果你能指出我正确的做法,我会很感激。提前致谢。

回答

3

其实我在这里发现这篇文章几乎完美地回答了我的问题:https://www.primianotucci.com/blog/fork-android-on-github

的原因,我不能做回购同步是因为该行回购的文件:

<remote name="aosp" 
      fetch=".." 
      review="https://android-review.googlesource.com/" /> 

两个点意味着相对于回购清单项目本身取项目。这就是为什么回购试图从my_own_github_account

同步然后,我把它改成

<remote name="aosp" 
      fetch="https://android.googlesource.com" /> 

然后回购同步正常工作。

如果我想从我自己的github帐户中同步某个特定项目,该怎么办?

当然,您需要将该项目镜像到您自己的github帐户。然后修改清单文件是这样的:

添加此行到清单文件:

<remote name="origin" fetch="https://github.com/my_own_github_account" /> 

的名字是你想用你自己的子项目从远程下载源。

然后补充一点:

<project path="frameworks/base" name="platform/base" 
      remote="origin" revision="your_default_revision" /> 

注意的是,为了覆盖默认你需要添加remote="origin"远程下载源。

然后,当你做repo sync,回购将从你自己的github帐户中获取框架/基地,并从谷歌来源获取其他项目。