Я прочитал несколько статей о «модели безопасности Android» ( 1 , 2 , 3 и более). Я понимаю теоретическую модель MAC разрешений и большую часть того, что имеет отношение к разработке приложений. Но, похоже, очень мало документации о подробностях низкого уровня:
- Как на самом деле применяются разрешения на системном уровне. То есть, используя JNI, что помешает мне получить прямой доступ к оборудованию, такому как GPS? (Я понимаю, что может быть запасной вариант документации Linux, не связанной с Android, отвечающей на это, или даже более общего и классического решения ОС для этой проблемы).
- Что на самом деле происходит со стеком выполнения и какие функции вызываются при использовании Android ICC.
Кто-нибудь может отослать меня к объяснению и / или соответствующим фрагментам кода от Android?
// EDIT:
Чтобы прояснить ситуацию (поскольку кажется, что комментаторы были сбиты с толку), вопрос в названии разделен здесь на два отдельных (совершенно разных) вопроса.
Первый ответ здесь действительно отвечает на первый вопрос, касающийся механизмов низкого уровня, которые существуют в процессоре ARM (спасибо).
Второй вопрос, касающийся вызовов процедур ICC, остается без ответа ...