问题标签 [apksigner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

android - 如果 apk 仅使用 v2 签名方案进行签名,则获取证书指纹

v2 签名方案有效(在链接中提到)v2 签名方案 我对此几乎没有疑问。

如果 apk使用 v2 签名方案(而不是 v1 签名方案)进行签名,那么如何获取 apk 的证书指纹?问题是那里没有(CERT.RSA)文件。

我尝试在互联网上进行了很多搜索,但是当使用 v1 签名方案时,到处都给出了解决方案。哪些现有工具可用于提取 APK 签名块?

0 投票
1 回答
424 浏览

android - apksigner v1 方案:假

我从其他来源(apkfollow.com)下载了一个 apk 文件,以获取我的银行应用程序的旧版本。我已经apksigner针对这个 apk 文件运行如下:

问题:

  1. 为什么是 v1 方案false?较新的 Android 版本不再需要它吗?
  2. 我可以相信这个apk吗?如果它说Verifies,这是否意味着 apk 文件是应用程序的官方未修改版本(假设我知道公钥/证书具有正确的已知摘要)?
0 投票
1 回答
406 浏览

android - 使用 Apksigner 时出现“未找到中央目录记录的 ZIP 结尾”错误

我正在使用 android 构建工具 (29.0.2) 附带的 apksigner 二进制文件。首先,作为 CI/CD 流程的一部分,我将一个未签名的 apk 文件上传到 Artifactory。在签名阶段,我从 Artifactory 下载了 apk(这是成功的),并尝试使用 apksigner 对文件进行签名,如下所示:

需要提及的事情:

  • 我在签名之前创建了输出 apk 文件并将文件权限设置为 775
  • 我在 Linux 环境中工作
  • apk 文件从 MacOS 机器上传到 Artifactory

下面的命令抛出错误:

线程“主”com.android.apksig.apk.ApkFormatException 中的异常:格式错误的 APK:不是 com.android.apksig.ApkSigner.sign(ApkSigner.java:217) 上 com.android.apksig.ApkSigner.sign 的 ZIP 存档(ApkSigner.java:193) 在 com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:340) 在 com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:83) 引起:com.android.apksig。 zip.ZipFormatException:在 com.android.apksig.ApkSigner.sign(ApkSigner.java:215) 的 com.android.apksig.apk.ApkUtils.findZipSections(ApkUtils.java:57) 中找不到 ZIP 中央目录记录的结尾。 . 3 更多

可能是什么原因?我虽然从 MacOS 机器上传到 Artifactory 时,未签名的 apk 文件可能会以某种方式损坏。

0 投票
1 回答
121 浏览

android - 在 AGP 更新到 4.1.0 后,ApkSigner 无法签署 APK

我正在使用 Dynatrace Android 代理。作为检测的一部分,它需要使用 ApkSigner.jar 对 .apk 进行签名。在我将 Android Gradle 插件从 4.0.1 更新到 4.1.0 后,签名过程开始失败,出现以下异常:

回滚 AGP 版本后问题立即消失。

是什么导致签名失败?如何在不使用--min-sdk-version参数的情况下修复它?

0 投票
1 回答
129 浏览

android - 从 jarsigner 迁移到 apksigner

我们目前正在使用签名我们的 Android 应用程序,jarsigner但我们希望迁移到使用apksigner,以便我们可以利用它的额外好处,例如 v2 签名算法。

在这种迁移中是否需要考虑任何因素,或者是否像更改我们正在使用的工具一样简单?我们主要关心的显然是避免在将更新的应用程序推送到 Play 商店时出现任何并发症。

0 投票
1 回答
36 浏览

apksigner - apksigner --v4-no-merkle-tree 选项不存在

Android 开发者文档解释说有一个选项,但该--v4-no-merkle-tree选项不存在。我正在这样做通过 CMD 进行签名

我正在使用最新的构建工具 31.0.0-rc1。以前的版本也没有这个选项

我错过了什么?

0 投票
1 回答
42 浏览

android - Android 签名密钥更改(不是 Play 商店分布式应用程序)

我有以下情况:

我们有一个关键应用程序,它通过从我们自己的服务器(不是 Play 商店)下载的 apk 进行分发。该应用程序通过下载和安装 apk(带有 android 意图)来更新自身和另一个应用程序。这两个 apk 都由我们公司的代码签名密钥签名。

问题:

签名密钥将在 5 天后到期,我们无法更新它,因为它是 2048 位 RSA。根据一些 CA/浏览器论坛文件:

代码签名的基线要求

但是如果我们把私钥改成3072bit RSA,android会拒绝安装(这个我理解):

有没有比卸载和重新安装应用程序让用户更痛苦的方法? (它在全国范围内分发给 1000 多个无法执行此操作的客户)。

更改包名称对客户端来说意味着一个干净的数据库,因此这不是一个可行的解决方案。这是真的吗,我无法获得 2048 位 RSA 私钥的有效签名?有什么解决办法吗?

提前致谢!

0 投票
2 回答
1326 浏览

android - Android:使用带有多证书的 ApkSigner 为 APK 签名

问题是我的应用程序 apk 使用 jarsigner 使用 sha1 signer #1 和 sha1 signer #2 签名。意思是同时使用 first-release-key.jks 和 second-release-key.jks 进行多重签名,我现在认为这是错误的。Apk 显示两个证书。现在尝试使用 sha2 signer #1 与 apksigner 签署 apk,然后使用 sha2 signer #2 失败。

https://developer.android.com/studio/command-line/apksigner

通常,您只使用一个签名者对 APK 进行签名。如果您需要使用多个签名者对 APK 进行签名,请使用 --next-signer 选项分隔一组通用选项以应用于每个签名者:

当 --next-signer 与上述一起使用时,apksigner 使用“ SigningCertificateLineage ”时出错

源代码:

https://android.googlesource.com/platform/tools/apksig/+/master/src/main/java/com/android/apksig/SigningCertificateLineage.java

在使用 --next-signer 时,任何人都可以帮助在哪里获得 SigningCertificateLineage 和随附的 SigningCertificateLineage,因此 apk 是多重签名的?

谢谢

0 投票
0 回答
30 浏览

android - 如何在命令行中使用 APKsigner 签名 APK 时应用 proguard、minifyEnabled 和 shrinkResources

我正在尝试使用 APKsigner 签署 APK 并能够在命令行中签署以下命令,

apksigner sign --ks "my keystore path" unsigned.apk

执行后询问密码并创建签名的APK。

谁能告诉我如何在命令行中使用 APKsigner 签署 APK 时应用 proguard、minifyEnabled 和 shrinkResources?

0 投票
1 回答
394 浏览

android - 如何使用 SHA256 算法签署 .apk

我有一个 .keystore 证书(10 年前生成)来签署 apk,我正在使用 android sigingCONfig 函数对其进行签名,它使用 SHA1 哈希算法进行签名,谁能告诉我如何使用现有的 SHA256 签名算法进行签名.keystore 证书?