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

2022-08-17 17:44:37 +08:00
 albert0yyyy

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

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

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

简单来讲,举个例子:

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

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

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

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

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

再加上其他因素,比如 root 权限放开确实不安全,大公司老是检测
ysc3839
2022-08-18 10:13:24 +08:00
@albert0yyyy 如果只是想了解正常的做法,那应该是做成系统服务,通过服务相关的 API 去调用,具体情况我也不太了解,可以搜索看看。
albert0yyyy
2022-08-18 10:23:30 +08:00
@ysc3839 对,我有一个思路确实是想做成系统服务。
qwq11
2022-08-18 16:31:10 +08:00
想让某些 app 有权限,但是又不想另一些 app 检测到,在逻辑上是行不通的,因为既然要提供权限,就得暴露接口,暴露接口就不可避免的能被检测到。除非是一些特定的 App 才能访问这个接口,这也是很多第三方 App 隐藏 Magisk 的原理。说白了,你可能是想要一个刷上就带 root 的系统,也有人做,叫 MIUI 开发版
acess
2022-08-18 20:01:44 +08:00
原来楼主想要的是虚拟机……
不过一直不太明白安卓虚拟机的原理,好像有些是类似 fakeroot 那种,也有类似 gvisor 的

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

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

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

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

© 2021 V2EX