根据apk链接获取apk包名应用名
- 最近有个需求,根据apk链接获取apk的包名和应用名。
- 正常手段是这样,下载完整的apk,然后利用apktool解压分析,完事。这样的操作,一方面需要大量时间下载,一方面也浪费磁盘空间(需要解压)。
- 进一步的思路是,不利用apktool解压。因为apk文件是zip压缩格式,于是我们可以根据zip格式来分析apk二进制文件(不需要解压了)。
现在基本上apk都支持流下载,那么我们也可以做个流解压提取我们的信息。
查阅apk和zip压缩格式,主要得到以下几个信息。
zip压缩格式:
本地文件头1
文件数据1
数据描述符1
以上重复若干次
本地文件头 n
文件数据 n
数据描述符n
archive decryption header(EFS)
archive extra data record (EFS)
中央目录
zip64的中央目录记录结束
zip64的中央目录定位结束
中央目录记录结束