我应该使用多个证书签署Android应用程序还是什么?

时间:2013-05-05 13:58:45

标签: android android-build android-keystore vnc android-binder

我有一个使用私有Android binder api的Android服务(特别是IWindowManager)。当我将其构建为Android平台源代码的一部分并将其安装在设备上(我有Uboot访问等)时,它可以正常工作。
我不喜欢GIT,所以我将服务移到GIT之外的不同版本控制,我无法访问Android源代码,但我可以使用Android sdk构建工具构建它。
由于IWindowManager是隐藏的api,sdk构建系统失败了我的构建。我创建了一个单独的android.jar,其中包含来自sdk的android.jar以及来自platform build的framework.jar。为此,我使用了dj-dex2jar 我使用自定义Ant任务(即带有支持Java ant代码的Ant taskdef)来更改sdk构建系统使用的bootclasspath。现在我的服务使用Android构建工具构建,但使用我创建的自定义android.jar 当我在我们的设备上安装这个apk时,我在IWindowManager服务上调用injectKeyEvent()时看到它失败了。此服务拒绝来电,说我的应用没有INJECT_INPUT权限。这是预期的行为,因为我的应用程序不再是平台应用程序。
我可以访问平台密钥。一种选择是使用平台密钥对应用程序进行签名并进行操作。但这是警告。我的应用还需要从内部应用访问Binder服务,该应用需要我们的发布密钥签署应用。

我该如何解决这个问题? 我喜欢我的服务能够调用需要通过平台密钥签名的活页夹调用,并且能够调用需要由我们自己的发布密钥签名的活页夹调用。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

在我的ROM中,我只使用平台密钥进行访问检查。所以我建议你让内部APP接受使用平台密钥的调用过程。

根据我的经验,一个应用程序只能用一个密钥签名。如果您需要更多安全检查,则应为此添加其他策略,例如包名检查。

相关问题