2012-03-16 4 views
6

Я реализую демонстрационную версию демонстрационного удаления приложения с устройства.Как предоставить системные разрешения для моего приложения для Android?

В оболочке adb я могу использовать pm uninstall packagename для выполнения задачи, но когда я написал код, у меня было определенное разрешение отклонено.

Я искал время для поиска в Интернете и обнаружил, что для получения разрешения DELETE_PACKAGES мне нужно подписать мое приложение с тем же сертификатом, что и система.

Итак, может ли кто-нибудь дать мне несколько советов о том, как это сделать? Или, все-таки я могу сделать, чтобы мое приложение работало как системный сервис?

ответ

2

Далеко лучше, чем тихая деинсталляция каким-то образом удаляет приложение. Есть несколько способов, чтобы это можно было сделать, но в основном отслеживать первый день, когда они его использовали, и сделать программу неработоспособной. В качестве альтернативы, он может быть настроен для работы до определенного дня, после чего он больше не будет работать. This question отвечает, как это сделать.

+1

ну, «босс» сказал мне сделать это исследование, так что, на самом деле, у меня нет другого выбора здесь ... –

1

Если ваше приложение не находится в «/ system/app», разрешение «DELETE_PACKAGES» не будет работать. Составьте свое приложение с исходным кодом или попробуйте «root»;)

+0

привет клевер, я решил скомпилировать свое приложение с исходным кодом, и я получил эту ошибку: java.security.cert.CertificateParsingException: подписанные поля недействительны, что здесь не так? –

+0

Я добавил эту строку в свой файл Android.mk, LOCAL_CERTIFICATE: = platform; и использовали mmm packages/app/test/для создания этого приложения. –

+0

Было ли ваше приложение задействовано в действии сертификата? Вы знаете, что я никогда не видел этого исключения раньше. Или измените платформу на общий доступ и попытайтесь «сделать» исходный код. – Clover

4

Вы не можете сделать это, если только не создаете свою собственную прошивку (ПЗУ). Если вы, просто возьмите ключ, который подписывает ПЗУ и подписывает с ним apk. Если у вас есть встроенный телефон, вы также можете скопировать apk в /system/app, чтобы получить разрешение.

+0

спасибо, но я не создаю свою собственную прошивку. могу ли я создать приложение с исходным кодом? –

+1

Вы могли бы, но если ПЗУ на устройстве не подписано с одним и тем же ключом, это не сработает. Если вы используете запасную прошивку (от перевозчика и т. Д.), Единственный способ - это запустить телефон и скопировать его '/ system/app'. Или вы могли бы попросить их (красиво!) Подписать его для вас :) –

+0

хорошо, скопируйте его в/system/app, как хороший выбор, спасибо! –

-3

У меня есть опыт о том, как получить разрешение на один приложение для чтения закладки браузера

  1. Открыть AndroidManifest.xml этого приложения, которые вы хотите добавить разрешения на него.

2.Somewhere между

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
</manifest> 

добавить этот код

<uses-permission android:name="..." /> 

3.for Наполните ... иди here Например, следующий код позволит приложение, чтобы получить закладку История

+0

Этот вопрос выглядит как предоставление ограниченных системных разрешений, а не обычных общедоступных разрешений. – Sam

Смежные вопросы