Почему программа в / system / app не получает доступ суперпользователя?

Мы создаем приложение для Android, для которого требуются привилегии суперпользователя. Установлены файлы SuperUser.apk и su. Однако, похоже, есть разница между установкой нашего приложения в / data / app и / system / app. Если мы установим в / data / app, все вроде работает нормально. Если мы устанавливаем в / system / app, SuperUser.apk не всплывает для предоставления привилегий.

Существуют ли определенные типы программ, которые необходимо устанавливать в одном месте, а не в другом?

TIA


person acurtis    schedule 08.12.2011    source источник


Ответы (1)


Файлы APK в папке / system / app уже имеют разрешения на уровне системы, поэтому им не требуется SuperUser, поэтому я предполагаю, что он не появляется.

Вы должны подтвердить, что ваше приложение уже имеет запрошенное вами разрешение. Например, AlarmManager.setTime требует signatureOrSystem разрешение android.permission.SET_TIME и вызовет исключение, если его нет. Вы также можете явно проверить с помощью PackageManager.checkPermission.

Если это не сработает, проверьте атрибуты файла APK. Если они не соответствуют другим APK в системной папке, Android может их проигнорировать. Исправить можно так:

chmod 644 <filename>
person Rupert Rawnsley    schedule 15.04.2012
comment
Это должно быть chmod, а не CHMOD? - person Keith Thompson; 15.04.2012
comment
@KeithThompson Вы, конечно, правы - я отредактировал ответ. - person Rupert Rawnsley; 16.04.2012