Как скомпилировать Android-приложение с системными правами

Мне нужно скомпилировать приложение с системными правами для использования целевого приложения com.android.settings. Пока я пытаюсь запустить apk, я получаю сообщение об ошибке

Не удалось выполнить тестовый прогон: Отказ от прав: пусковая аппаратура ComponentInfo {com.jayway.test/android.test.InstrumentationTestRunner} от pid = 354, uid = 354 не разрешено потому что пакет com.jayway.test делает не имеют подписи, соответствующей target com.android.settings

Как я могу скомпилировать мое приложение с системными правами?

Ответ 1

После некоторого поиска я обнаружил, как подписать мое приложение с помощью системного (платформенного) ключа. Системные подписи находятся в каталоге <root-of-android-source-tree>/build/target/product/security. Вы можете использовать их для подписания приложения с системными привилегиями.

Ответ 2

  • Добавить в манифест андроида: sharedUserId = "android.uid.system"

  • Загрузить файлы сигнатур системы: platform.x509.pem platform.pk8

ссылка: 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, а затем

ссылка для загрузки и объяснения keytool-importkeypair:

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

  1. После этого выполните установку вашего подписанного системного приложения на ваше устройство. Удачи!!!

Ответ 3

Ансер для меня просто удалял файл debug.keystore. Место хранения по умолчанию для AVD находится в ~/.android/в OS X и Linux, в C:\Documents and Settings \.android\в Windows XP и в C:\Users \.android\в Windows Vista.

В Eclipse я "очистил" проект, удалил приложение и TestApp из эмулятора, и - voila все снова получилось отлично.