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,一经查实,立即删除!

相关文章

2023全球年度安全漏洞TOP 10

数字化转型步伐不断加快,社会各行业迎来了许多发展机遇,但与此同时面临着日益复杂的数据安全和网络安全威胁。其中,安全漏洞数量持续增长更是成为了各行各业不可忽视的挑战,尤其是在工业、金融、交通、国防、医疗和信息技术等领域…

K8S集群调度(2)

schedule的调度算法 预算策略 过滤出合适的节点 优先策略 选择部署的节点 nodeName:硬匹配,不走调度策略。node01. nodeSelector: 根据节点的标签选择,会走调度的算法。 只要是走调度算法,在不满足预算策略的情况下,所有po…

MyBatisPlus学习笔记一

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

2-归并排序

算法:归并排序 思想:分治法【问题分解,归并排序递归解决,合并解】 实现:将数组通过递归方式自顶向下的分解至最小单元,再自底向上进行合并,以此实现排序 时间复杂度: Θ ( n l g n )…

老胡的周刊(第123期)

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

206.【2023年华为OD机试真题(C卷)】最大N个数与最小N个数的和(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-最大N个数与最小N个数的和二.解题思路三.题解代…

力扣173. 二叉搜索树迭代器

深度优先搜索 思路: 遍历二叉搜索树,左子树总比根节点小,右子树总比根节点大;先深度遍历左子树,然后返回其父节点,然后遍历其右子树节点;使用栈数据结构存储节点数据,借用其“后进先…

空间转录组与单细胞转录组联合分析——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、…

go study twoday

交换两个数值 package mainimport "fmt"func main() {var num1 intvar num2 float32fmt.Println("请输入一个整数:")if _, err : fmt.Scanln(&num1); err ! nil {fmt.Println("输入错误:", err)return}fmt.Println(&q…

基于51单片机的蓄水池液位无人监测与自动调节系统设计

设计并实现基于51单片机的蓄水池液位无人监测与自动调节系统是一篇工程实践性很强的技术论文,以下是一个可能的论文提纲示例: **标题:** 基于51单片机的智能蓄水池液位监测与自动调节系统设计 **摘要:** 本文针对蓄水池液位实时…

在 ESP-IDF 环境下,使用标准 C 扩展 Micropython 模块

在 ESP-IDF 环境下,使用标准 C 扩展 Micropython 模块 源码地址 : https://gitee.com/Mars.CN/micropython_extend_example 一、 安装 ESP-IDF 环境 在其他课程中讲过,这里不再赘述,有机会再出教程吧,但需要注意的是…

全网独家:基于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分钟定时触发…

SQL SERVER 不拼接SQL如何条件查询

遇到条件查询,比如用户可以在界面上选择想要查询的条件。 我们常用的方法是拼接SQL,如下: declare id int, SQL NVARCHAR(50) set SQL select * from user where 11 if id is not null beginset SQL SQL and id id end 但是如果需…

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

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