You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Android ROM开发:如何获取安全补丁的Git refs/changes路径?

如何从Android安全公告找到对应补丁的refs/changes引用并应用补丁

嘿,给自定义Android ROM打安全补丁确实是个需要摸清楚门路的活儿,我之前帮朋友处理过类似的需求,刚好可以给你梳理清楚步骤:

第一步:从安全公告定位补丁的核心信息

首先,你需要找到对应月份的Android安全公告,里面会列出所有需要修复的CVE漏洞,以及每个漏洞对应的:

  • 受影响的代码组件(比如frameworks/base、system/core这类)
  • 修复提交的Git哈希值(有时候会直接给出提交相关的描述)

比如你提到的2017年12月补丁,先找到当月的公告,定位到你要修复的漏洞条目,记下对应的组件和提交哈希。

第二步:获取refs/changes引用的两种有效方法

方法1:通过Gerrit搜索提交哈希

Android的所有安全补丁提交都会在官方Gerrit代码评审平台上进行处理,你可以这样操作:

  1. 打开Gerrit的搜索界面,输入你从公告里拿到的完整提交哈希(比如你提到的011bcd751fcbb5)
  2. 找到对应的提交页面后,滚动到页面下方的Download区域,这里会自动生成包含refs/changes/xx/xxxxxx/x的git fetch命令,也就是你需要的引用路径

举个例子,你提到的那个提交对应的命令就是:

git fetch https://android.googlesource.com/platform/frameworks/base refs/changes/24/527324/1 && git cherry-pick FETCH_HEAD

这里的refs/changes/24/527324/1就是从Gerrit页面直接获取到的。

方法2:通过组件仓库搜索关键词

如果公告里没有直接给哈希,只有漏洞描述或CVE编号:

  1. 确定漏洞影响的组件(比如frameworks/base),进入该组件的Gerrit仓库页面
  2. 在搜索框输入CVE编号(比如CVE-2017-xxxx)或者补丁描述关键词(比如“media server buffer overflow”)
  3. 找到对应的修复提交后,同样从Download区域获取refs/changes引用

第三步:应用补丁的注意事项

  • 如果你找不到refs/changes引用,也可以直接用提交哈希执行git cherry-pick <commit-hash>,不过用refs/changes的方式更稳妥,因为它指向的是经过评审的最终提交版本
  • 自定义ROM如果对源码有过修改,cherry-pick时大概率会遇到冲突,需要你手动对比代码解决冲突
  • 有些安全补丁可能涉及多个组件,要确保每个组件对应的补丁都被正确应用

内容的提问来源于stack exchange,提问作者albertoduqe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:20:27