2010-08-30 90 views
21

我需要編譯具有系統權限的應用程序才能使用目標應用程序com.android.settings。現在當我嘗試運行我的apk我得到錯誤信息如何使用系統權限編譯Android應用程序

測試運行失敗:權限拒絕: 啓動儀器 ComponentInfo {com.jayway.test/android.test.InstrumentationTestRunner}從PID = 354 ,UID = 354不允許 因爲包com.jayway.test並 沒有簽名匹配 目標com.android.settings

我怎麼編譯我的系統權限的應用程序?

+4

如果您正在創建自己的固件,則只能使用系統簽名密鑰來簽署您的應用程序。 – CommonsWare 2010-08-30 08:35:54

+0

我想先試用Android模擬器。我可以用'choosecombo'命令選擇'debug'選項來編譯Android模擬器,然後嘗試安裝我自己的應用程序? – Michalis 2010-08-30 09:49:40

+0

在這裏看到答案: http://stackoverflow.com/questions/5383401/android-inject-events-permission/21555223#21555223 – wwjdm 2014-02-04 14:34:30

回答

31

經過一番搜索後,我發現如何使用系統(平臺)密鑰簽署我的應用程序。 系統簽名位於目錄<root-of-android-source-tree>/build/target/product/security。您可以使用它們以系統權限對您的應用程序進行簽名。

+0

太棒了!密歇根大學非常感謝! – 2011-07-18 13:00:14

+1

建立一個系統應用程序添加到固件,是否有必要導出APK?我設法獲得了Google的證書/密鑰庫,並且我能夠在模擬器中作爲系統應用運行該應用,但現在我需要將此應用提供給固件工程師,我不知道如何構建它。 – 2011-10-19 20:07:05

+0

我不知道/ bin中的.apk是否可以工作,因爲它已經通過google_certificate.keystore簽名 – 2011-10-19 20:14:32

-3

對我來說,anser只是刪除了debug.keystore文件。 AVD的默認存儲位置位於OS X和Linux上的〜/ .android /,Windows XP上的C:\ Documents and Settings \ .android \以及Windows Vista上的C:\ Users \ .android \中。

在Eclipse中,我「清理」了項目,從模擬器中卸載了應用程序和TestApp,並且 - 所有內容都再次運行正常。

+0

雖然這個解決方案解決了你的問題,並且已經解決了我幾次(由於過期的調試密鑰庫問題),但這是指另一個問題。 – 2017-11-29 09:21:54

1
  1. 添加到Android的表現:sharedUserId = 「android.uid.system」

  2. 下載系統簽名文件: platform.x509.pem platform.pk8

鏈接: https://android.googlesource.com/platform/build/+/android-8.0.0_r17/target/product/security/

  1. Sign app through termin al(java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk)(首先您必須將所有文件放在一個文件夾中),或者使用keytool-importkeypair創建證書以生成google_certificate.keystore,然後使用

鏈路密鑰工具,importkeypair下載和解釋:

https://github.com/getfatday/keytool-importkeypair

  • 後,步驟安裝您的簽署系統應用到您的設備。祝你好運!!!
  • 相關問題