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。

以上:非常感谢

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ip addr命令作用_linux查不到ip地址

    ip addr命令作用_linux查不到ip地址1.添加ip:ipaddradd1.1.1.100/255.255.255.0deveth02.删除ip:ipaddrdel1.1.1.100/255.255.255.0deveth03.清空接口ip:ipaddrflushdeveth0转载于:https://www.cnblogs.com/wangjq19920210/p/99995…

  • Jlink接口的Jtag和SWD接口定义「建议收藏」

    Jlink接口的Jtag和SWD接口定义「建议收藏」原址https://blog.csdn.net/u014124220/article/details/50829713Jlink仿真器接口仿真器端口连接目标板备注1.VCCMCU电源VCCVCC2.VCCMCU电源VCCVCC3.TRSTTRSTTestReSeT/pin4.GNDGND或悬空 5.TDITDITestDataInpin6.GNDGND或悬空 7.TMS,…

  • p2p网络传输协议

    p2p网络传输协议P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P还是英文PointtoPoint(点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较…

  • Java8 Lambda表达式详解手册及实例「建议收藏」

    Java8 Lambda表达式详解手册及实例「建议收藏」先贩卖一下焦虑,Java8发于2014年3月18日,距离现在已经快6年了,如果你对Java8的新特性还没有应用,甚至还一无所知,那你真得关注公众号“程序新视界”,好好系列的学习一下Java8的新特性。Lambda表达式已经在新框架中普通使用了,如果你对Lambda还一无所知,真得认真学习一下本篇文章了。现在进入正题Java8的Lambda,首先看一下发音([ˈlæmdə])表达式。注意该词的发…

  • linux目录结构详解_linux系统配置文件目录

    linux目录结构详解_linux系统配置文件目录前言平常linux系统用的也不少,那么linux下的每个目录都是用来干什么的,小伙伴们有仔细研究过吗?让我们来了解下吧Linux系统目录结构登录系统后,在当前命令窗口下输入命令:[root@

发表回复

您的电子邮箱地址不会被公开。

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