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

testing an unsigned apk that eventually will be signed with a system signature

我正在开发一个非 google 播放应用程序,它将作为 unsigned release assembly apk 交付给设备制造商,设备制造商将使用他们自己的私有系统密钥签名对其进行签名。

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

因为我无法访问最终签名的 apk(或签名密钥本身)我不知道如何测试我提供的产品(在真实设备上而不是模拟器上)因为它的功能取决于系统签名。

到目前为止,我只找到 is a very old thread 讨论如何使用系统签名进行签名的参考,但据我所知 - 它不再有效。

我想了解有关如何测试我的应用程序行为的推荐工作流程,因为它在真实设备上使用系统签名进行签名。

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

您可以在 /system/app 而不是 /data/app 的通常安装位置对设备进行 root 并侧载您的 APK。一旦您的应用程序带有安装了必要系统权限的清单,重新启动并正常安装(adb install 到 /data/app),然后您将能够使用应用程序中定义的系统权限 /system/app.