昨天夜里十一点四十七分,我在一台旧 ThinkPad 上把「黑白软件库_1.2.0apk」拖进解压工具。屏幕右下角跳了个提示:文件数 1,846,重复资源 340 个。我盯着那个数字看了很久。
事情是这样的。前天有个读者给我留言,说这个 apk 装完之后,手机里的「下载」文件夹多出一堆名字像乱码的 json。他问我是正常的吗。我说不一定,发来我看看。结果我一拆,整个人炸了。
res/ 目录下 14 个并列的 res_1 到 res_14 文件夹。每一个里面都塞着同一套图标,只是哈希值差了一两位。这不是打包失误,这是有人手动复制粘贴的。
我不懂为什么要这么做。真的不懂。
安装包本身标注 1.2.0,但反编译出来的 versionCode 写着 7。差了五个版本号。我去查了一下那个常被拿来对照的「体操美少年养成方法by熊猫」的构建日志——人家 1.2.0 就是 10200,对得整整齐齐。不是所有人都不讲究,是有些人根本不在乎。
再说签名。安装包里的 META-INF 文件夹,三个签名文件,时间戳分别落在 2025 年 11 月 3 日、2025 年 12 月 18 日、2026 年 1 月 9 日。一个正式发布的包,签名只能有一次。三次签名说明这个包被反复重打包,每一次都往里面塞了点新东西。塞的是什么?我没有全部验证,但我在 assets 目录里看到一个 2.7 MB 的 config_patch.bin,没有注释,没有说明,文件名起得像是故意不想让人打开。
这才是我生气的点。
不是它粗糙。粗糙我可以忍,粗糙是手艺问题。它的问题是不诚实。你打开任何一个正规渠道,比如「苹果官网入口」那种页面的做法虽然死板,但至少每个版本号、每个构建日期都写得清清楚楚。而这份「黑白软件库_1.2.0apk」,把版本号、签名、资源文件夹全部搅成一锅粥,然后若无其事地扔出来给人下载。
我去找了那个 2022 年的旧版本对照
手头正好有一份 2022 年 8 月 16 日下载的 1.0.4 版本。两个包一对比,发现新增的权限有 6 条,其中三条跟存储读写有关,两条跟后台自启有关。一个号称「软件库」的东西,为什么要申请自启权限?我翻了三遍 AndroidManifest.xml,没找到对应的业务代码。
有一种可能:这 6 条权限根本不是这个 App 自己用的。
我不敢下结论,但我把这件事记录下来。读者要的是透明,不是神秘。那些把「一金宝库」挂在口头的下载站,至少页面排版丑得诚实;而这份 apk,包装得越体面,越让人心里发毛。
说点不客气的话
我个人的观点很明确:任何安装包,如果它的签名时间和版本号对不上,就不该被推荐给任何人。这不是苛求。这是底线。你可以界面丑,可以功能少,你可以做得像一个业余项目,但你不能在签名这件事上撒谎。签名是安装包唯一的身份证。
顺便说一句,我在某个论坛看见有人把这份包和「亚洲福利婷婷嫩草vip」的推广页面放在一起对比,说「两个都差不多,能用就行」。这种话我听了想摔键盘。差不多?差多了。一个是手艺问题,一个是诚信问题。
classes.dex 的修改时间是 2026 年 2 月 28 日 04:17:22。打包机上那个没关的时区设置,把时间戳暴露成了一个凌晨四点的赶工现场。旁边还有一条编译缓存里残留的路径:/Users/laowang/Desktop/final_final_v3/。老王,我不知道你是谁,但你的「final」真是多。
看到这个路径的时候我笑了一下,然后就笑不出来了。因为这意味着这个包从桌面文件夹直接打包,没有经过任何构建流程,没有版本管理,没有测试。桌面上的「final_final_v3」直接变成了几万人手机里的「1.2.0」。
我去看了一下「黑寡妇俄罗斯空姐」那个页面下面的一条老评论,有人说「软件只要不闪退就行」。这条评论是 2024 年的。两年过去了,标准还是这个标准。我很难过。
要我说该怎么办?很简单。装之前,先对一次签名指纹。对不上,就别装。别管它叫什么名字,别管它在哪个页面被推荐。这一点上,我更信「111115网址」里老站长那句土话:宁可慢三步,不装糊涂包。
写到这里,窗外天快亮了。最后一句留给我自己,也留给看到这里的你:
「妈妈陪儿子读书小刚」那种耐心,用在检查一个 apk 上,刚刚好。不是所有东西都值得着急。