欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Android有的命令不需要root权限,有的命令需要root权限是如何实现的

Android有的命令不需要root权限,有的命令需要root权限是如何实现的

2025/6/14 6:04:54 来源:https://blog.csdn.net/luoqingyan/article/details/148553349  浏览:    关键词:Android有的命令不需要root权限,有的命令需要root权限是如何实现的

Android有的命令不需要root权限,有的命令需要root权限是如何实现的

例如:ls命令非root下,可以正常执行,而btconfig命令非root下不能被看到,所以不能被执行,需要root才可以。# setenforce 0  // 临时关闭selinux 能看到btconfig
# setenforce 1  // 打开selinux1, ls命令非root下,可以正常执行
kalama:/system/bin # ls -l ls
lrwxr-xr-x 1 root shell 6 2009-01-01 00:00 ls -> toybox
kalama:/system/bin # ls -lZ ls                                                                                                
lrwxr-xr-x 1 root shell u:object_r:system_file:s0  6 2009-01-01 00:00 ls -> toybox
kalama:/system/bin # ls -lZ /system/bin/toybox  // 查看toybox的selinux的上下文
-rwxr-xr-x 1 root shell u:object_r:toolbox_exec:s0  510384 2009-01-01 00:00 toybox2, ls命令非root下,可以正常执行,原因是配置了如下selinux权限
在源代码的system/sepolicy,执行grep -r "toolbox_exec" 搜索
private/shell.te:allow shell toolbox_exec:file rx_file_perms;3, btconfig命名非root下不能正常执行,需要root才可以
127|kalama:/ $ btconfig
/system/bin/sh: btconfig: inaccessible or not found127|kalama:/ $ su
1|kalama:/system/bin # which btconfig                                                                                         
/vendor/bin/btconfig
kalama:/system/bin # ls -lZ /vendor/bin/btconfig
-rwxr-xr-x 1 root shell u:object_r:vendor_file:s0  123496 2009-01-01 00:00 /vendor/bin/btconfig4, 修改btconfig上下文为toolbox_exec,使其能在普通用户下能看到。
adb root && adb remount
# chcon u:object_r:toolbox_exec:s0 /vendor/bin/btconfig
adb reboot重启后,在非root命令下,可以看到和使用该命令了5, 查看selinux上下文是toolbox_exec的命令
kalama:/system/bin # ls -lZ | grep toolbox_exec                                                                               
-rwxr-xr-x 1 root shell u:object_r:toolbox_exec:s0                    33680 2009-01-01 00:00 mini-keyctl
-rwxr-xr-x 1 root shell u:object_r:toolbox_exec:s0                   126560 2009-01-01 00:00 toolbox
-rwxr-xr-x 1 root shell u:object_r:toolbox_exec:s0                   510384 2009-01-01 00:00 toybox6, 修改selinux权限和linux用户文件权限常用命令
chmod 666 /dev/hraw0
chown system ...
chgrp system ...
$ su 切换到root权限,即切换到root用户下
adb root && adb remount
adb unroot
修改selinux上下文命令:chcon restorecon
修改linux用户权限命令:chmod chown chgrp总结:
如果在root权限下,某命令可以正常执行,
而非root权限下,某命令能看到但执行失败或者某命令看不到,所以执行不了。
原因是:selinux权限和linux用户权限配置导致的。
如果想要把自己添加的命令暴露给App使用,只需要配置相应的selinux权限和linux文件权限即可。
执行su命令切换到root权限,本质上是切换到root用户。
非root权限下,即是普通用户。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词