
9 月 24 日,安卓世界最老牌的开源应用商店 F-Droid 发布了 2.0 大版本——这是这个项目十几年来最大的一次重写,第二天就冲上了 Hacker News 榜首,评论区几千条讨论吵成一片。
很多人看到新闻的第一反应是:一个界面老旧的开源应用市场更新了,有啥好吵的?
吵的不是界面,是时间点。六天之后,也就是 9 月 30 日,谷歌针对安卓"侧载安装"(不从官方商店装应用)的新规就要在第一批国家生效,2027 年推向全球。开源社区普遍认为,这套新规会直接卡住 F-Droid 这类第三方分发渠道的脖子。
今天这篇文章,咱们就掰开揉碎讲清楚:谷歌新规到底管什么、F-Droid 为什么偏偏躲不过去,以及那把卡住整个开源安卓生态的签名密钥是怎么回事。
一、事件复盘
先说 F-Droid 这边。它成立于 2008 年前后,是安卓上最有名的免费开源应用仓库:不上架商业应用、不要账号、不追踪用户,所有应用都以源代码形式收录,由 F-Droid 自己从源码编译打包。对注重隐私的用户来说,它一直是谷歌 Play 商店之外最重要的选择。
这次发布的 2.0 版本,按官方说法是项目史上最大的一次升级:
- 整个客户端用 Kotlin 和 Jetpack Compose 从头重写,此前界面基本停留在 2015 年;
- 改成发现、搜索、我的应用三栏布局,搜索终于能索引应用描述和分类,还补齐了中日韩语言支持;
- 借助欧盟《数字市场法案》(DMA)逼谷歌开放的预批准安装接口,实现了后台自动更新,不用每次手动点确认;
- 首次接受了独立安全审计(Open Technology Fund 安全实验室),最低支持版本升到 Android 7。
再看谷歌这边。2025 年 8 月,谷歌宣布把"开发者身份验证"扩展到所有装在认证安卓设备上的应用——注意,不是只管 Play 商店,侧载的应用也一样要管。按公布的时间表:
- 9 月 30 日起,巴西、印度尼西亚、新加坡、泰国四个国家率先执行;
- 2027 年起推向全球。
到时,未注册验证的开发者,其应用在这四国的认证设备上将无法正常安装。谷歌给开发者的"完全验证"路径是:提交政府签发的身份证件、交 25 美元一次性费用、登记应用签名密钥。另有一个"受限分发"选项,只要邮箱验证,但装机上限 20 台设备——对有真实用户群的独立开发者来说,基本等于没有。普通用户硬要装未验证应用的"高级流程",则需要打开开发者模式、重启设备、再等 24 小时。
F-Droid 董事会成员 Marc Prud'hommeaux 的表态很直白:这套规定将终结 F-Droid 和其他免费开源分发渠道。目前,由 23 个国家 71 个组织组成的 Keep Android Open 联盟,已经向欧盟、英国、美国等 20 多个司法辖区的监管机构提交了正式投诉。
一边是十年磨一剑的 2.0,一边是六天后的执法倒计时,这个时间点,怎么看都像是开源社区的一次"顶风发布"。
二、技术核心拆解
1. 谷歌新规到底在管什么?
一句话:管的是"这个应用是谁发布的",而不是"这个应用干了什么"。
以前的安卓侧载,验证的是 APK 文件本身——包名、签名完整性、权限声明。新规加了一层:设备在安装前会去查发布者有没有在谷歌那里登记过身份。没登记,标准安装流程直接走不通。
谷歌的理由听起来正当:匿名开发者是恶意软件重灾区,实名化能大幅提高作恶成本。这个判断本身没毛病,问题出在实现方式上——验证体系只有谷歌一个入口,身份、费用、密钥登记全部绑定在谷歌的注册系统里。
2. F-Droid 为什么躲不过去?问题出在签名密钥上
这才是本次事件最值得讲的技术细节。
F-Droid 的安全模型和普通应用市场完全不同:它目录里约 85% 的应用是 F-Droid 从源码自己编译,然后用 F-Droid 自己的密钥签名,而不是用原作者的密钥。这么做的目的,是让任何人都能验证"这个安装包确实是从这份公开源码编译出来的",防止原作者偷偷在发布版本里塞私货。
而谷歌的新规,把应用身份绑死在开发者的签名密钥上。这就撞墙了:
- 原作者去谷歌注册了,登记的是他自己的密钥;
- F-Droid 分发的安装包,签的是 F-Droid 的密钥;
- 现有体系里,没有任何机制能让开发者声明"F-Droid 的密钥有权替我分发"。
也就是说,就算 F-Droid 上架的每一个应用原作者都乖乖去谷歌验了身份,F-Droid 自己编译签名的那些包,在新规眼里依然是"无主之物"。
理论上有个出路叫可复现构建——让 F-Droid 编译出来的包和开发者自己签名的包二进制完全一致,这样就能直接用开发者的注册身份。但目前只有约 15% 的应用目录能做到这一点,短期内远水不解近渴。
3. 各方的技术逻辑与争议点
- 谷歌的逻辑是"身份验证消灭匿名恶意软件",手段是把分发权收敛到注册体系;
- F-Droid的逻辑是"代码可验证比发布者可验证更重要",手段是源码构建加独立签名;
- 监管机构收到的投诉则指向另一个问题:一个商业公司,能不能通过设备认证体系,单方面决定整个操作系统的应用分发规则。
还有一个容易被忽略的细节:让 F-Droid 2.0 自动更新成为可能的预批准接口,恰恰是欧盟 DMA 反垄断诉讼逼谷歌开放的。同一个谷歌,一边被监管按着头开放接口,一边在用新规收紧分发,这种拧巴正是本次事件最有意思的地方。
4. 三层风险怎么看
- 功能风险:F-Droid 2.0 本身有升级代价——紧急清除功能暂时移除、应用隐藏只剩改图标、不再支持 privileged extension 和 Android 6,老用户升级前要对照变更清单;
- 安全风险:身份验证确实能压缩匿名投毒空间,但验证过的开发者不等于安全的开发者,Play 商店每年照样下架大量恶意应用;而被逼到"高级流程"的用户,反而可能在 24 小时等待期里放松警惕;
- 合规风险:面向四国用户分发侧载应用的开发者,9 月 30 日后就面临实打实的合规义务;Keep Android Open 联盟的投诉能否逆转时间表,目前没有定论。
三、常见技术误区
误区一:安卓从此不能装第三方应用了
不至于。新规约束的是"认证设备上的标准安装"。开发者通过 ADB 自己装应用、CI 流水线推测试包,这些场景完全不受影响;普通用户硬要走"高级流程"也依然能装未验证应用,只是要先开开发者模式、重启、再等 24 小时。准确的说法是:侧载没有死,但门槛被抬到了普通人愿意放弃的高度。
误区二:我不在那四个国家,这事跟我没关系
两说。对国内用户来说,关系确实不大——国产手机大多不带谷歌服务框架、也不算谷歌认证设备,新规直接管不着。但要看清趋势:"应用发布者实名化 + 渠道准入收紧"是全球性方向,从苹果的公证机制到各国应用备案要求,逻辑是相通的。你在安卓上"随便从网页下个 APK 就能装"的体验,正在各处变成历史。
误区三:开发者验证了就安全,开源商店被拦是活该
这是把身份可信和代码可信混为一谈了。谷歌验证的是"你是谁",F-Droid 验证的是"代码和安装包是否一致",这两件事解决的是不同的问题。一个实名开发者完全可以在验证过的应用里塞合法但过度的数据收集;而 F-Droid 那套源码构建加独立审计的机制,反而是在代码层面多了一道校验。安全从来不是一道单选题。
四、实操指引
普通用户可以做的:
- 查一下自己的设备是否为谷歌认证设备(设置里搜"设备认证"或看 Play 商店设置中的认证状态),判断新规是否会波及自己;
- 养成看安装包来源的习惯:优先官方渠道,第三方包注意核对签名信息,不装来路不明的"破解版";
- 正在用 F-Droid 1.x 的,升级 2.0 前先读变更说明,特别留意紧急清除、应用隐藏等功能的变化,确认自己不需要再升。
独立开发者可以做的:
- 应用有巴西、印尼、新加坡、泰国用户的,9 月 30 日前完成谷歌开发者验证(政府证件 + 25 美元 + 登记签名密钥),别拖到最后一周;
- 保护好签名密钥:密钥一旦丢失或泄露,在新体系下会同时变成安全事故和合规事故;
- 有余力的开源项目,认真评估可复现构建——目前只有约 15% 的 F-Droid 目录支持,但它是新规下开源分发为数不多的技术出路;
- 纯内部分发(企业内部工具、测试包)继续走 ADB 或企业设备管理通道,暂时不受影响。
技术管理者可以做的:
评估自家 Android 应用有没有依赖第三方分发渠道的海外市场,如果有,把 2027 年全球执行当成一个确定性风险,提前规划官方商店上架或替代分发方案。
五、结尾
F-Droid 2.0 是一个志愿者项目用十几年补出来的功课:重写、审计、自动更新,样样都是诚意。但它选在执法倒计时六天发布,更像是一次宣言——应用商店的体验问题可以慢慢修,分发权的问题过了这个村就没这个店了。
这件事真正值得每个开发者记住的,是那把签名密钥的困局:验证体系把身份绑在密钥上,而开源生态的分发模式天然是"多人持钥"。两边谁都没错,撞在一起就成了死结。解开它靠的是技术(可复现构建),也可能要靠监管(反垄断投诉),但无论哪条路,都值得你持续关注——因为它定义的是未来十年安卓还能不能保持"开放"这两个字。
如果这篇文章帮你理清了谷歌侧载新规的来龙去脉,欢迎转发给身边做安卓开发的朋友;关于"签名密钥绑定身份"这个设计,你怎么看?评论区聊聊。