Android: добавьте приложение в прошивку, используйте WRITE_SECURE_SETTINGS - PullRequest
3 голосов
/ 03 сентября 2010

Я пытаюсь написать приложение, которое может включать и отключать мобильное подключение для передачи данных. Я уже получил исходный код и создал свой собственный SDK, где я удалил операторы @hide, чтобы я мог использовать соответствующую функцию

cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
cm.setMobileDataEnabled(true);

Также выяснил, какие разрешения мне нужны, в частности WRITE_SECURE_SETTINGS, которые доступны только для системных приложений. Я прочитал комментарий Адамка и теперь мне нужно знать, как сделать то, что он предложил (добавить приложение в систему или подписать его с помощью ключа платформы).

Сначала я хотел бы сделать это только на эмуляторе, а затем на своем телефоне (который укоренен и использует собственное ПЗУ). Я попытался отправить его в системный каталог на эмуляторе:

adb remount
adb push app.apk /system/app/
adb sync

, который не работал, приложение не было найдено и установлено.

Что я забыл? Как правильно это сделать?

1 Ответ

3 голосов
/ 11 сентября 2010

Итак, я наконец-то нашел проблему и решил ее.Я был на самом деле довольно близко:

adb remount
adb push app.apk /system/app/

Это правильный способ сделать это на эмуляторе (синхронизация adb не требуется).Я посмотрел logcat и обнаружил, что вам нужно подписать свой файл .apk , чтобы система не отклоняла его, даже если это не добавляет никакой валидности в этом случае.Если вы отправите подписанный файл .apk таким образом, он получит необходимые разрешения и будет работать, как и ожидалось, - в моем случае, включив и отключив мобильное соединение для передачи данных.Для части телефона (с помощью ClockworkMod): загрузитесь в режиме восстановления, смонтируйте папку / system и включите USB-накопитель.Затем действуйте так же, как с эмулятором, перезагрузите телефон, и все готово.Надеюсь, что это помогает кому-то, кто сталкивается с той же проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...