V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
feng32
V2EX  ›  Android

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

  •  
  •   feng32 · 2022-06-30 20:28:01 +08:00 · 8985 次点击
    这是一个创建于 906 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不太了解这一块

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

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

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

    5 条回复    2022-06-30 21:44:41 +08:00
    ysc3839
        1
    ysc3839  
       2022-06-30 21:12:23 +08:00 via Android
    适用,不同 app 对应不同的 Linux user id ,可以通过 user id 区分是否授权
    codehz
        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
    404neko
        3
    404neko  
       2022-06-30 21:38:01 +08:00
    12101111
        4
    12101111  
       2022-06-30 21:39:43 +08:00
    你可以装一个 Termux, 不给任何权限, 看看里面的 native 代码有什么权限.

    Android 本身的功能, 比如定位、电话无论如何都必须要靠 Java 才能访问的就更不用说了
    nicocho
        5
    nicocho  
       2022-06-30 21:44:41 +08:00
    菜鸡最近在学着写相关的,发现有 Selinux 这个概念,好像就是收敛权限
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3658 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:01 · PVG 13:01 · LAX 21:01 · JFK 00:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.