使用与系统相同的证书构建Android APK

时间:2014-08-27 16:21:21

标签: android android-ndk android-service android-permissions

我正在尝试让系统应用运行起来。这就是我所拥有的:

具有完整4.4.2源代码的OEM OMAP平台。我已经使用Ubuntu 14.04构建了系统并加载到我的平台上。一切正常。

现在,有一个来自OEM的应用程序可以直接访问硬件(DSP,I2C,UART)等。来自OEM的原始APK可以在我的平台上运行。

我使用make命令构建完全相同的应用程序(不使用Eclipse);它构建,我可以在平台上安装。但是当我尝试启动应用程序时,它会陷入永恒的等待状态。

我不确定,但我怀疑我的本地构建的应用程序尝试初始化板上的硬件组件,然后在那里被阻止。

我一直在阅读文章,看起来它与应用程序签名和证书有关。我认为一般的想法是应用程序需要使用与系统本身相同的证书进行签名。我想,既然我使用相同的命令在同一台机器上构建了应用程序和系统,它们将具有相同的证书。

如果有帮助,清单文件就有这一行:

android:sharedUserId="android.uid.system"

项目make文件Android.mk有这一行:

LOCAL_CERTIFICATE := platform

任何人都可以告诉我如何让应用程序运行?我不确定,似乎我必须使用适当的证书重建应用程序,以便它可以访问所有硬件资源。

感谢。

1 个答案:

答案 0 :(得分:0)

检查signing system apk

<强>任选地:

您需要使用keytool-importkeypair创建密钥库文件,您可以找到here

进入平台源代码树中的:build/target/product/security/目录(与Android版本和供应商相关的源代码)。

您会找到 platform.pk8 platform.x509.pem 文件。

使用以下示例命令创建密钥库文件:

keytool-importkeypair -k ~/.android/debug.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

您可以使用此密钥库文件来签署您之后将拥有系统权限的apk。