我如何检查Android apk是用发布而不是调试证书签名的?
使用此命令(在cmd提示符中进入java < jdk < bin路径)
$ jarsigner -verify -verbose -certs my_application.apk
如果你看到“CN=Android Debug”,这意味着.apk是用Android SDK生成的调试密钥签名的 (意味着它是无符号的),否则你会找到一些CN。 详情见:http://developer.android.com/guide/publishing/app-signing.html
使用以下命令:(Jarsigner在您的Java bin文件夹中,在cmd提示符中进入Java ->jdk->bin路径)
$ jarsigner -verify my_signed.apk
如果.apk签名正确,Jarsigner打印“jar已验证”
使用控制台命令:
APKSIGNER 验证 --打印证书应用程序开发发布.apk
你可以在../sdk/build-tools/24.0.3/apksigner.bat中找到apksigner。仅适用于构建工具v. 24.0.3及更高版本。
请阅读谷歌docs: https://developer.android.com/studio/command-line/apksigner.html
最简单的方法:
keytool -list -printcert -jarfile file.apk
它使用Java内置的keytool应用程序,不需要提取或任何构建工具安装。
解压缩的apk keytool -printcert -file ANDROID_。RSA或keytool -list -printcert -jarfile app.apk获取hash md5 .apk Keytool -list -v -keystore clave-release.jks 比较md5
https://www.eovao.com/en/a/signature%20apk%20android/3/how-to-verify-signature-of-.apk-android-archive
在终端中运行这个命令-如果你有Android Studio。
$ /Applications/Android\ Studio.app/Contents/jre/Contents/Home/bin/keytool -printcert -jarfile example.apk
Not a signed jar file
使用keytool或jarsigner可能不适合您。您首先需要了解签名是如何工作的。在这里看到的。
如果你的最小API低于24,v1签名将包含在apk中(在META_INF中)。正因为如此,这两个工具将“排出”您的证书密钥。
如果使用min API 24或更高,v1签名将被排除(除非你在build.gradle中自己启用它)。在这种情况下,keytool或jarsigner都不起作用。它们将输出没有签名的jar文件或jar是unsigned的。要验证v2+签名,应该使用apksigner。
推荐文章
- Manifest合并失败:uses-sdk:minSdkVersion 14
- 为什么Android工作室说“等待调试器”如果我不调试?
- 如何检查我的EditText字段是否为空?
- Android从图库中选择图像
- 后台任务,进度对话框,方向改变-有任何100%工作的解决方案吗?
- Android:垂直对齐多行EditText(文本区域)
- Android无尽列表
- Android room persistent: AppDatabase_Impl不存在
- 错误:执行失败的任务':app:compileDebugKotlin'。>编译错误。详细信息请参见日志
- 在Android中使用URI生成器或使用变量创建URL
- 缩放图像以填充ImageView宽度并保持纵横比
- 列表视图的自定义适配器
- 在Android中设置TextView span的颜色
- 如何以编程方式在RelativeLayout中布局视图?
- Android Facebook集成无效键散列