Android 应用的权限控制适用于 App 内部的 .so 文件吗?

2022-06-30 20:28:01 +08:00
 feng32

不太了解这一块

我理解 .so 文件应该是直接调用 Linux 系统 API 了,和 App 不在一个层面

但是如果 .so 可以做 (root 权限之外的) 所有事情,那么 Android 的权限控制不是形同虚设了吗?

如果并非如此,难道有一个 "Android 权限" 到 "Linux 系统 API" 的映射表这样一个存在吗?

4444 次点击
所在节点    Android
5 条回复
ysc3839
2022-06-30 21:12:23 +08:00
适用,不同 app 对应不同的 Linux user id ,可以通过 user id 区分是否授权
codehz
2022-06-30 21:32:05 +08:00
大部分权限是在 IPC 的时候由服务端检查调用者的 uid 来实现控制的,这部分权限 native 层无法自行实现(要实现也是自己造 binder 发请求,但内核保证了你没法伪造 uid ,所以也绕不过)
网络权限是通过类似 iptables 的机制限制
文件权限现在是用的挂载命名空间实现,没有全部文件访问权限的话 /sdcard 就干脆没给挂,内部 /data 则是由目录权限(你只有自己 data 目录的读写权限)和 selinux 共同限制,常规文件访问用 SAF 框架的话也是走 IPC
404neko
2022-06-30 21:38:01 +08:00
12101111
2022-06-30 21:39:43 +08:00
你可以装一个 Termux, 不给任何权限, 看看里面的 native 代码有什么权限.

Android 本身的功能, 比如定位、电话无论如何都必须要靠 Java 才能访问的就更不用说了
nicocho
2022-06-30 21:44:41 +08:00
菜鸡最近在学着写相关的,发现有 Selinux 这个概念,好像就是收敛权限

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/863295

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX