当前位置: 首页 > 知识库问答 >
问题:

如何找到apk文件的签名?

糜淇
2023-03-14

找到apk文件签名的最简单方法是什么?请注意,我不是在问代码。我只想从我的电脑上找到它。像这样的签名975yYkKAQF KST7g3ASHvHkYopq=

共有3个答案

张砚
2023-03-14

您可以使用Java7的密钥和证书管理工具(keytools)获取应用程序的签名

keytool -printcert -jarfile app-release.apk

您还可以获得Keystore的签名,请查看这篇文章:我们如何检查SHA1或APK和Keystore文件的签名

鲁烨熠
2023-03-14
Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
for (Signature sig : sigs)
{
    Trace.i("MyApp", "Signature hashcode : " + sig.hashCode());
}

http://developer.android.com/reference/android/content/pm/PackageManager.html

这可能会有所帮助

首先,解压缩APK并提取文件 /META-INF/ANDROID_.RSA(这个文件也可能是CERT. RSA,但应该只有一个。RSA文件)。

然后发出以下命令:

keytools-printcert-fileANDROID_。RSA您将获得如下证书指纹:

 MD5:  B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB
 SHA1: 16:59:E7:E3:0C:AA:7A:0D:F2:0D:05:20:12:A8:85:0B:32:C5:4F:68
 Signature algorithm name: SHA1withRSA

然后再次使用keytool打印出签名密钥库的所有别名:

keytool-list-密钥库我的签名密钥。密钥库您将获得别名及其证书指纹的列表:

android_key,2010年1月23日,PrivateKeyEntry,证书指纹(MD5):B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB瞧!我们现在可以确定apk已经用这个密钥库和别名“android\u key”签名。

Keytool是Java的一部分,因此请确保路径中包含Java安装目录。

如何找出哪个密钥库用于签署应用程序?

顾单弓
2023-03-14
$ $ANDROID_SDK/build-tools/$BUILD_TOOLS_VERSION/apksigner verify --print-certs -v $APK_FILE

例子:

$ /Users/hborders/android/build-tools/29.0.2/apksigner verify --print-certs -v ~/Desktop/my-apk.apk

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Number of signers: 1
Signer #1 certificate DN: CN=Bob Smith, OU=Acme, O=Acme, L=San Francisco, ST=California, C=US
Signer #1 certificate SHA-256 digest: f1f2f3f3f21f26a67s76a6a76a76a76a76a67c78c8c78c709c90c90c09932451
Signer #1 certificate SHA-1 digest: 839103847abdefcbade123713957358920
Signer #1 certificate MD5 digest: 182831983712923f2e2e2f2a2c2fbc25
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 1024
Signer #1 public key SHA-256 digest: 8acaca8cabcaabdadc8cc99cc695ace47aec4c747c746c476cae4657c47c4765
Signer #1 public key SHA-1 digest: b11bca4123bea24befbe5b8be9768ef078

apksigner是Android SDK的一部分,位于构建工具目录中。这是打印apk签名的工具。

 类似资料:
  • 按照应用程序手动签名指南, 您可以使用Android SDK和JDK中的标准工具从命令行对应用程序进行签名 这个可执行文件应该在哪里?文档从未指定我应该在签名指南或apksigner文档中从何处获取该工具。 我不记得上次手动签名应用程序时有过这个问题。我已经搜索了所有我能想到的目录,没有运气(包括子目录): AppData\Local\Android\SDK 程序文件\Android\Androi

  • 我已经用default debug.keystore密钥签署了我的apk,但不幸的是我的系统被破坏了,现在我需要从已经签署的apk中获取密钥存储。 用新apk替换旧apk。 我有MD5和SHA的指纹,但我可以把它们作为密钥库来签署APK。

  • 我的成绩档案里有这个: 然后,当我生成我的发行版APK时,我只需转到,就创建了APK。与转到不同,它会提示我输入以下内容: 我的问题是,我当前的gradle文件用什么版本的签名生成?是V1还是V2?我如何修改我的gradle文件,以使它特定地构建与V1或V2?

  • 在我的情况下,旧的apk文件名包含未对齐和未签名的签名信息。这些旧文件名在模块 gradle 文件中使用此方法重命名: 版本代码和版本名称设置如下: 在此重命名的结果中,签名信息(未对齐或未签名)位于变体版本代码之前。 现在我使用的是gradle:3.0.0-beta6。因此,我无法再使用旧方法,因为outputFile已更改为只读,无法重命名。现在我尝试向gradle添加一个新的重命名方法,如下

  • 我在准备释放的aab文件。 我们用的是扑动。 上一个版本是将签名的apk文件上传到google play商店,但是这次我们不能分别上传32bit和64bit的apk,所以我们尝试使用AppBundle。 我们发布apk文件时确实有签名。 而且由于发布操作(上传apk文件到google play)是由其他团队处理的,所以我不知道是否需要使用一个新的签名为aab文件的发布。 这是我的设定,和上次一样

  • 问题内容: 我在尝试编译一个android项目时从Jenkins控制台获得了以下输出:请注意,我没有对主类(Jenkins控制台)进行任何更改: 这是我的pom: 我认为我的问题来自目标目录,因为jenkins提到了这一点。我在詹金斯(Jenkins)有3个目录:assets,res et src是否应该在这三个文件夹中添加更多内容?例如lib或target ?? 问题答案: 该 档案文物 后生成