问题
I need to compile an application with system permissions in order to use target application com.android.settings. For now while I try to run my apk I get the error message
Test run failed: Permission Denial: starting instrumentation ComponentInfo{com.jayway.test/android.test.InstrumentationTestRunner} from pid=354, uid=354 not allowed because package com.jayway.test does not have a signature matching the target com.android.settings
How can I compile my application with system permissions?
回答1:
After having some search I found how to sign my application with system (platform) key.
System signatures are located in directory <root-of-android-source-tree>/build/target/product/security. You can use them to sign your application with system privileges.
回答2:
Add to manifest android:sharedUserId="android.uid.system"
Download System signatures files: platform.x509.pem platform.pk8
link: https://android.googlesource.com/platform/build/+/android-8.0.0_r17/target/product/security/
- Sign app through terminal (java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk) (first you must put all files to one folder), or make certificate with keytool-importkeypair to make google_certificate.keystore and then
link for keytool-importkeypair download and explanation:
https://github.com/getfatday/keytool-importkeypair
- After that steps install your signed system app to your device. Good luck!!!
回答3:
The anser for me was simply delete the debug.keystore file. The default storage location for AVDs is in ~/.android/ on OS X and Linux, in C:\Documents and Settings\.android\ on Windows XP, and in C:\Users\.android\ on Windows Vista.
In Eclipse I "cleaned" the project, uninstalled the App and the TestApp from the emulator and - voila everything ran fine again.
来源:https://stackoverflow.com/questions/3598662/how-to-compile-android-application-with-system-permissions