我有一个已签名的应用程序和几个密钥库文件.我想更新应用程序,所以我需要找出使用了哪个键.

我如何将最初用来签署我的应用程序的密钥库与我机器上的各种密钥库进行匹配?

推荐答案

首先,解压APK并提取文件/META-INF/ANDROID\ux.RSA(该文件也可以是CERT.RSA,但应该只有一个.RSA文件).

然后发出以下命令:

keytool -printcert -file ANDROID_.RSA

您将获得如下证书 fingerprint :

     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 -keystore my-signing-key.keystore

您将获得别名及其证书 fingerprint 的列表:

android_key, Jan 23, 2010, PrivateKeyEntry,
Certificate fingerprint (MD5): B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB

瞧!我们现在可以确定apk已经用这个密钥库和别名"android_key"进行了签名.

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

Android相关问答推荐

Jetpack Compose Scaffold—content不在TopAppBar下面开始'

list 合并失败,AGP 8.3.0

原始mp3文件不显示与proguard

如何将Unicode符号作为文本居中放置在布局中的按钮(Android XML)中?

如何从URI中获取图像大小

插入视图模型时,dagger 未命中绑定错误

Visual Studio 2022,毛伊岛,Android Emulator:无法更改内存量

我需要在房间数据库中保留旧的自动迁移行吗?

如何在我的sqlite数据库中获取某个玩家的分数

页面标题未显示在内容页面上

修复报错 RecyclerView: No adapter attached;跳过布局

在 Android 房间迁移中获取上下文

NFC getNdefMessage 在 Android 13 上写入标签后返回 null

在Android RoomDB中使用Kotlin Flow和删除数据时如何解决错误?

Jetpack Compose UI - 在 AlertDialog 中单击时按钮宽度会发生变化

如何在行/列/卡片 compose 中添加左边框

Compose `Icons.Outlined.Star` 没有概述

Horizo​​ntalPager 的可组合物中的 LaunchedEffect 问题

更改 Android SDK 版本 33 后建议在 xml 布局文件中不起作用

如何将房间数据库导出到 .CSV