如何通过Build ID 9407610克隆/同步AOSP源码?
克隆指定Build ID的AOSP源码正确方法
你之前的方法出错,是因为手动替换default.xml后,repo的核心配置未同步更新,且部分项目的预打包bundle文件缺失导致无法读取SHA1。以下是正确的操作流程:
步骤1:清理错误环境(可选)
如果之前的同步残留了损坏的文件,先清理:
rm -rf .repo
步骤2:用指定Manifest初始化Repo
直接使用下载的manifest_9407610.xml进行初始化,避免手动替换文件的问题:
# 把/path/to/替换为manifest文件的实际路径,比如当前目录就写./manifest_9407610.xml repo init -u https://android.googlesource.com/platform/manifest -m /path/to/manifest_9407610.xml --no-clone-bundle
--no-clone-bundle选项会跳过预打包的bundle文件,直接从Git仓库拉取代码,避免bundle缺失导致的SHA1读取错误。
步骤3:强制同步源码
执行同步时加上--force-sync参数,强制覆盖本地有问题的项目:
repo sync -c -j8 --force-sync
若仍有单个项目报错的处理方案
如果还是出现类似无法读取SHA1的错误,针对单个项目手动处理:
- 打开
manifest_9407610.xml,搜索报错项目的名称(比如kernel-5.4-lz4),找到对应的path和name字段,例如:
<project path="kernel/lz4" name="kernel/lz4" revision="0833eee0dbc0dc81a8a410c34760a15617b142a3" />
- 手动克隆并切换到指定commit:
mkdir -p kernel/lz4 git clone https://android.googlesource.com/kernel/lz4 kernel/lz4 cd kernel/lz4 git checkout 0833eee0dbc0dc81a8a410c34760a15617b142a3 cd ../..
- 重复上述步骤处理其他报错项目,之后再执行
repo sync -c -j8即可完成剩余同步。
内容的提问来源于stack exchange,提问作者GNK
相关产品推荐
相关产品推荐

