tiann / KernelSU

A Kernel based root solution for Android
https://kernelsu.org
GNU General Public License v3.0
9.98k stars 1.62k forks source link

Vivo手机因未知安全策略导致的无法正常启动ksud和su #1289

Open Bot-wxt1221 opened 9 months ago

Bot-wxt1221 commented 9 months ago

Please check before submitting an issue

Describe the bug

init: Command 'exec u:r:su:s0 root -- /data/adb/ksud boot-completed' action=sys.boot_completed=1 (/system/etc/init/atrace.rc:13) took 0ms and failed: Could not start exec service: Cannot find '/data/adb/ksud': Permission denied

关键日志,管理器提取的日志大小全为0,su正常,模块提示不支持OverLayFS,5.10.149-gki iqoo9 originos3 ,adb中把dmesg提出来了。

dmesg.txt

https://github.com/wxt1221/KernelSU/issues/9

记录了排错过程。

To Reproduce

我刷入ksu的img后会卡开机,刷入ak3后su正常使用

Expected behavior

正常使用模块功能,init能启动ksud

Screenshots

No response

Logs

如上

Device info

如上

Additional context

SELinux的锅大概是

Bot-wxt1221 commented 9 months ago

估计其他阶段的ksud也无法正常启动只是因为日志缓冲区没完全打出来,不过看这个也能看

ItosEO commented 9 months ago

su不正常使用,超级用户列表无法加载(一直转圈)

tiann commented 9 months ago

/data/system/packages.txt 提供一下

Bot-wxt1221 commented 9 months ago

@ItosEO

tiann commented 9 months ago

可以把 SELinux 关了看下是否正常

Bot-wxt1221 commented 9 months ago

关过了,就是关了模块就好了,但是应用列表不正常

Bot-wxt1221 commented 9 months ago

所以我才说是SELinux的问题

tiann commented 9 months ago

chcon u:object_r:system_file:s0 /data/adb/ksud 然后重启看下

Bot-wxt1221 commented 9 months ago

@ItosEO 这个人的手机,你看它在不在

Bot-wxt1221 commented 9 months ago

chcon u:object_r:system_file:s0 /data/adb/ksud 然后重启看下

但是是init爆的权限的问题啊

tiann commented 9 months ago

用这个 https://github.com/tiann/KernelSU/commit/e934bfb64850ef1584d7920eab3dbf53507b3bd8 再试一下

ItosEO commented 9 months ago

您好,我在学校,但是我找到一个可以参与测试的人,我让他试试 我看到action还在build,稍后我会让他测试

ItosEO commented 8 months ago

设备状态:已安装ksu-0.7.5(ak3刷入,和magisk共存) /data/system/没有找的package.txt,所以我把package开头的文件都打包了 package.zip

ItosEO commented 8 months ago

chcon u:object_r:system_file:s0 /data/adb/ksud 然后重启看下

提示找不到文件 /data/adb/ksud @tiann @wxt1221

ItosEO commented 8 months ago

今天我会让他尝试使用https://github.com/tiann/KernelSU/commit/e934bfb64850ef1584d7920eab3dbf53507b3bd8

ItosEO commented 8 months ago

用这个 e934bfb 再试一下

已尝试,没有任何变化,仍然提示找不到ksud 6c30f6c9498f5b4497d92b8d3593e0c5_720

tiann commented 8 months ago

用这个 e934bfb 再试一下

已尝试,没有任何变化,仍然提示找不到ksud 6c30f6c9498f5b4497d92b8d3593e0c5_720

再发一份 dmesg 看看;另外,你可能需要在 adb shell 里操作

ItosEO commented 8 months ago

测试人员现在没有电脑,我让他先抓demsg,然后等他有电脑了再尝试adb shell执行 chcon u:object_r:system_file:s0 /data/adb/ksud

ItosEO commented 8 months ago

离谱 db1926f37ba86f6c799b59c5a9d93b09_720 [ 23.608184] init: Command 'exec u:r:su:s0 root -- /data/adb/ksud boot-completed' action=sys .boot_completed=1 (/system/etc/init/atrace.rc:13) took 0ms and failed: Could not start exec service: Cannot find '/data/adb/ksud': No such file or directory dmes.log @tiann

Bot-wxt1221 commented 8 months ago

用magisk的root看看/data/adb里有什么东西 @ItosEO

ItosEO commented 8 months ago

c15e60121e3064b681a3eaa889c269ab_720 如图,我专门让他先还原了一下没刷ksu前的boot然后重刷ak3,依然是这样,管理器显示已安装ksu @tiann @wxt1221

tiann commented 8 months ago

管理器没有 root 权限,导致 ksud 释放失败;你用 adb shell 手动copy一个 ksud 放到 /data/adb 下看下。

