Android App打包加固后的APK无法安装问题解决

 更新时间:2024年01月11日 16:37:05   作者:开发_李行  
Android应用当中,很多隐私信息都是以 字符串的形式存在的,所以需要加密,本文主要介绍了Android App打包加固后的APK无法安装问题解决,感兴趣的可以了解一下

最近开发的一个应用要上架,正常流程打完包后去加固,由于以前一直用的是360的加固助手,这里开始也是选择用它。

使用360加固:

问题一、开始出现的问题是说应用未签名无法加固,我明明是签名后打的包,怎么会没签名呢?后面使用  java -jar apksigner.jar verify -v apk地址   命令查看发现是没有进行V1签名,而360加固要求有v1,一查之下发现是Android6.0之前用V1,Android7.0之后用V2,把自己项目的支持最低版本改为23以下,重新打包发360发现可以加固了。

问题二、加固完后的APK发现无法安装。查了一下资料说啥的都有,最后发现一个靠谱的,是要进行再次签名处理,说是经过加固后可能会破坏掉签名。下面重点记录一下重新签名:

原理 (使用AndroidSdk 自带的apksigner.jar 文件进行签名, apksigner.jar文件在Android  SDK 的安装路径下,大致如此:{D:\Program Files}\Android\Sdk\build-tools\X.X.X\lib)在任意版本下都有该文件。

准备工作:

先进入apksigner.jar文件所在的路径:我的就是D:\Program Files\Android\Sdk\build-tools\30.0.3\lib

1、先查一下加固后的APK是否有进行签名

输入命令:java -jar apksigner.jar verify -v apk地址

java -jar apksigner.jar verify -v D:\test\app-release_100_jiagu.apk

DOES NOT VERIFY
ERROR: Missing META-INF/MANIFEST.MF

出现上图说明没有签名,其实加固前是有签名的,只是加固后被破坏了,这就需要进行再次签名。

2、使用如下命令签名

java -jar apksigner.jar sign --ks [签名文件路径] --ks-key-alias [alias的别名] --ks-pass pass:[密码] --key-pass pass:[密码] --out [签名后的新安装包路径] [待签名的安装包路径,即是加固后的安装包路径]

java -jar apksigner.jar sign --ks D:\myproject\test\XXX.jks --ks-key-alias XXX --ks-pass pass:XXX --key-pass pass:XXX --out D:\myproject\test\app-sign.apk D:\test\app-release_100_jiagu.apk

执行成功不会有信息提示,可以去输出路径下查看是否有包,我的如下:

提醒:这个语句太长,建议要细心一点,出问题时检查是否语句输错了,我就是这样,错了几次发现都是语句输错了。

3、去验证签名后的APK是否签名,重复1的语句,只是APK变成了2签名后的

java -jar apksigner.jar verify -v D:\myproject\test\app-sign.apk

这是就是签名成功了,然后就可以愉快的安装了。

如果不想降低自己的项目Android版本,可以使用腾讯加固。

到此这篇关于Android App打包加固后的APK无法安装问题解决的文章就介绍到这了,更多相关Android App打包加固 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android手机卫士之绑定sim卡序列号

    Android手机卫士之绑定sim卡序列号

    这篇文章主要介绍了Android手机卫士之绑定sim卡序列号的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Android开发-之五大布局详解

    Android开发-之五大布局详解

    这篇文章主要介绍了Android开发-之五大布局详解,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • android实现简单拍照功能

    android实现简单拍照功能

    这篇文章主要为大家详细介绍了android实现简单拍照功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android 5.0及以上编程实现屏幕截图功能的方法

    Android 5.0及以上编程实现屏幕截图功能的方法

    这篇文章主要介绍了Android 5.0及以上编程实现屏幕截图功能的方法,结合实例形式分析了Android5.0以上实现截图功能的相关类、函数及权限控制等操作技巧,需要的朋友可以参考下
    2018-01-01
  • Android SQLite数据库版本升级的管理实现

    Android SQLite数据库版本升级的管理实现

    这篇文章主要介绍了Android SQLite数据库版本升级的管理实现的相关资料,这里提供实现代码帮助大家掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • Android仿支付宝、京东的密码键盘和输入框

    Android仿支付宝、京东的密码键盘和输入框

    这篇文章主要介绍了利用Android如何模仿支付宝、京东的密码键盘和输入框,本文是将键盘和输入框分开来写,可以根据需求在各个地方使用,同时处理了大量逻辑,方便快速开发。感兴趣的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • Android组件ListView列表简单使用

    Android组件ListView列表简单使用

    这篇文章主要为大家详细介绍了Android组件ListView列表的简单使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Kotlin的::符号怎么用

    Kotlin的::符号怎么用

    本文主要介绍了Kotlin的::符号怎么用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Android SQLite数据库的增 删 查找操作

    Android SQLite数据库的增 删 查找操作

    这篇文章主要介绍了Android SQLite数据库的增 删 查找操作,需要的朋友可以参考下
    2017-02-02
  • Android中的设计模式

    Android中的设计模式

    常用的设计模式有以下八种:单例、工厂、观察者、代理、命令、适配器、合成、访问者。下面通过本文给大家介绍下android中的设计模式,感兴趣的朋友一起看看吧
    2016-09-09

最新评论