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

如何使用系统权限编译Android应用程序,android,permissions,Android,Permissions,为了使用目标应用程序com.android.settings,我需要编译一个具有系统权限的应用程序。现在,当我尝试运行我的apk时,我得到了错误消息 测试运行失败:权限拒绝: 起动仪表 ComponentInfo{com.jayway.test/android.test.InstrumentationTestRunner} 从pid=354开始,不允许uid=354 因为包com.jayway.test 没有匹配的签名 target com.android.settings 如何使用系统权限编译

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

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


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

搜索之后,我找到了如何使用系统(平台)密钥签署我的应用程序。
系统签名位于目录
/build/target/product/security
中。您可以使用它们以系统权限对应用程序进行签名。

对于我来说,答案就是删除debug.keystore文件。AVDs的默认存储位置在OS X和Linux上的~/.android/中,在Windows XP上的C:\Documents and Settings\.android\中,以及在Windows Vista上的C:\Users\.android\中

在Eclipse中,我“清理”了项目,从emulator中卸载了应用程序和TestApp,瞧,一切又恢复了正常

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

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

  • 链接:

  • 通过终端对应用程序进行签名(java-jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk)(首先必须将所有文件放在一个文件夹中),或者使用keytool importkeypair生成证书以生成google_certificate.keystore,然后
  • keytool importkeypair下载和解释链接:

  • 完成这些步骤后,将已签名的系统应用程序安装到设备上。祝你好运
    如果您正在创建自己的固件,则只能使用系统签名密钥对应用程序进行签名。我想先试用Android Emulator。我可以用
    choosecombo
    命令选择
    debug
    选项编译Android Emulator,然后尝试安装我自己的应用程序吗?请看这里的答案:太好了!非常感谢,Mich!要构建要添加到固件的系统应用程序,是否需要导出APK?我已经设法获得了Google的证书/密钥库,并且我能够在模拟器中以系统应用程序的形式运行该应用程序,但现在我需要将该应用程序交给固件工程师,我不知道如何构建它。我想知道/bin中的.apk是否可以工作,因为它已使用Google_证书签名。密钥链接已失效,有人有缓存副本吗?这就是为什么你应该给出一个全面的答案,而不是一个链接。`/build/target/product/security`我不知道从哪里可以找到这个。。有什么帮助吗?:)虽然此解决方案解决了您的问题,并多次解决了我的问题(由于调试密钥库过期的问题),但这是指另一个问题。是否可以将此应用程序放在Google Store中?下面的评论中是否有答案?。。我还想知道是否有可能在商店中发布一个具有系统访问权限的应用程序,可能不是为了公共用途,但至少是为了企业内部的私人用途。