如何使用系统权限编译Android应用程序

时间:2010-08-30 07:39:36

标签: android permissions

我需要编译具有系统权限的应用程序才能使用目标应用程序com.android.settings。现在,当我尝试运行我的apk时,我收到错误消息

  

测试运行失败:权限拒绝:   开始仪器   ComponentInfo {com.jayway.test / android.test.InstrumentationTestRunner}   从pid = 354,uid = 354不允许   因为包com.jayway.test的确如此   没有签名匹配   目标com.android.settings

如何使用系统权限编译我的应用程序?

3 个答案:

答案 0 :(得分:30)

经过一些搜索后,我发现了如何用系统(平台)密钥签署我的应用程序。 系统签名位于目录<root-of-android-source-tree>/build/target/product/security中。您可以使用它们以系统权限对您的应用程序进行签名。

答案 1 :(得分:1)

  1. 添加到清单android:sharedUserId =“android.uid.system”

  2. 下载系统签名文件: platform.x509.pem platform.pk8

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

    1. 通过终端签署应用程序(java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk)(首先必须将所有文件放到一个文件夹中),或者使用keytool-importkeypair制作证书google_certificate.keystore然后
    2. keytool-importkeypair下载和解释的链接:

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

      1. 在此步骤之后,将已签名的系统应用程序安装到您的设备上。祝你好运!!!

答案 2 :(得分:-3)

对我而言,anser只是删除了debug.keystore文件。 AVD的默认存储位置位于OS X和Linux上的〜/ .android /,Windows XP上的C:\ Documents and Settings \ .android \以及Windows Vista上的C:\ Users \ .android \中。

在Eclipse中,我“清理”了项目,从模拟器中卸载了App和TestApp,并且 - 所有内容都恢复正常。