Android 开源阵营里最坚固的一道防线,正在被自动化拼装的代码快速浸透。开发者针对 2026 年 9 月 12 日 F-Droid 推送更新的 102 款应用进行了抽样人工代码库审计,结果显示高达 72.5%(74 款)的应用呈现出显著的 AI 生成或 Agent 编写特征,仅有 17.6%(18 款)未发现明显 AI 痕迹。

这个数字最扎眼的地方在于场所。F-Droid 一向被视作纯粹主义极客与自由软件信徒的数字自留地,用户去那里是为了避开商业大厂的追踪、广告与黑盒二进制。但随着 Claude Code、Codex 这类工具彻底普及,单人靠提示词几十分钟揉搓出一款应用的成本几乎降到了零。

开源世界过去引以为傲的防线,正遭遇一种前所未有的制度钝化。

活跃更新区的代码成色

这项审计虽然来自开发者的独立抽样,且作者坦承标准带有主观审美与近期提交记录的筛选倾向,但它切中了开源社区近来最普遍的直觉困惑。

抽样审计显示超七成更新由 AI 拼装而成,纯手写代码已沦为少数派(示意图)
抽样审计显示超七成更新由 AI 拼装而成,纯手写代码已沦为少数派(示意图)
F-Droid 单日更新抽样构成(共 102 款) 72.5% 大部分由 AI 编写 共 74 款(含典型 Agent 痕迹) 9.8% 界定模糊 / 人机参半 共 10 款(偶尔辅助或混杂) 17.6% 无明显 AI 痕迹 共 18 款(老牌或严格人类编写)

在被判定为包含大量 AI 代码的名单里,出现了 Amber、BeatBridge、Braincup、Feeder 以及 gemwallet 等常见工具;而在抽样中托管于 Codeberg 的 5 款应用里,有 4 款被划入此类。

坚持无 AI 痕迹的,多半是维基百科(Wikipedia)、PCAPdroid、Shattered Pixel Dungeon 这类经年迭代的成熟项目。更有趣的是文明题材策略游戏 Unciv,虽然记录中存在 Claude 的协作提交,但整体工程依然保持着极其强烈的开发者个人掌控力,被归为主要由人类维护。

审计方式确实算不上严密的静态代码分析,它更多是靠识别仓库的蛛丝马迹:Claude Code 或 Codex 的接入配置、由 Agent 自动提交合并的 Pull Request、充斥着大模型文风与成串 Emoji 的自述文件,甚至是直接打包进仓库的规划文档。

即便存在样本偏差,这一比例也说明了一个现实:在当下的软件更新活跃流里,纯人工手写的代码已经沦为少数派。

传统开源审查的防御盲区

这件事真正引发震动的,是它击穿了自由开源软件长期依赖的信任假说。

自动化构建能验证源码真伪,却测不出内部拼凑架构的脆弱隐患(剖面示意)
自动化构建能验证源码真伪,却测不出内部拼凑架构的脆弱隐患(剖面示意)

F-Droid 创立十余年来,靠两道硬核闸门赢得了技术群体的信任。其一是严格的反特性(Anti-Features)审查,专门筛查追踪器、广告插件和专有闭源依赖;其二则是独立沙盒构建与强烈推荐的可重现构建(Reproducible Builds),确保分发的安装包绝对由公布的开源代码编译而来,不被塞入后门。

但这套严密体系的设计初衷,是为了对抗恶意商业公司与闭源二进制。它假定了代码背后站着一位对其架构逻辑完全负责的人类程序员。

经典开源审查体系的防御断层 经典审查:防御恶意与专有 • 剥离专有依赖库(Anti-Features) • 沙盒独立重新编译源码 • 可重现构建验证二进制哈希一致 机制盲区:面对生成式代码失灵 • 源码完全开源合规,能通过沙盒构建 • 机制无法验证大模型训练版权隐患 • 无法判定维护者是否理解系统架构
自动化构建能验证代码的真伪与出处,却无法度量作者对代码的理解深度。

当有人用一个下午提示词拼装出一款应用,代码是全公开的,协议是自由的,沙盒环境能一秒编译通过,可重现构建也能校验完全一致。但这款应用在法理合规的外壳下,可能是一堆连提词者自己都未曾通读过的逻辑断片。

老一代开源人信奉林纳斯定律,认为只要目光足够多,所有漏洞都无所遁形。可现实的残酷之处在于,读代码的精力远比生产代码昂贵。当目光的增长追不上流水线倾倒代码的速度,传统的同行评审机制便自然陷入了瘫痪。

  • 风险.自动化拼凑的应用虽然短期可用,但一旦遇到底层系统架构变迁,缺乏深度认知与维护承诺的提词作者极易直接弃坑,留下大量隐患未知的代码废墟。

治理困境:无法落下的制度裁决

面对这种渗透,要求平台彻底封杀 AI 生成代码的呼声此起彼伏,但这恰恰触碰到了开源软件最敏感的哲学根基。

社区正探索让 AI 协作过程完全透明的代码成分披露机制
社区正探索让 AI 协作过程完全透明的代码成分披露机制

截至目前,F-Droid 官方并没有设立任何硬性政策去拒绝或自动过滤生成式 AI 编写的代码。其收录准则的核心标尺始终未变:自由开源协议、依赖可用性以及在官方沙盒中构建成功。

在官方讨论区里,一份编号为 699 的行政提案《生成式 AI 使用临时政策》至今仍处于待办状态。更具现实意味的是,该提案仅针对 F-Droid 自身的系统代码贡献者,并明确注明不适用于被收录的第三方应用。

平台之所以按兵不动,并不是因为迟钝,而是治理维度极其棘手。平台很难越过开发者去给提交物的生产工具定罪:

  1. AI 辅助编码开发者借助模型撰写测试、补全函数或理顺文档。
  2. 本地模型捆绑应用内部直接打包了轻量级神经网络权重。
  3. 本地推理运行应用代码纯手写,但调用本地引擎进行推理。
  4. 远端接口调用客户端连接闭源商业大模型接口,涉足数据回传。

若简单设立一条禁止 AI 代码的红线,不仅在工程检测上无法做到绝对无误,而且从根本上违背了开源运动只论结果与自由、不问作者使用何种工具的古老教条。

社区并非没有健康的解法。例如开源项目 Shelly 就主动在自述文件中披露,全部代码由 AI 在作者指导下生成,并附上了严格的真机测试记录;android-ip-camera 同样坦白给出了 AI 协作声明。这种坦率让使用者拥有清晰的知情权,远比遮掩痕迹或直接滥造更为体面。

生产代码的门槛荡然无存,维护代码的代价却分毫未减。自由软件的这片避难所没有被商业资本瓦解,却不得不开始面对自动化浪潮带来的平庸膨胀。

  • 结论.当写代码的成本无限趋近于零,开源社区最稀缺的资源不再是功能实现,而是人类开发者对软件生命周期持久的责任感。开源平台最终需要的或许不是一道禁令,而是一套逼退投机、让协作过程完全透明的披露机制。