Google 已停止为部分 Android 源代码推送 Git 标签

Google 已停止通过公开 Git 标签发布某些 Android 和 Pixel 内核源码,转而要求开发者通过 Google Form 申请 tarball,再经由 Google Drive 在数天或数周后提供。评论者争论这是否在 GPLv2 的字面上合规,但显然削弱了其精神,认为这种不及时、非 git 原生的源码获取方式会让下游项目(如定制 ROM)更难跟踪变更并发布安全更新。许多人将此举视为 Android 变得不那么开放、而更受控制的更大趋势的一部分,同时还伴随着对侧载和第三方生态的更多限制。

Google 源代码发布方式的变化

  • Google 已停止向 AOSP 发布某些与 Android 相关的 Git 标签(尤其是 Pixel 特定代码)。
  • 对于 Pixel 内核驱动和其他 GPL/LGPL 组件,源代码现在通过 Google Drive 上的 tarball 提供,且只能在提交 Google Form 后获取。
  • 以前,标签会定期推送,tarball(如有使用)通常会在数小时内提供;现在回复往往需要数周。
  • 新的 tarball 是单体式的,带有压缩后的历史记录和额外的 repo 元数据,而不是原先那种多个 Git 仓库的结构。

GPL 合规 vs. “恶意合规”

  • 一方认为 Google 明显违反了 GPLv2:
    • 以 Google 的能力来看,数周的延迟不属于“合理时间”。
    • 源代码并非“用于制作修改的首选形式”,因为 Android 的构建系统期望多个 Git 仓库并会运行 Git 命令;仅有 tarball 的形式会导致错误。
  • 另一些人认为它在技术上大概率仍然合规:
    • GPLv2 允许按请求提供源代码,甚至允许使用实体介质,没有明确的时间限制。
    • 历史上,不保留完整 VCS 历史的快照也被认为是可以接受的。
    • Google Drive 加上人工流程被认为很不友好,但仍可能在许可证字面上成立。
  • 对于“软件交换中通常使用的媒介”是否会排除 Google Drive,或是否会施加时间预期,存在争议。

对下游项目和生态的影响

  • 面向 Pixel 的定制操作系统项目报告称,这种做法造成了实际伤害:内核源码延迟会阻碍对稳定版和测试版发布的及时支持。
  • Pixel 一直被宣传为 AOSP 参考设备,并拥有较长的支持周期;一些人认为,停止发布 Pixel 特定的 AOSP 版本削弱了这些承诺。
  • 这种摩擦让 Pixel 对第三方 ROM 来说变得更难而不是更容易,促使他们转向其他厂商(例如 Motorola)。

被认为的动机与更广泛的担忧

  • 猜测的动机包括:
    • 加强对 Android 生态系统和第三方 ROM 的控制。
    • 放慢对安全补丁和漏洞的分析。
    • 与收紧侧载和开发者验证等更广泛的举措保持一致。
  • 许多人认为这一变化是一个趋势的一部分:Android 正从“开放”走向更封闭、更像 iOS 的模式,即使核心 AOSP 仍然是开源的。