Разрешения системы Android через root - PullRequest
6 голосов
/ 10 октября 2011
W/PackageManager(61): Not granting permission android.permission.SET_ACTIVITY_WATCHER to package 

Это один из таких примеров разрешения, которое не будет предоставлено приложениям без подписи с использованием подписи платформы. С учетом сказанного я хотел бы знать, каким образом любое приложение, работающее на рутированном устройстве (с / system / bin / su и SuperUser.apk), может получить любое из этих разрешений.

Process p = Runtime.getRuntime().exec("su");
p.waitFor();

В этом случае диалоговое окно суперпользователя будет выдано «принять» или «отклонить», но SecurityException с по-прежнему выбрасываются.

Ответы [ 2 ]

2 голосов
/ 10 октября 2011

Вы можете объявить, что ваше приложение запускается как системное приложение, установив sharedUserId следующим образом в AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="[your package name]"
        android:sharedUserId="android.uid.system">

Подробнее можно найти здесь: Как подписать приложение Androidсистемная подпись?

1 голос
/ 03 июля 2012

вам нужно скопировать ваш файл apk в '/ system / apps'. Это можно сделать программно. Вы можете сделать это, только если у вас есть права root. после копирования перезагрузите устройство (перезагрузка также может быть выполнена программно, если у вас есть root), и вам будут предоставлены все разрешения, указанные в файле манифеста. Вы также можете распространять это на рынке.

...