大家不妨想象这样一个场景:你手机里装了一款小众但很顺手的“应用 A”,它哪都好,唯独开发者早已“神隐”,断更多年。某天,你偶然在某网站看到“应用 A 全新版本”的下载链接,兴冲冲地把 APK 装进手机,进度条刚转几秒,屏幕却弹出了下面的提示:

看到“安装失败”这几个字,是不是瞬间火冒三丈?先别急着骂娘——你的手机以及它所搭载的安卓系统,大概率刚刚救了你一命。而这背后默默干活的,正是安卓的应用签名机制。
然而,现有的应用签名藏着一个漏洞
所谓的签名机制,可以简单理解成应用自带的“数字身份证”。在当前的系统版本里,它的核心任务就是告诉操作系统“这个应用的开发者是谁”。这样一来,应用更新时,只有签名一致的新版本,才能覆盖安装旧版本,有效杜绝了冒名顶替的假应用“鸠占鹊巢”。

但问题就出在这儿。过去,谷歌只要求应用签名能够识别“开发者是否发生了变更”,并没有强制验证开发者的真实身份。也就是说,开发者完全可以用假名甚至笔名来生成签名文件。
这显然埋下了不小的安全隐患。往好了想,这可能只是一位开发者在同时运营几个“马甲”应用;但往坏了想,木马、病毒或窃取隐私的恶意软件也因此变得难以溯源。就算封禁了开发者账号,也很难揪出躲在屏幕后面的那个人。在安全/渗透/逆向领域,这种身份匿名性一直是移动端恶意软件追踪的棘手难题。
强制开发者实名,其实是安卓阵营的集体行动
看懂了现有签名机制的漏洞,你就能明白,为什么谷歌会郑重其事地宣布:从今年 9 月 30 日起,安卓系统将启用全新的开发者验证保护措施,强制推行“实名制注册”了。此时还公开反对这一政策的人,动机反而值得玩味。
当然,这种新保护伞并非一刀切地全球落地,而是先在某些区域试点(第一批包括巴西、印度尼西亚、新加坡和泰国),之后再逐步推广到全球。

值得留意的是,强制要求开发者先“验明正身”才能上架应用的规矩,届时不仅在谷歌自家的应用商店施行,还会同步在小米、荣耀、OPPO、vivo、三星、传音的应用商店里生效。
这说明了什么?很明显,给开发者套上“实名制”的缰绳并非谷歌一家的独断,而是目前整个安卓阵营的联合行动。目的只有一个:彻底堵死恶意开发者的流窜空间。
除了不良开发者,这场变革不会伤及无辜
或许有朋友会提出合理的疑虑:比如一些年纪尚小的“天才少年”,或者学校里临时组建的兴趣小组,他们很可能没有可用的身份信息来注册永久开发者账户。这些人的初衷并非作恶,只是被动地无法提供实名材料。

针对这种情况,谷歌也给出了“豁免条款”。这类开发者只需向谷歌说明情况,就能获得一个有限制的分发许可证。该许可允许未实名的应用被安装在最多 20 台设备上,足以满足他们进行小范围测试或参加比赛的诉求。
但对于那些既不愿实名、也不屑于申请有限分发账户的开发者,前景可就相当严苛了。
依照目前的规划,当安卓的开发者实名制全面落地后,未实名的应用首先会从所有主流应用市场里消失。这就在源头上隔绝了绝大多数普通人接触匿名恶意应用的可能。

其次,就算用户有意或受骗,从第三方网站下载了匿名签名的 APK,安卓系统也会直接拒绝安装,并要求用户“冷静 24 小时”。这个“冷静期”的设计,明显就是冲着电诈场景来的。一旦受害者无法第一时间装上恶意软件,诈骗分子的手段就废了一半。
最后,如果真有极客玩家就是想匿名开发自用应用,或者只在极小圈子里分享,谷歌也没有把路全堵死。未来的匿名应用虽然无法上架市场,也不能通过常规方式一键安装,但依然允许通过 ADB 工具,以命令行方式侧载。对那些纯粹喜欢“折腾”的玩家来说,终究不算被彻底关在门外。
【本文图片来自网络】
想与更多极客同好一起畅聊安卓开发与技术文档的方方面面?不妨到 云栈社区 转转,或许你会有新的发现。