ItosEO commented 8 months ago

管理器没有 root 权限,导致 ksud 释放失败;你用 adb shell 手动copy一个 ksud 放到 /data/adb 下看下。

我需要设置什么身份组以及文件权限,另外,我在哪里找ksud文件 是这里的第一个吗 image

Bot-wxt1221 commented 8 months ago

Y

Bot-wxt1221 commented 8 months ago

文件权限777,用户只有root才能放

ItosEO commented 8 months ago

chcon u:object_r:system_file:s0 /data/adb/ksud 然后重启看下

已尝试手动copy ksud,dmesg貌似没问题,但是ksu管理器仍提示不支持overlayfs,超级用户列表无法加载 也尝试了执行这行代码重启(未报错),没有任何变化 dmesg.log @tiann @wxt1221

tiann commented 8 months ago

chcon u:object_r:system_file:s0 /data/adb/ksud 然后重启看下

已尝试手动copy ksud,dmesg貌似没问题,但是ksu管理器仍提示不支持overlayfs,超级用户列表无法加载 也尝试了执行这行代码重启(未报错),没有任何变化 dmesg.log @tiann @wxt1221

打开管理器,然后再发一下 dmesg,看一下管理器启动的日志

ItosEO commented 8 months ago

chcon u:object_r:system_file:s0 /data/adb/ksud 然后重启看下

已尝试手动copy ksud,dmesg貌似没问题,但是ksu管理器仍提示不支持overlayfs,超级用户列表无法加载 也尝试了执行这行代码重启(未报错),没有任何变化 dmesg.log @tiann @wxt1221

打开管理器,然后再发一下 dmesg,看一下管理器启动的日志

dmesg.log 有些新东西 @tiann @wxt1221

tiann commented 8 months ago

用 adb shell 执行 chcon u:object_r:adb_data_file:s0 /data/adb/ksud 再打开管理器试下

ItosEO commented 8 months ago

ok,下午给您日志,这个手动copy进去的ksud我文件用户组设置的都是root-0,没错吧 @tiann @wxt1221

tiann commented 8 months ago

ok,下午给您日志,这个手动copy进去的ksud我文件用户组设置的都是root-0,没错吧 @tiann @wxt1221

没错,注意要设置 selinux 权限。

ItosEO commented 8 months ago

这是我的权限设置 MuMu12-20240116-204248 日志(跑了那个shell): dmesg.log ksu管理器没有任何变化

@tiann

tiann commented 8 months ago

ls -alZ /data/adb/ksud 看一下什么结果

ItosEO commented 8 months ago

W~OU{ERM}6ARN8R_K}PQB9A @tiann

tiann commented 8 months ago

dmesg.log

权限没有问题,打开管理器,然后上传一下 logcat 看看

ItosEO commented 8 months ago

logcat.log

请,日志 @tiann

tiann commented 8 months ago

看起来似乎是 app 无法提权到 root,被某种机制阻断了

ItosEO commented 8 months ago

看起来似乎是 app 无法提权到 root,被某种机制阻断了

唔,你有什么思路或猜测吗 @tiann @wxt1221

tiann commented 8 months ago

看起来似乎是 app 无法提权到 root,被某种机制阻断了

唔,你有什么思路或猜测吗 @tiann @wxt1221

如果你使用的是 GKI 镜像的话,可以尝试 lsmod 然后挨个 rmmod 看看是哪个内核模块的安全策略导致

ItosEO commented 8 months ago

我可以测试,可以详细说说怎么操作吗

ItosEO commented 8 months ago

rmmod是卸载内核模块吗

Bot-wxt1221 commented 8 months ago

对的

ItosEO commented 8 months ago

天哪,这是一个恐怖的工作量

ItosEO commented 8 months ago

而且有些内核模块应该不能卸载吧,可能出现设备异常

Bot-wxt1221 commented 8 months ago

不能开机就再打开

ItosEO commented 8 months ago

rm后直接打开ksu管理器查看是否可以获取超级用户吗

Bot-wxt1221 commented 8 months ago

18-Xtreme commented 8 months ago

同样的问题,iqoo9使用最新的通用内核无法获取su权限,应用列表一直在转圈圈,经过几轮测试,我发现一个严重的问题,在vivo/iqoo 上,内核或者某个进程会检测是否有程序提升到uid 0的权限,一旦出现就立刻killed了。可能需要额外打一个补丁去绕过这个检测?

Bot-wxt1221 commented 8 months ago

en...magisk是如何解决的呢 @18-Xtreme

18-Xtreme commented 8 months ago

@wxt1221 这个问题magisk似乎修复过,我昨天查看magisk的issues的时候看到了同样的问题 链接在这:https://github.com/topjohnwu/Magisk/issues/5148#issuecomment-1399483070