apk文件结构解析一

APK文件解压缩后包含lib、META-INF、res等,重点介绍了META-INF文件夹中的MANIFEST.MF、CERT.SF和CERT.RSA,它们分别用于记录文件签名信息、保证apk安全及存储公钥。这些机制防止了apk包内容被篡改,增强了系统安全性。
摘要由CSDN通过智能技术生成

Apk文件用WINRAR压缩软件解压缩后,如下图所示:主要是三个文件(lib、META-INF、res)和三个文件夹(AndroidManifest.xml、classes.dex、resources.arsc)
这里写图片描述
用工具展开可以看到如下所示的文件结构(文件夹中的内容可能不一致,这里我举得例子是一个JNI的Demo)
这里写图片描述
下面再详细介绍各个文件或者文件夹的作用或内容


  1. META-INF文件夹:META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。而在Android平台上安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk 包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系 统的安全。

MENIFEST.MF:
遍历apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个生成SHA1的数字签名信息,再用Base64进行编码。具体代码见这个方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值