Собственные разрешения и уровень защиты Android

Я знаю, как разрешения работают на уровне Android SDK, но как именно они работают в нативном коде? Когда системный вызов выполняется в собственном коде, что определяет, разрешен ли вызов socket(), fopen(), ioctl() и т. д.?

Я прочитал эти вопросы:

безопасность собственного кода Android

Как обеспечивается разрешение Android?

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


person Android QS    schedule 22.01.2013    source источник


Ответы (1)


но как именно это работает в нативном коде?

Так же, как и везде. Разрешения определяются для процесса. В случае вещей, к которым нативный код может обращаться напрямую, нативный код, с которым вы взаимодействуете, проверяет разрешения.

Но на первый на самом деле не ответили

Да, это так. Найдите зеленую галочку.

во втором ссылка в ответе не работает

Да, это ссылка на сайт, который больше не работает (плюс файл был переименован). Это должен быть файл, на который ссылается fadden, отраженный на Гитхаб.

person CommonsWare    schedule 22.01.2013
comment
Итак, если мое приложение использует android.permission.INTERNET, процессу назначается соответствующий идентификатор группы для предоставления этого разрешения? - person Android QS; 23.01.2013
comment
Есть ли какая-либо документация для сопоставления вызовов системы/библиотеки с их необходимыми разрешениями Android? - person Android QS; 23.01.2013
comment
@AndroidQS: я ничего не знаю, хотя не так уж много того, что должно иметь значение. INTERNET, READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE определенно имеют значение. Но многое относится только к вещам, для которых код NDK должен пройти через SDK (например, READ_CONTACTS). - person CommonsWare; 23.01.2013
comment
Файл $ANDROID_SOURCE/frameworks/base/data/etc/platform.xml содержит список разрешений, реализованных в виде групп. - person G. Blake Meike; 23.01.2013