对一个没有META-INF的apk进行签名安装

工具:keytool、jarsigner(都在java\jre\bin目录下)

先用了keytool生成自己的密钥,命令如下:

keytool -genkey -alias demo.keystore -keyalg RSA -validity 2000 -keystore d:\demo.keystore

再用jarsigner 和 生成的密钥 签名,命令如下:

jarsigner -keystore D:\demo.keystore -signedjar D:\signed_test.apk D:\test.apk demo.keystore

通过以上方式首先对一个删除了META-INF文件的apk进行签名,但是报错:无法打开jar文件

于是,又对正常的、没有删除META-INF的apk进行重新签名,签名成功了!

在网上看了其他人的文章,注意到有一个命令和我使用的不太一样,如下:

jarsigner -verbose -keystore D:\demo.keystore -signedjar D:\test_signed.apk D:\test.apk demo.keystore

输出结果注意到 MANIFEST.MF的状态是更新,而其他两个的状态是添加,是否说明必须有MANIFEST.MF才能使用jarsigner.jar签名成功?

输出结果

然而......删去其他两个后,再次签名发现还是签不了....


二更:

想测试一下fragment注入漏洞的一对app(地址),下载后安装失败,于是拆开包一看,在MATE-INF目录下只有.MF一个文件,于是使用前文的命令进行签名。签名后的apk能正常运行!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于 Android 开发者而言, APK 签名的重要性不言而喻。Android 7.0 后 APK 签名已经从基...
    稻草人_3e17阅读 650评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 此篇文章将介绍: 签名文件的生成、apk再次签名、自签名证书的生成; 引言Android开发,涉及到开发和正式版...
    3Q竹林阅读 980评论 0 1
  • 对于 Android 开发者而言, APK 签名的重要性不言而喻。Android 7.0 后 APK 签名已经从基...
    Cavabiao阅读 10,017评论 7 30
  • adb shell 运行lua文件 1, android设备root权限2, 将liblasa.so push到/...
    artemi阅读 1,537评论 0 1