2014-08-27 76 views
0

我正在嘗試使系統應用程序工作。以下是我的:使用與系統相同的證書構建Android APK

具有完整4.4.2源代碼的OEM OMAP平臺。我已經構建了系統,並使用Ubuntu 14.04加載到我的平臺上。這一切都有效。

現在,有一個來自OEM的應用程序,它直接訪問硬件(DSP,I2C,UART)等等。來自OEM的原始APK在我的平臺上工作。

我使用make命令(不使用Eclipse)構建完全相同的應用程序;它構建,我可以在平臺上安裝。但是當我嘗試啓動應用程序時,它會陷入永恆的等待狀態。

我不確定,但我懷疑我的本地構建的應用程序嘗試初始化板上的硬件組件,然後在那裏被阻止。

我一直在閱讀文章,看起來好像與應用程序簽名和證書有關。我認爲總體思路是應用程序需要使用與系統本身相同的證書進行簽名。我想,因爲我使用相同的命令在同一臺機器上構建了應用程序和系統,它們將具有相同的證書。

如果有幫助,清單文件中有這樣一行:

android:sharedUserId="android.uid.system" 

而該項目使文件Android.mk有這樣一行:

LOCAL_CERTIFICATE := platform 

誰能告訴我我怎樣才能使應用程序工作?我不確定,好像我必須用適當的證書重建應用程序,以便它可以訪問所有的硬件資源。

謝謝。

回答

0

檢查signing system apk

可選:

您需要創建通過使用密鑰工具 - importkeypair一個密鑰存儲文件,你可以找到here

進入平臺源代碼樹中的build/target/product/security/目錄(與您的Android版本和供應商相關的源代碼)。

你會發現platform.pk8platform.x509.pem文件。

通過使用這個例子命令創建密鑰庫文件:

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

您可以使用該密鑰庫文件來簽署APK這將有系統權限之後。

相關問題