2010-08-30 88 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

  • 后,步骤安装您的签署系统应用到您的设备。祝你好运!!!
  • 相关问题