Answers:
如果我正确理解了您的问题,那么您正在询问如何在运行时自动获得root用户访问权限adb shell
,这样您就不必进入shell并键入su
以root用户身份在手机上执行命令的权限。
这由引导分区中的标志控制,默认情况下,大多数自定义ROM已对其进行了修改,以允许root权限。如果您$
在使用时跌落到a位置,adb shell
则有两个永久选项和一个临时选项(临时意味着重新启动后不会粘住):
adbd
以root权限重新启动设备2号实际上并不难,但是如果您不小心,它可能会有些危险。这里有一个Wiki文章,它解释了该过程,并包括几个Perl脚本来帮助您。这些说明假定使用Linux / Unix环境。我已经在Fedora Linux上亲自使用了这些说明,并且可以告诉您它们可以工作,但是我不知道其他* nix环境,例如Mac。我也不知道任何类似的Windows使用说明,但是如果您使用Windows,则可以尝试查找一些类似的信息。由于不同的设备使用不同的分区表,因此确切的命令因电话而异。
但是,一般来讲,您需要从手机中提取当前的boot.img,将其解压缩,提取虚拟磁盘,然后找到default.prop文件。这是一个纯文本文件,您需要在文本编辑器中打开该文件,然后找到包含value的行ro.secure
。如果该行显示,ro.secure=1
则需要将其更改为ro.secure=0
。之后,您可以重新打包ramdisk和boot.img,然后将其刷新到手机中。重新启动后,#
无论何时执行adb shell
而无需运行都会提示您su
。
另外,如果您使用的是自定义ROM,但没有进行此修改,则可以使用上述步骤解压缩ROM并修改其中包含的boot.img。然后,您可以使用新修改的boot.img压缩ROM,并照常刷新zip文件。
这可能不言而喻,但是在执行此操作时要小心。弄乱启动分区很容易使您的手机损坏,并迫使您通过HBoot恢复。我强烈建议测试Fastboot,以确保您可以使用扩展的Fastboot命令并执行恢复。具体取决于您的型号,但是大多数手机都有某种桌面软件,也可以运行该软件来刷新手机。
第三种选择是,在许多情况下,可以adbd
使用root特权在设备上重新启动。一种可能性是adb root
从PC终端执行,尽管这不适用于所有ROM配置(必须将ROM构建为“用户调试”配置)。您也可以尝试Chainfire的adbd不安全应用程序。这不会在重新启动后持续存在,因此您需要使用该应用程序,或者adb root
在每次重新启动手机时再次使用。
adbd
默认情况下只允许在手机上具有root权限。有一个来自Android团队成员的帖子暗示了这一点,但没有明确说明。对AOSP的提交也意味着它只是一个adbd
检查启动的标志(我在源代码的其他地方看不到)。正如我所提到的,我见过的大多数自定义光盘的(包括CM)已经将其设置为0
adb root
以自动su模式重启adbd 的命令,显然它依赖于此。但是,我确实认为您只是一个标志是正确的。
// ... except we allow running as root in userdebug builds if the service.adb.root property has been set by the "adb root" command"
。顺便说一下,这就是Kindle Fire的BurritoRoot的第一个版本IIRC的工作方式。
好吧,如果您的手机已扎根,则可以使用“ su -c”命令运行命令。
这是build.prop文件上的cat命令示例,用于获取电话产品信息。
adb shell "su -c 'cat /system/build.prop |grep "product"'"
这会调用root权限并在''中运行命令
请注意5个结束引号,这是关闭所有结束引号所必需的,否则会出现错误。
为了澄清起见,格式如下。
adb shell "su -c '[your command goes here]'"
确保以与在shell中运行该命令时完全相同的方式完全输入该命令。
试试看,希望对您有所帮助。
只需安装adbd Insecure即可。
您想以root用户身份运行什么?您是说要使用root用户运行ADB Shell,但又不想使用ADB Shell?你能澄清一下吗?
如果应用程序请求root访问,则手机上的SuperUser应用程序应处理是否授予其权限。手机植根的过程应该包括一个SuperUser应用程序。
adb shell ps
或adb shell
然后ps
获取正在运行的进程列表。所以有些东西需要root访问,我希望能够做到前者。
您也可以在“ sh”上设置suid位。我正在使用BusyBox,因此说明可能与您的设置不符:
你应该有根提示