android查看签名工具
⑴ Android中APK签名工具之jarsigner和apksigner详解
转自 https://www.cnblogs.com/slysky/p/9780015.html
一.工具介绍
jarsigner是JDK提供的针对jar包签名的通用工具,
位于JDK/bin/jarsigner.exe
apksigner是Google官方提供的针对Android apk签名及验证的专用工具,
位于Android SDK/build-tools/SDK版本/apksigner.bat
不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(仅限V1签名),
以上两个工具都可以对Android apk包进行签名.
1.V1和V2签名的区别
在Android Studio中点击菜单 Build->Generate signed apk... 打包签名有两种签名选项 V1(Jar Signature) V2(Full APK Signature),
从Android 7.0开始, 谷歌增加新签名方案 V2 Scheme (APK Signature);
但Android 7.0以下版本, 只能用旧签名方案 V1 scheme (JAR signing)
V1签名:
V2签名:
V2签名优点很明显:
注意: apksigner工具默认同时使用V1和V2签名,以兼容Android 7.0以下版本
2.zipalign和V2签名
位于Android SDK/build-tools/SDK版本/zipalign.exe
zipalign 是对zip包对齐的工具,使APK包内未压缩的数据有序排列对齐,从而减少APP运行时内存消耗
zipalign -v 4 in.apk out.apk //4字节对齐优化
zipalign -c -v 4 in.apk //检查APK是否对齐
zipalign可以在V1签名后执行
但zipalign不能在V2签名后执行,只能在V2签名之前执行!!!
二.签名步骤
1.生成密钥对(已有密钥库,可忽略)
Android Studio在Debug时,对App签名都会使用一个默认的密钥库:
1.生成密钥对
进入JDK/bin, 输入命令
参数:
提示: 可重复使用此条命令,在同一密钥库中创建多条密钥对
例如: 在debug.keystore中新增一对密钥,别名是release
keytool -genkeypair -keystore debug.keystore -alias release -validity 30000
2.查看密钥库
进入JDK/bin, 输入命令
keytool -list -v -keystore 密钥库名
参数:
例如:
keytool -list -v -keystore debug.keystore
现在debug.keystore密钥库中有两对密钥, 别名分别是androiddebugkey release
2.签名
1.方法一(jarsigner,只支持V1签名)
进入JDK/bin, 输入命令
从JDK7开始, jarsigner默认算法是SHA256, 但Android 4.2以下不支持该算法,
所以需要修改算法, 添加参数 -digestalg SHA1 -sigalg SHA1withRSA
参数:
例如:
用JDK7及以上jarsigner签名,不支持Android 4.2 以下
jarsigner -keystore debug.keystore MyApp.apk androiddebugkey
用JDK7及以上jarsigner签名,兼容Android 4.2 以下
jarsigner -keystore debug.keystore -digestalg SHA1 -sigalg SHA1withRSA MyApp.apk androiddebugkey
2.方法二(apksigner,默认同时使用V1和V2签名)
进入Android SDK/build-tools/SDK版本, 输入命令
若密钥库中有多个密钥对,则必须指定密钥别名
禁用V2签名
apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk
参数:
例如:
在debug.keystore密钥库只有一个密钥对
apksigner sign --ks debug.keystore MyApp.apk
在debug.keystore密钥库中有多个密钥对,所以必须指定密钥别名
apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk
3.签名验证
1.方法一(keytool,只支持V1签名校验)
进入JDK/bin, 输入命令
keytool -printcert -jarfile MyApp.apk (显示签名证书信息)
参数:
2.方法二(apksigner,支持V1和V2签名校验)
进入Android SDK/build-tools/SDK版本, 输入命令
apksigner verify -v --print-certs xxx.apk
参数:
例如:
apksigner verify -v MyApp.apk
⑵ 通过AndroidStudio获取签名文件信息
1、查看apk安姿闭乎装文件的签名信息
右键解压apk,态源打开其中的META-INF文件,得到其中的CERT.RSA文件。
在AndroidStudio中打开 Terminal 执行命令keytool -printcert -file XXX(XXX为CERT.RSA文件路迹悉径)可以查看签名的MD5、SHA1、SHA256值。
2、直接查看签名文件的信息
在AndroidStudio中打开 Terminal 执行命令keytool -list -v -keystore XXX(XXX为签名文件路径)
再输入密码可以查看签名的MD5、SHA1、SHA256值。
效果图:
⑶ 如何查看android 应用签名
1、查看自己的应用签名可以通过两种方式查看(1) debug的apk通过Eclipse查看,:
(2) 某个keystore签名的应用,通过
Java
keytool -list -keystore E:\Trinea\keystore\appsearch.keystore
查看,会要求输入签名密码,默认为android,:
2、查看三方应用或是系统应用签名用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件,通过
Java
keytool -printcert -file META-INF/CERT.RSA
命令打印证书信息,如微信证书信息:
可以查看签名的MD5、SHA1、SHA256值及签名算法
⑷ android 微信开放平台,如何获取应用签名
在微信开放平台申请app应用的时候,遇到要填写 应用签名 一栏。
找到签名文件
keytool -list -v -keystore xxx.keystore
证书指纹节点下岩卜弯的MD5值转成小写,去掉冒号。
首先跟随 生成keystore和应用签名 ,生成 .jks 签名文件,
然后跟随 微信开放平台Android应用签名的本质及如何获取 的第三、四步,生成带签名的apk,并用专门的工具查看应用签名。
最后用工具查看到应用签名后,我们发现,其实它就是keystore文件的MD5值。
这样,我们就能够 查看应用签名了
如果你在 修改签名 后,进入微信授权页面失败,且提粗闷示"应用签名与微信开放平台上的签名不一致",有可能是 微信缓存 的缘故。
根据 android之微信开放平台修改签名 ,只要清理微信缓存,或重装微信即可。
接下来还有一个问题没解决:
解决方法参考 Android Studio直接运行调试签名包
但这样的做法会显示暴露keystore信息,所以跟随 Android Studio的两种模式及签名配置 的后半部分,可以让弊蚂项目间接引入keystore信息。
⑸ android怎样获取应用签名信息
android 应用签名获取方法如下:
1、选择程序,右键--->android tools --->签名发布,按步骤生成一个签名keystore和毕冲一个经过签名的apk,安装该APK到手机;
2、选择自己的程序,右键运行到手机
3、下载签名应用,在手机中运行,根据提示输入程序的包名羡培获得一个apk签名字符串,最后将这个字符串填到第一步的应用签名栏处。保存即可正常调试应用了。
android 应用签名查看方法如下:
(1) debug的apk通过Eclipse查看,如下图:
⑹ Android查看应用签名方法
查看应用签名的MD5、SHA1、SHA256值及签名算法。
查看keystore文件签名信息,前提要有keystore文件和密钥,才能够获取keystore文件的签名信息。
方法一:(适用于 AS)
1)打开 AS工具窗口栏右边的 Gradle -> Project -> app -> Tasks -> android -> signingReport,双击运行 signingReport;
在没有keystore文件和密钥的情况下,要想查看我们所需应用的签名信息,就需要借助 keytool 工具来完成。
首先解压要查看的apk包,通过数据证书管理工具 keytool 查看早禅姿apk的签名信息。具体步骤如下:
1)将apk修改后缀为 .rar 文件后进行解压;
2)进入解压后的 META-INF 目录,找到该目录下的 xxx.RSA 文件;
3)通过命令 cmd 打开DOS窗口,输入命令 : keytool -printcert -file [RSA文件路径]
在查看应用签名信陆绝息过程中,可能会遇到以下几个问题:
定位 keytool.exe 工具所在的目录,使用相关操作命令查袭败看签名信息;
JKS(Java KeyStore) :是 Java 的 keytools 证书工具支持的证书私钥格式。jks 包含了公钥和私钥,可以通过 keytool 工具来将公钥和私钥导出。因为包含了私钥,所以 jks 文件通常通过一个密码来加以保护。一般用于 Java 或者 Tomcat 服务器。
PKCS #12 :定义了一种存档文件格式,用于实现存储许多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的 X.509 证书,或者打包信任链的全部项目。
定位 keytool.exe 工具所在的目录,使用操作命令转换证书格式;
⑺ Android系统签名
有时候,我们开发的apk需要用到系统权限,需要在AndroidManifest.xml中添加共享系统进程属性:
这时候apk的签名就需要是系统签名(platform、shared或media)才能正常使用。
常用系统签名方式
这种方式比较麻烦,你需要有编译过的源码环境,并按如下步骤:
1、拷贝App源码到Android源码的packages/apps/目录下,且App源码是普通(Eclipse)格式的
2、配置Android.mk,在其中添加
3、使用mm编译App,生成的apk即系统签名
这种方式比在源码环境下签名简单,App可以在Eclipse或Android Studio下编译,然后给apk重新签名即可。
但这种方式在频繁调试的时候比较痛苦,即使写成脚本,也需要重复一样的操作。
相关文件
platform.x509.pem、platform.pk8、signapk.jar
文件位置
platform.x509.pem、platform.pk8:
signapk.jar:
signapk源码路径:
签名命令
步骤
1、将相关文件及源apk文件置于同一路径下
2、检查源apk包,去掉META-INF/CERT.SF 和 META-INF/CERT.RSA 文件
3、执行签名命令即可
让Android Studio集成系统签名,需要用到一个工具 keytool-importkeypair ,详见下文。
这个工具的作用是将系统签名的相关信息导入到已有的签名文件里。
工具的使用方法可以通过–help或README.textile来寻求帮助
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh
我的做法是在App根目录新建Signature文件夹专门存放签名相关文件。
步骤
1、生成demo.jks签名文件
2、编写签名脚本signature.sh,内容如下:
为脚本文件添加可执行权限:
执行脚本:
3、配置builde.gradle
在android区域下(与defaultConfig同级)添加配置:
这样debug或release apk就带有系统签名了。
如果想直接Run app就是release版且带系统签名的apk,还需修改:
这样直接Run app就是带系统签名的release版apk了。
⑻ Android Apk签名工具
目前发布APK之前大家都会采用第三方加固方案来实现应用安全,锋册态
在Windows下 360有签名工具可以直接签名,腾讯乐固目前取消了签名工具采用云端加固,但是之后需要自己重签名(因为加固之前会先去掉签名)。
在Mac下没有签名工具,这就比较难受了。
一般来说,我们可以通过命令行来签名Apk,打开命令行或者终端 输入如下命令
但是这样容易比较麻烦,还容易出错,其实我们还可以使用脚本来完成自动签名。
这里来简单说明一下吧,我是采用python来实现的, Mac与Windows均可使用
本文python环境:python 3.8.2
sign.json 与signTool.py文件需要在同一文件夹下
其中sign.json 是签名文件配置项(在工具中可以快捷选择,银源也可以不配置)
如下:
这样就配置好了
signTool.py 是签名工具,通过命姿侍令行或者终端运行该文件就行了
signTool.py文件如下:
运行如下:
配置好相关文件之后,点击签名就行了
好了,完成了一个简单而又实用的工具
⑼ android 怎么查看签名文件
展开全部
以下介绍查看自己的应用签名及三方APK或系统APK签名信息,包含其中的MD5、SHA1、SHA256值和签名算法等信息。
1、查看自己的应用签名
可以通过两种方式查看
(1)
debug的apk通过Eclipse查看,如下图:
(2)
某个keystore签名的应用,通过以下命令查看
keytool
-list
-keystore
E:\Trinea\keystore\appsearch.keystore,会要求输入签名高轿密码,默认为android,如下图:
2、查看三戚皮肆方应用或是握橡系统应用签名
用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件,通过keytool
-printcert
-file
META-INF/CERT.RSA命令打印证书信息,如微信证书信息如下图:
可以查看签名的MD5、SHA1、SHA256值及签名算法