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

能不能给某个 App 最高 root 权限,而系统又不完全放开 root 权限

  •  
  •   albert0yyyy · 2022-08-17 17:44:37 +08:00 · 5620 次点击
    这是一个创建于 589 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有学过一点 Android ,但不是非常了解。

    我大概了解到,基于系统签名的 app ,是具有系统级别的高级权限,而且我们也能控制 Android 的源代码,我觉得没必要刷上了原生系统,还得获取一遍 root 权限。

    另外,我想解决的问题的:我又想用 root 权限的功能,又不想直接全局给了 root 权限,比如目前像很多大公司的 app 会检测系统是否获取 root 权限,真的没法躲了。另外系统有了 root 权限,确实也不安全。

    简单来讲,举个例子:

    比如 magisk 能提供系统某个周期事件的钩子,如果说我直接给 magisk 这个 App root 权限,而系统本身没开放 root 权限。

    也或许,我说的这个东西,已经有了。

    第 1 条附言  ·  2022-08-18 10:20:54 +08:00

    前提:系统不取得root权限,大白话就是不root。

    但是需要root权限的应用又有root权限。

    再换句话来说,纯大白话,其实我有一个思路,就是:Android源代码我已经能控制了,就是自己编译。给需要root权限的应用系统签名,让他具备系统级别的权限,比如xposed。这样烧录/刷到手机上,系统还是处于没有root的状态,但是xposed有了最高权限。

    当然这是我的一个初步思路,欢迎讨论和分享。

    此外:隐藏root我觉得不是我的思路

    6楼Darkatse 讲的:shizuku

    是我想要的一种实现,不知道给的权限够不够。

    8楼totoro625 讲的:盲猜你的某个 App 需要 root 权限,但是系统本身不 root ,那么用这个自带 ROOT 环境的平行空间试试 https://www.vmos.cn

    意思是对了,方案确实能用

    18 条回复    2022-08-18 20:01:44 +08:00
    liuzhedash
        1
    liuzhedash  
       2022-08-17 18:16:11 +08:00
    我记得早年的 Andorid 系统是没有 su 这个可执行文件的,相应的 root 方法就是通过漏洞装一个自己编译的 su ,这个 su 可以访问一个有 root 权限的应用列表,决定是否让当前应用进程切 root ,所以其实不存在全局给 root 这种情况,除非 root 管理器故意这么做。
    从这个角度上讲,任意应用都可以通过试图执行 su 来知道手机是否已经被 root ,而无法做到已经 root ,但是让某个应用无法知道的效果。
    这两年的 root 原理和 magisk 不太了解,可能说的不正确,仅供参考。
    yukiww233
        2
    yukiww233  
       2022-08-17 18:22:12 +08:00
    “比如 magisk 能提供系统某个周期事件的钩子,如果说我直接给 magisk 这个 App root 权限,而系统本身没开放 root 权限。” -> 目前的 Magisk 和早期的 SuperSU/SuperUser 不就是用来做权限管理的事情么?
    AoEiuV020CN
        3
    AoEiuV020CN  
       2022-08-17 18:43:57 +08:00 via Android
    magisk hide zygisk 之类想做的就是这个,但这种问题一向是道高一尺魔高一丈,都在发展的,

    至于定制系统,理论上可以比 magisk hide 之类的靠谱,
    记得官方模拟器有些镜像就是利用挂载空间隔离,只有 shell 进程能看到 su 使用 root 权限,普通 app 看不到就以为没有 root ,
    但是泛用性太差,没人会针对这么小部分用户费那么大劲去定制系统,
    albert0yyyy
        4
    albert0yyyy  
    OP
       2022-08-17 19:09:00 +08:00
    @yukiww233 不是做权限管理,其实就是不想将 root 放开,直白点就是 大公司的 app 检测不出系统获取了 root 权限,而实际上确实也没有获取 root 权限,而 xposed 这类我们想给 root 权限 app 又有 root 权限。
    albert0yyyy
        5
    albert0yyyy  
    OP
       2022-08-17 19:35:39 +08:00
    @AoEiuV020CN 确实开发成本高,我想是不是我改改一些开源的模块,比如 xposed ,将他的逻辑改了,不用请求 root 权限了,我这边直接给他用系统签名,继续执行下去就可以了。
    Darkatse
        6
    Darkatse  
       2022-08-17 21:05:25 +08:00
    试试 shizuku ?或者 magisk+shamiko
    r6cb
        7
    r6cb  
       2022-08-17 21:59:19 +08:00
    root 是针对文件系统来说的啊? Linux 万物皆文件。你想读写 root 用户才能读写的文件,如果不需要是 root 用户都可以读写。那文件系统的权限管理不就乱套了?
    totoro625
        8
    totoro625  
       2022-08-17 22:15:38 +08:00
    盲猜你的某个 App 需要 root 权限,但是系统本身不 root ,那么用这个自带 ROOT 环境的平行空间试试
    https://www.vmos.cn
    mxalbert1996
        9
    mxalbert1996  
       2022-08-17 22:51:20 +08:00 via Android
    确实有,Magisk Lite
    Zy143L
        10
    Zy143L  
       2022-08-18 03:06:28 +08:00 via Android
    你需要 magisk(zygisk)+shamiko(白名单)
    ysc3839
        11
    ysc3839  
       2022-08-18 07:44:57 +08:00 via Android
    怀疑是 X-Y Problem https://coolshell.cn/articles/10804.html
    建议直接说原始需求
    skys215
        12
    skys215  
       2022-08-18 08:51:21 +08:00
    我只知道黑域 app 可以在系统 root 后限定某些 app 不 root 的样子,好久没用忘记了
    yangzzzzzz
        13
    yangzzzzzz  
       2022-08-18 10:02:18 +08:00
    以前的 su 不就是吗,应用需要提示授权点击了才能拿 root
    albert0yyyy
        14
    albert0yyyy  
    OP
       2022-08-18 10:07:44 +08:00
    @ysc3839

    没啥需求,就是折腾 Android 觉得既然有了控制源代码的能力,再获取一遍 root 权限,极其不优雅且麻烦,蹩脚。

    再加上其他因素,比如 root 权限放开确实不安全,大公司老是检测
    ysc3839
        15
    ysc3839  
       2022-08-18 10:13:24 +08:00 via Android
    @albert0yyyy 如果只是想了解正常的做法,那应该是做成系统服务,通过服务相关的 API 去调用,具体情况我也不太了解,可以搜索看看。
    albert0yyyy
        16
    albert0yyyy  
    OP
       2022-08-18 10:23:30 +08:00
    @ysc3839 对,我有一个思路确实是想做成系统服务。
    qwq11
        17
    qwq11  
       2022-08-18 16:31:10 +08:00 via Android
    想让某些 app 有权限,但是又不想另一些 app 检测到,在逻辑上是行不通的,因为既然要提供权限,就得暴露接口,暴露接口就不可避免的能被检测到。除非是一些特定的 App 才能访问这个接口,这也是很多第三方 App 隐藏 Magisk 的原理。说白了,你可能是想要一个刷上就带 root 的系统,也有人做,叫 MIUI 开发版
    acess
        18
    acess  
       2022-08-18 20:01:44 +08:00
    原来楼主想要的是虚拟机……
    不过一直不太明白安卓虚拟机的原理,好像有些是类似 fakeroot 那种,也有类似 gvisor 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3100 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:34 · PVG 22:34 · LAX 07:34 · JFK 10:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.