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

测试最终将使用系统签名进行签名的未签名apk

昝唯
2023-03-14

我正在开发一个非google play应用程序,它将作为一个未签名的发行版apk交付给设备制造商,他们将用自己的私有系统密钥签名来签名。

系统签名是必不可少的,因为应用程序使用具有保护级别signatureOrSystem的权限。由于该应用程序不会作为系统特权应用程序安装,因此必须使用系统的签名进行签名。

由于我无法访问最终签名的apk(或签名密钥本身),我不知道如何测试我正在交付的产品(在真实的设备上,而不是仿真器上),因为它的功能依赖于使用系统签名进行签名。

到目前为止,我找到的唯一参考是一个非常古老的线程,讨论如何使用系统签名进行签名,但据我所知--它将不再起作用了。

共有1个答案

符渊
2023-03-14

对于规模较大的公司,生产设备的公司会提供一个操作系统版本,供应用程序开发人员闪存到一个设备上,该设备有一组不同的可识别签名密钥供您测试。这就是他们希望应用程序开发人员能够测试他们的应用程序的方式,就像他们在一个完整的生产设备上运行一样。

您可能可以将设备根目录化并将APK放在/system/app中,而不是放在/data/app的通常安装位置。一旦安装了一个带有清单并具有必要系统权限的应用程序,请重新启动并正常安装(adb install到/data/app),然后您就可以在/system/app中使用应用程序中定义的系统权限。

 类似资料:
  • null 无论我用电子邮件发送apks还是用USB安装apks,问题仍然存在。

  • 这可能吗?如何从命令行执行此操作?

  • Pushes 签名 git push can be instructed to sign the push. The server may use this to control the execution of certain hooks: git push 可以被指示进行签名 push。服务器可以使用它来控制一些钩子的执行: ❯ git push --signed Github 现在貌似并没有

  • Merges 签名 git merge 命令可以在合并没有使用 --verify-signatures 命令带有不可信 GPG 签名的 commit/branch 时检查和拒绝 如果被合并的分支中有任何没有被有效签名认证的提交,合并将不会继续。 Merge commit 本身也是可以被签名的(使用 -S): ❯ git checkout -b enhancement/foo ❯ touch qux

  • Commits 签名 在上文提到的 git 仓库中添加一个新文件,并使用 -S 标签来提交(commit)它。(注意不是 -s 标签,在 commit 命令下它意味着 Signed-Off): ❯ touch biz ❯ git add biz ❯ git commit -S -m "Add biz" 你可以通过在 ~/.gitconfig.local 文件中添加下列内容来开启 commit 自动

  • Tags 签名 假设你有一个额外的文件可以在主 ~/.gitconfig 中添加 gitconfig 设置: [include] path = .gitconfig.local 配置 ~/.gitconfig.local 文件让其指向你插入的 GPG 签名钥匙: [user] signingkey = <signingKeyId> 开启 git tag -m <message> 来