问题标签 [android-signing]

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 投票
0 回答
55 浏览

android - 签署 APK 时出现无效的密钥库格式错误

我在 PlayStore 上有一个使用 JKS 文件签名的应用程序。我错误地复制并粘贴了文件的内容。即使内容仍然相同,当我尝试使用 JKS 文件构建签名 apk 时出现此错误:

是否可以再次使用此 JKS 文件?

谢谢

0 投票
0 回答
29 浏览

android - 检查 GET_SIGNATURES 返回的一份证书的有效性

我读过 PackageInfo.GET_SIGNATURES 可能与 FakeID 漏洞有关。

如果我做对了,它不会只返回有效证书,所以我可以弄乱证书并在那里添加会破坏信任链的无效证书,这些证书将由 GET_SIGNATURES 返回。在 KitKat 及以下版本中,Android 实施了一些错误的证书检查,并没有检查所有应该检查的内容,因此链可能会被破坏,但一切仍然被认为是正确的。我做对了吗?

如果我这样做了,我有一个问题。

  • 由于 GET_SIGNATURES 返回应用程序持有的任何证书,无论它是否证明它可以持有它们,我如何才能体面地检查应用程序的证书之一是否有效?这个问题适用于 KitKat 及以下,以及 Lollipop 及以上(直到 Pie,我们可以使用 GET_SIGNING_CERTIFICATES,它只返回有效的并结束)。
  • 我考虑过使用 PackageManager.checkSignatures()。但是……是不是受Pie下面的漏洞影响?(包括 KitKat 及以下和 Lollipop 及以上)因为我不知道如何检查包(抽象方法)。我想从 Lollipop 开始就可以了,因为他们修好了这个东西?如果那是正确的,那么 KitKat 及以下版本呢?在这种情况下,我是否需要自己检查信任链?(或者在任何其他情况下?无论如何都要检查!?)

编辑: checkSignatures()似乎检查两个包中的所有签名是否相等。这样就可以绕过漏洞。然后我改变我的问题:要检查是否只有一个返回的证书GET_SIGNATURES是有效的,我是否需要通过自己的信任链算法进行编码?

0 投票
1 回答
128 浏览

apk - 无法使用现有密钥库文件生成 .aab 构建

目前我们的android build 导出格式是.apk 格式。我能够成功获取 apk build v1 & v2 签名。从 2021 年 8 月 1 日起,谷歌停止使用 .apk,需要每个人都应该迁移到 .aab 捆绑文件。因此,当我用来生成 .apk 文件的同一密钥库文件时,我遇到了以下错误

详细错误信息:

有没有办法在密钥库文件中编辑 SHA-1 摘要算法的密钥大小?

任何其他解决方法?[比如禁用 V1 签名]

0 投票
1 回答
465 浏览

android - 如何在一键登录中使用 Google Activity Result API

在我的一个 Android 应用程序中,我尝试按照示例https://developers.google.com/identity/one-tap/android/get-saved-credentials#disable-one-tap包含 One Tap 登录身份验证. 但是,这里https://developer.android.com/reference/androidx/activity/ComponentActivity#startActivityForResult(android.content.Intent,int)它说函数 startActivityForResult 已被弃用,而是使用函数 registerForActivityResult 传入 StartActivityForResult ActivityResultContract 的对象。在其他示例的帮助下,我可以编写以下代码

只有我不知道如何根据 Google Activity Result API 转换指令 loginResultHandler.launch(result.getPendingIntent().getIntentSender()) (getIntentSender() 返回一个 IntentSender 但 loginResultHandler.launch() 需要一个 Intent) . 任何人都可以帮助我或链接我的工作示例吗?谢谢你。

编辑: 最后,我用以下方式重写了代码(我已经在帐户选择屏幕上对其进行了测试并且它可以工作):

0 投票
1 回答
45 浏览

azure-ad-b2c - 带有 Google 托管应用签名的 Azure AD B2C 签名哈希

是否有人使用 Azure AD B2C 和 Google Play 并选择了“让 Google 管理和保护您的应用签名(推荐)”选项?

在这种情况下,我不知道如何遵循 Azure 门户中关于“生成生产签名哈希”的说明。说明是运行此命令:

在这种情况下,我没有 SIGNATURE_ALIAS 或 PATH_TO_KEYSTORE。

0 投票
0 回答
21 浏览

android - 签署apk时如何解决zipalign错误

我正在尝试签署一个应用程序。但我得到了一个错误。这是命令的调试输出:

你能告诉我这里有什么问题吗?

0 投票
1 回答
30 浏览

android - 是否可以在没有 JAR v1 标志的情况下构建和上传适用于 Android 5/6 的 apk 文件?

我们的 Android 应用程序的用户拥有 Android 5 和主要版本,我们知道有一个安全补丁可以避免在他们中出现 Janus 漏洞,从而允许旧的 Android 版本接受 .apk 的 v2 标志。然后,我们尝试为 Android 5 或主要版本构建一个没有 JAR v1 标志(enableV1Signing false)的 .apk,并且构建工作正常。但是随后 apksigner 说“不验证”,当我们尝试将 .apk 上传到商店时,它也被拒绝了。那么,是否可以避免 Android 5 或主要版本的 v1 标志?如果没有,我们如何发布应用程序,不包括没有安装 Janus 安全补丁的 Android 5 和 6 用户?提前致谢。

0 投票
1 回答
17 浏览

android - Android自定义权限与应用签名

我已经浏览了关于这两个主题(自定义权限和应用签名)的可用文档和 SO 帖子,我的理解是:

  1. 使用相同密钥签名的应用可以使用签名级权限
  2. 自定义权限只能在一个地方定义,并且需要先安装声明权限的应用
  3. 如果应用共享相同的签名,则可以在多个应用中定义自定义权限

现在我需要在一个应用程序中定义一些组件,这些组件将在另一个使用相同密钥签名的应用程序中使用,但据此不需要定义自定义权限并且可以进行签名检查

如果该功能仅适用于使用与提供应用程序相同签名的应用程序,则您可以通过使用签名检查来避免定义自定义权限。当您的一个应用程序向您的另一个应用程序发出请求时,第二个应用程序可以在遵守请求之前验证两个应用程序是否使用相同的证书进行签名。

我不明白签名检查是什么意思,有没有办法在该组件上放置一个检查清单,或者我必须以编程方式检查它?如果是后者,不是更好地在两个应用程序中定义自定义权限(以否定安装顺序问题)吗?