不太了解这一块
我理解 .so 文件应该是直接调用 Linux 系统 API 了,和 App 不在一个层面
但是如果 .so 可以做 (root 权限之外的) 所有事情,那么 Android 的权限控制不是形同虚设了吗?
如果并非如此,难道有一个 "Android 权限" 到 "Linux 系统 API" 的映射表这样一个存在吗?
|  |      1ysc3839      2022-06-30 21:12:23 +08:00 via Android 适用,不同 app 对应不同的 Linux user id ,可以通过 user id 区分是否授权 | 
|  |      2codehz      2022-06-30 21:32:05 +08:00 via iPhone  3 大部分权限是在 IPC 的时候由服务端检查调用者的 uid 来实现控制的,这部分权限 native 层无法自行实现(要实现也是自己造 binder 发请求,但内核保证了你没法伪造 uid ,所以也绕不过) 网络权限是通过类似 iptables 的机制限制 文件权限现在是用的挂载命名空间实现,没有全部文件访问权限的话 /sdcard 就干脆没给挂,内部 /data 则是由目录权限(你只有自己 data 目录的读写权限)和 selinux 共同限制,常规文件访问用 SAF 框架的话也是走 IPC | 
|  |      3404neko      2022-06-30 21:38:01 +08:00 | 
|  |      412101111      2022-06-30 21:39:43 +08:00 你可以装一个 Termux, 不给任何权限, 看看里面的 native 代码有什么权限. Android 本身的功能, 比如定位、电话无论如何都必须要靠 Java 才能访问的就更不用说了 | 
|  |      5nicocho      2022-06-30 21:44:41 +08:00 菜鸡最近在学着写相关的,发现有 Selinux 这个概念,好像就是收敛权限 |