Android如何强制执行权限?

我已阅读了几篇关于“Android安全模型”( 1,2,3和更多)的文章。 我理解权限的理论MAC模型,以及与应用程序开发有关的大部分。 但是关于广泛的底层细节,似乎很less有文档:

  1. 如何在系统级实际执行权限。 也就是说,使用JNI,什么会阻止我直接访问硬件,如GPS? (我意识到可能有一个Linux文档的退步,与Android无关,回答这个问题,或者更为一般和经典的操作系统解决scheme来解决这个问题)。
  2. 在执行堆栈上实际发生了什么,以及在使用Android ICC时调用了哪些函数。

任何人都可以引用我的解释和/或从Android的相关代码段?

//编辑:为了澄清事情(因为看起来评论者感到困惑),标题中的问题在两个不同的(完全不同的)问题中被分割。 这里的第一个答案确实回答了关于ARM处理器中存在的低级机制的第一个问题(谢谢)。 关于国际商会程序要求的第二个问题仍然没有答案…

Solutions Collecting From Web of "Android如何强制执行权限?"

最后,处理器本身允许操作系统设置内核/特权/管理员模式与用户/非特权执行模式。 在没有升级到特权模式的情况下,您不能启用/禁用/配置中断,访问某些外设,和/或违反内存边界(取决于架构)。 例如,请参阅ARM A8处理器的文档 。

如果你想要更高的权限,你唯一可以做的就是用SWI指令触发一个系统调用中断,把系统调用处理程序的一个数字传给它,告诉你你想做什么。 由处理者决定是否可以直接访问硬件。

这是什么阻止你直接访问GPS到底。 我不能帮助你的东西的软件方面。