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版本,可以使用腾讯加固。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/611901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatisPlus学习笔记一

1、简介 MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatisMyBatisMyBatis的的基础上只做增强不做改变,为简化开发,提高效率而生。 官网:MyBatis-Plus mybatisplus通过扫描实体类,并基于…

老胡的周刊(第123期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 ai-video-search-engine[2] 随着 TikTok 和 …

空间转录组与单细胞转录组联合分析——MIA,代码分享(Nature Biotechnology :)

​ 原文:Integrating microarray-based spatial transcriptomics and single-cell RNA-seq reveals tissue architecture in pancreatic ductal adenocarcinomas | Nature Biotechnology 研究者采用 MIA 联合 scRNAseq 和 ST 数据,分析原发性胰腺导管腺癌…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷②

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷2 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷2 模块一 …

NX二次开发 Block UI 指定方位控件的应用

一、概述 NX二次开发中一般都是多个控件的组合,这里我首先对指定方位控件进行说明并结合选择对象控件,具体如下图所示。 二、实现功能获取方位其在选择面上原点的目标 2.1 在initialize_cb()函数中进行初始化,实现对象选择过滤面 //过滤平…

Unity中Shader面片一直面向摄像机

文章目录 前言一、实现思路1、 我们要实现模型面片一直跟着摄像机旋转,那么就需要用到旋转矩阵2、确定 原坐标系 和 目标坐标系3、确定旋转后坐标系基向量二、确定旋转后 坐标系基向量 在 原坐标系 下的值1、Z轴基向量2、假设Y轴基向量 和 世界空间下 的Y轴方向一致竖直向上3、…

全网独家:基于openEuler-20.03-LTS-SP4底包构建opengaussV5.0.1LTS的单机极简版数据库容器

本文尝试基于openEuler-20.03-LTS-SP4底包构建opengaussV5.0.1LTS的单机版极简版数据库容器。 一、软件包源 1、openEuler-20.03-LTS容器底包 openEuler-20.03-LTS-SP4 下载链接 sha256:24d8f51c1f3a79eb975c4e498cadd9055bfd708d66c15935ec46664d0f975a7b openEuler-dock…

QT上位机开发(键盘绘图控制)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 绘图是qt很基础的一个功能。通常,我们进行qt绘图的时候,一般会先创建一个qt view,这个相当于视图。接着创建一个…

YOLOv5改进 | 主干篇 | EfficientNetV2均衡缩放网络改进特征提取层

一、本文介绍 这次给大家带来的改进机制是EfficientNetV2,其在其V1版本通过均衡地缩放网络的深度、宽度和分辨率,以提高卷积神经网络的性能的基础上,又提出了一种改进的渐进式学习方法,通过在训练过程中逐步增加图像尺寸并适应性调整正则化来加快训练速度,同时保持准确性…

TinyLog iOS v3.0接入文档

1.背景 为在线教育部提供高效、安全、易用的日志组件。 2.功能介绍 2.1 日志格式化 目前输出的日志格式如下: 日志级别/[YYYY-MM-DD HH:MM:SS MS] TinyLog-Tag: |线程| 代码文件名:行数|函数名|日志输出内容触发flush到文件的时机: 每15分钟定时触发…

【前端】使用javascript开发一个在线RGB颜色转换

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是是《前端》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌…

WebGL在实验室方向的应用

WebGL在实验室方向的应用涉及到实验过程的可视化、数据分析、模拟等方面。以下是一些WebGL在实验室领域的应用示例,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.分子模型和化学反应模拟&#xff…

Microsoft To-Do使用经验分享,使用Microsoft To-Do更好的规划自己的目标

为什么使用Microsoft To-Do 很久之前尝试使用过onenote,有道云笔记,印象笔记,小米便签等管理自己的日程,有一定的作用,但是功能过于简单或者冗余,没有达到时间管理的目的,没有办法坚持下来,通过…

C++类与对象基础(8)

目录 1. 隐式类型转换与关键字explicit: 1.1 隐式类型转换举例: 1.2 explicit关键字: 2. 友元: 2.1 友元函数: 2.2 友元类: 3. 内部类: 4. 勘误: 1. 隐式类型转换与关键字explicit: 1.1…

网安入门12-文件上传(黑白名单,00截断)

黑名单绕过 Pass-03 有的时候后端限制了一些黑名单,比如过滤后缀名.php 我们就可以用黑名单里没有的后缀名进行绕过,例如: 大小写:.phP .pHp .AsPphp1 .php2 .php3 .php9 .phtml(成功率较高)特殊文件名绕…

使用kennycason.kumo.WordCloud For JAVA 制作词云图

官网&#xff1a;https://kennycason.com/posts/2014-07-03-kumo-wordcloud.html 一&#xff1a;添加POM文件 <!-- 词云 --><dependency><groupId>com.kennycason</groupId><artifactId>kumo-core</artifactId><version>1.27<…

CHS_01.1.4+操作系统体系结构 一

CHS_01.1.4操作系统体系结构 一 操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题操作系统的内核 在这个小节中 我们会学习 操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题 那这个小节的内容我们只需要做简要的了解就可以了 我们考试中常考…

Day3Qt

1. &#xff08;1&#xff09;完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 …

C++并发编程实战第2版笔记

文章目录 p19 某个线程只可以join()一次p22 只有当joinable()返回true时才能调用detach()P21 在std::thread对象析构前&#xff0c;必须明确是等待还是分离线程P25 移动语义P25 将类的成员函数设定为线程函数 p19 某个线程只可以join()一次 只要调用了join()&#xff0c;隶属于…

概述:利用大模型 (LLMs) 解决信息抽取任务

论文标题&#xff1a;Large Language Models for Generative Information Extraction: A Survey 论文链接&#xff1a;https://arxiv.org/pdf/2312.17617.pdf 论文主要探讨了大型语言模型&#xff08;LLMs&#xff09;在生成式信息抽取&#xff08;IE&#xff09;任务中的应用…