由于众所周知的原因,Google play无法在大陆正常使用,因此,当我们想把某些APP分享给别人时,直接分享系统的文件成了最直接的方式。然而,实际使用的安卓系统版本很多,手机的架构也不太一样,这就导致了直接分享apk不一定兼容所有手机。因此会考虑到直接提取完整的apk,分享给别人。一般情况下,无法直接从google play下载通用apk。虽然理论上来说,可以通过抓包的方式获取apk的链接,即使是临时链接也足以下载apk了,但是涉及到不同系统的apk的拼接,则会有点麻烦。还好,有很多第三方的搬运工,帮我们完成了这些事情。
第三方商店
apkcombo,提供原生的apk
apkpure,下载的是xapk,它自己的格式,需要下载他的app才能安装
evozi,也是下载原生apk,不过感觉更新较慢
对apk的猜测
虽然我并不懂Android开发,但是我尝试用Debian系列的deb打包来揣测apk。以Notion的安卓客户端为例,从
apkpure
下载的xapk其实就是一个压缩文件,打开看是这样的安装xapk本质上感觉就是把这十几个apk一个一个地安装,但是若你真这样做,会发现有些apk系统无法解析,可能是因为有些的apk仅仅是一个补丁,但是系统安装完整的apk需要什么什么文件。
notion.id.apk
应该是核心文件,icon.png
应该是图标,manifest.json
应该就是配置文件信息,config.arm4_v8a.apk
应该是对armv8
架构的补丁,config.xxhdpi.apk
应该是适配不同分辨率补丁,然后config.xx.apk
应该是适配不同语言的补丁。我猜测google play原生提供的就是这些文件,然后在不同语言的手机上安装。
apkpure
对其的处理方式就是自己搞了了xapk
和xapk
安装工具。而那些提供完整的apk
的第三方商店,例如apkcombo
和evozi
,有点像拆包后合并再打包。
Loading Comments...