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