SherlockChiang / Nethunter_for_KernelSU

Nethunter for KernelSU
GNU Affero General Public License v3.0
11 stars 1 forks source link

No such file or directory #1

Open LIghtJUNction opened 2 months ago

LIghtJUNction commented 2 months ago

/system/bin/su: No such file or directory

SherlockChiang commented 2 months ago

Known issue:

cant automatically uninstall apks when uninstall from kernelSU manager throws error such as cant find /system/bin/su

已经添加到已知问题中,好像是kernelSU为nethunter的root授权问题,正在改...

SherlockChiang commented 2 months ago

Known issue:

cant automatically uninstall apks when uninstall from kernelSU manager throws error such as cant find /system/bin/su

已经添加到已知问题中,好像是kernelSU为nethunter的root授权问题,正在改...

在kernelsu中有人报告过这个issue:https://github.com/tiann/KernelSU/issues/1813 根据@kongle233的说法:内核ksu版本大于等于0.9.4就会出现这个问题,目前尚未解决,似乎nethunter终端不太认ksu

shandongtlb commented 2 months ago

是啊,是我提的这个问题,magisk和apatch都可以,只有ksu不行

LIghtJUNction commented 2 months ago

KernelSU 的一个细节:它实际上没有在 /system/bin 放置 su 文件,而是在内核中通过 hook execve(2) 系统调用来重定向到内核实现。所以不希望 termux-exec 干扰这种行为。

LIghtJUNction commented 2 months ago

execve(2) 系统调用:这是 Linux 系统中的一个系统调用,用于执行一个新的程序。在进程执行这个调用时,内核会加载并运行指定的二进制文件。

KernelSU 的实现:KernelSU 修改了内核,使得当任何进程尝试执行 /system/bin/su 时,不会实际寻找这个文件,而是拦截这个调用并执行 KernelSU 的自定义实现。这意味着,系统中实际并没有 /system/bin/su 文件存在。

hook execve(2) 调用的作用:通过这种方式,KernelSU 可以控制权限提升的过程,确保只有特定的操作能够获得 root 权限。这种方法比传统的 su 二进制文件更灵活和安全,因为它减少了直接暴露 su 二进制文件的风险。

shandongtlb commented 2 months ago

execve(2) 系统调用:这是 Linux 系统中的一个系统调用,用于执行一个新的程序。在进程执行这个调用时,内核会加载并运行指定的二进制文件。

KernelSU 的实现:KernelSU 修改了内核,使得当任何进程尝试执行 /system/bin/su 时,不会实际寻找这个文件,而是拦截这个调用并执行 KernelSU 的自定义实现。这意味着,系统中实际并没有 /system/bin/su 文件存在。

hook execve(2) 调用的作用:通过这种方式,KernelSU 可以控制权限提升的过程,确保只有特定的操作能够获得 root 权限。这种方法比传统的 su 二进制文件更灵活和安全,因为它减少了直接暴露 su 二进制文件的风险。

换老版nethunter终端app即可解决