避免设备特定的Android源代码获取

避免设备特定的Android源代码获取,android,android-source,repository,Android,Android Source,Repository,我正在使用Android源代码。每次我进行repo-sync时,我都会下载一些我不想要的特定于设备的存储库,因为我只针对一台设备,比如HTC Ace 有没有办法避免这种开销?aosp的做法可能是使用回购工具排除或包含特定的包。最好的方法可能是添加您自己的本地清单,删除您不想要的包。例如,下面是一个示例文件: <manifest> <remote name="origin" fetch="ssh://git@github.com/MyRepository

我正在使用Android源代码。每次我进行
repo-sync
时,我都会下载一些我不想要的特定于设备的存储库,因为我只针对一台设备,比如HTC Ace


有没有办法避免这种开销?

aosp的做法可能是使用回购工具排除或包含特定的包。最好的方法可能是添加您自己的本地清单,删除您不想要的包。例如,下面是一个示例文件:

<manifest>
  <remote name="origin"
           fetch="ssh://git@github.com/MyRepository/" />
  <remove-project name="device/lge/hammerhead"/>
  <remove-project name="device/lge/mako"/>
</manifest>

将其放入remove_manifest.xml(您可以随意命名)中,并将其放入存储库中的.repo/local_manifest中


Cyanogen已经为我们所有人记录了本地的货物清单,因此您可以在这里参考他们的工作:

aosp的工作方式可能是使用回购工具排除或包括特定的包裹。最好的方法可能是添加您自己的本地清单,删除您不想要的包。例如,下面是一个示例文件:

<manifest>
  <remote name="origin"
           fetch="ssh://git@github.com/MyRepository/" />
  <remove-project name="device/lge/hammerhead"/>
  <remove-project name="device/lge/mako"/>
</manifest>

将其放入remove_manifest.xml(您可以随意命名)中,并将其放入存储库中的.repo/local_manifest中


Cyanogen已经为我们所有人记录了本地清单,因此您可以在这里参考他们的工作:

正如其他人已经建议的,本地清单可以用于修补原始清单。但是,清单也可以将项目分组,您可以使用
-g
选项
repo init
选择要下载的项目组

我认为所有您不关心的设备Git都被放在了“设备”组中,因此通过在该组前面加上连字符来排除该组应该可以实现您想要的功能。默认组集为“默认,平台平台”,例如“默认,平台linux”或“默认,平台darwin”,尽管平台-*项似乎与AOSP项目的标记方式不匹配。无论如何,这应该可以消除不需要的项目:

repo init -u ... -g default,-device

您可以浏览清单(
.repo/manifest.xml
)以查找您不感兴趣的其他组。

正如其他人所建议的,本地清单可用于修补原始清单。但是,清单也可以将项目分组,您可以使用
-g
选项
repo init
选择要下载的项目组

我认为所有您不关心的设备Git都被放在了“设备”组中,因此通过在该组前面加上连字符来排除该组应该可以实现您想要的功能。默认组集为“默认,平台平台”,例如“默认,平台linux”或“默认,平台darwin”,尽管平台-*项似乎与AOSP项目的标记方式不匹配。无论如何,这应该可以消除不需要的项目:

repo init -u ... -g default,-device
您可以浏览清单(
.repo/manifest.xml
)以查找您不感兴趣的其他组