Android 对apk进行重签名和查看签名(window 和mac)及生成签名

Android 对apk进行重签名和查看签名(window 和mac)及生成签名标题实际上说了二个问题:查看签名和重签名先说一个简单的查看签名:第一步:将apk解压第二步:找到META-INF下的.RSA文件第三步:在mac终端或者window控制器上输入命令:keytool-printcert-filexxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看:如下图重新签名…

大家好,又见面了,我是你们的朋友全栈君。

生成签名文件:其实是有很多工具可以做到,这里不过是想用命令来生成
其命令如下:生成的签名默认在c盘根目录下
keytool -genkey -alias aaaa.keystore -keyalg RSA -validity 2000 -keystore newandroid.keystore
备注说明:-alias后面跟着的是别名(android.keystore) -keystore后面跟着的是具体的签名文件(及签名文件的命名–newandroid.keystore)
当使用这个命令生成后,会有个警告,不符合pkcs12标准,需要消除掉(也可以不消除),使用如下命名:
keytool -importkeystore -srckeystore android.keystore -destkeystore newandroid.keystore -deststoretype pkcs12
将上面的android.keystore签名迁移到newandroid.keystore中,其各种参数不变。
截图如下
这里写图片描述

标题实际上说了二个问题:查看签名和重签名
首先说:如果对方给了你.keystore之类的文件格式的签名文件后,实际上时可以查看相关的签名的信息的,只需要在cmd控制台运行如下命令即可:
直接运行keytool命令时不可行的 需要配置环境,将keytool.exe所在的目录配置到环境变量中
可以直接下jdk安装配置,也可以用as自带的目录:\jre\bin
命令:keytool -list -v -keystore xxxx.keystore 即可得到如下示意图信息:
这里写图片描述
非解包的情况下:查看签名
keytool -list -printcert -jarfile app-release-sign.apk

先说一个简单的查看apk的签名信息:
第一步:将apk解压
第二步:找到META-INF 下的.RSA文件
第三步:在mac终端或者window控制器上输入命令:
keytool -printcert -file xxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看:如下图
这里写图片描述
其中:MD5的值就是签名的信息(已被隐藏)

去掉apk的签名就比较简单了:
反编译apk后 去掉original里面的META-INF文件夹即可 然后回编译出来即正常apk

重新签名就有点复制了:
首先我们必须拿到未签名的apk 和需要签名的keystore文件 以及别名和key password 和 key store password信息.
最简单的办法:使用360签名工具,但是只适用于window系统,其签名工具下载地址如下:
http://www.pc6.com/softview/SoftView_230893.html

但是mac只能使用命令进行签名
签名命令如图下:
使用jarsigner进行签名
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]
或者直接把密码给带进签名里面去,就不用手动输入密码库密码了:命令如下
jarsigner -verbose -keystore [您的私钥存放路径] -storepass 密码库密码 -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]
或者
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称] -storepass 密码库密码

jarsigner的参数说明,以上的路径都是我自己电脑里面的路径

您的私钥的存放路径,指的是 keystore文件 即路径为/Users/liangzijishu/Desktop/keys/okGame.jks
签名后文件存放路径,指点是签名后 产生的新的apk文件 即存放路径为/Users/liangzijshu/Desktop/abc.apk(并重新命名了)
[未签名的文件路径] 指定要签名apk文件的绝对路径,也就是别人给你的未签名的apk文件 /Users/liangzijishu/Desktop/天涯明月刀.apk
[您的证书名称] 是指您创建密钥时您设置的证书名称 即仓库的别名 即sihaoGame
密码库密码是指 仓库密码
命令如下图:
这里写图片描述

同时输入的密钥库密码短语:就是key store password(此时不会显示密码 直接输入 回车即可)

可能会报的错如下:
第一:jarsigner 错误: java.lang.RuntimeException: 密钥库加载: /Users/liangzijishu/okGame.jks(No such file or directory)

keystroe的拓展名 可以为.jks(或者是.store  未验证)  但是不能为.txt 否则会报错误 

第二种报错:
jarsigner: 找不到kaoyan_keystore的证书链
即:由于证书名称写错了,证书名称即Alias(你设置的别名)

第三种报错:
jarsigner 只能使用一种别名
即在签名的时候 即某个路径下面出现了空格 例如:C:\Users\Administrator\qyysnew new\dist
则qyysnew new中间出现了空格 实际上是一个目录

第四种报错: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl1272757617.tmp/base.apk: META-INF/CERT.SF indicates /data/app/vmdl1272757617.tmp/base.apk is signed using APK Signature Scheme v2, but no such signature was found. Signature stripped?]
签名后安装时出现此问题:是因为原来的apk带有v2签名,即首先需要去掉v2签名,然后再签名即可
以上信息:还要感谢我的好盆友及一位博主:
博主博客如下:
https://www.jianshu.com/p/dbcfff997ccb

手动对齐操作:
手动对齐apk:zipalign 4 unaligned.apk aligned.apk (或者zipalign -v 4 unaligned.apk aligned.apk)
验证是否对齐:zipalign -c -v 4 application.apk。

以上:非常感谢

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130147.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机组成原理知识点

    计算机组成原理知识点计算机体系结构(ComputerArchitecture)主要研究硬件和软件功能的划分,确定硬件和软件的界面,哪部分功能由硬件系统来完成,哪部分功能由软件系统来完成。计算机组成原理(ComputerOrganization)是依据计算机体系结构,在确定且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,以及它们之间的连接关系,实现机器指令级的各种功能和特性,这点上说

    2022年6月1日
    36
  • 实验七 香农编码_香农编码效率可以大于1吗

    实验七 香农编码_香农编码效率可以大于1吗一、实验目的编程,对某一离散无记忆信源实现香农编码,输出消息符号及其对应的码字。设离散无记忆信源,。二进制香农编码过程如下:1、将信源发出的N个消息符号按其概率的递减次序依次排列。2、按下式计算第i个消息的二进制代码组的码长,并取整。3、为了编成唯一可译码,首先计算第i个消息的累加概率4、将累加概率Pi(为小数)变成二进制数5、除去小数点,并根据码长li,取小数点后li位数作为第i个消息的码字。二、实验环境Dev三、实验过程:#include<stdio.h>

    2025年10月18日
    4
  • typescript 多继承_说明类的继承和多态有什么作用

    typescript 多继承_说明类的继承和多态有什么作用前言对于传统的JavaScript程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员使用这些语法就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来

    2022年7月31日
    7
  • 到底什么作用

    到底什么作用

    2021年9月22日
    40
  • 算法学习–整型转字符串

    算法学习–整型转字符串字符串转整型的逆过程代码思路:1、输入一个整型数,判断整型数是否<0;2、不断地对整型数做取余,得出余数与‘0’相加,然后整型除去10,就是说,把整型个十百千每一位都取出来,变成ASCII码的数字,存起来;3、最后把正负号补上。代码如下:#include#include#include#includeusingnamespacestd;

    2022年10月19日
    2
  • 人力资源管理中的大数据应用之道[通俗易懂]

    人力资源管理中的大数据应用之道[通俗易懂]本文来自网易云社区。随着时代的发展,计算机技术已经成为了人们生活以及日常办公必不可少的重要手段,尤其是近两年来,大数据以及云计算已经成为了企业管理的重要手段,不仅帮助企业提升业务管理,同样对于企业的人力资源管理同样起着重要的作用。从当前时代发展的角度来看,利用大数据进行人力资源分析,能够更好的帮助人力资源部门进行人员的招聘、人才的测评以及对人才进行合理的培训、管理、薪酬的配比以及员工的职业生涯…

    2022年5月27日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号