关于亚行的基本问题。
adb root
以root身份重新启动adb。但我想要的是在一段时间后重新启动它。
我尝试了以下内容:
adb kill-server
adb start-server
不起作用..
ps -A
- >注意到adb的进程号并将其杀死..即使这样也行不通。最后我正在重启我的设备。有什么方法可以从root adb返回到一般adb吗?
谢谢。
答案 0 :(得分:27)
adb kill-server
和adb start-server
仅控制PC端的adb
守护程序。在还原adbd
完成的service.adb.root
属性更改后,您需要在设备上重新启动adb root
守护程序:
~$ adb shell id
uid=2000(shell) gid=2000(shell)
~$ adb root
restarting adbd as root
~$ adb shell id
uid=0(root) gid=0(root)
~$ adb shell 'setprop service.adb.root 0; setprop ctl.restart adbd'
~$ adb shell id
uid=2000(shell) gid=2000(shell)
答案 1 :(得分:19)
我想有点晚了,但这里有: 如果您使用 - “adb root”,您将收到以下消息:
C:\>adb root
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting adbd as root
退出root模式,您可以使用:
C:\>adb unroot
restarting adbd as non root
答案 2 :(得分:11)
试试这个以确保你的shell回来了:
输入adb shell(root)。然后在comamnd下面键入。
stop adbd && setprop service.adb.root 0 && start adbd &
如果stop adbd
已成功setprop service.adb.root 0
,则此命令将adbd
,然后stop
,最后start adbd
属性.root
已成功设置为0.所有这些都将在后台完成,这要归功于最后&
。
答案 3 :(得分:2)
我想对@ user837048的答案添加一些解释。在我的OSX Yosemite和Galaxy S3上植根并使用固件CyanogenMod 11
和KitKat
我在Enable
和Disable
根提示下完成了以下操作。
请在下面确认
在您的系统上
Android SDK
,并且已设置二进制文件的路径。在shell上输入which adb
。它必须给你一些结果。
$ which adb
/Applications/Android Studio.app/sdk/platform-tools/adb
在您的手机上
ON
Apps and ADB
如果您的设置中未显示Developer Options
,请转到设置>关于手机。向下滚动到Build number
,然后点按那里7次。我知道它很疯狂。但请相信我的工作:D
通过USB连接线连接手机。
在computer's
终端上输入
$ adb shell
您会看到类似的提示,如果您的手机上显示任何提示,要信任该连接,请点按“始终信任”和“确定”
shell@m0:/ $
现在输入
shell@m0:/ $ id
uid=2000(shell) gid=2000(shell) groups=1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats) context=u:r:shell:s0
看到你是not root
现在退出shell,它将回退到computer's prompt
shell@m0:/ $ exit
现在激活root
$adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
root@m0:/ #
哇..你是根
root@m0:/ # id
uid=0(root) gid=0(root) context=u:r:shell:s0
我尝试了很多解决方案,回到normal non root prompt
。但除了@ user837048的解决方案之外没有用。
root@m0:/ # stop adbd && setprop service.adb.root 0 && start adbd &
[1] 32137
root@m0:/ #
$
这可能会使您从Adb prompt
退出到正常提示。现在再次连接。
$ adb shell
shell@m0:/ $
嗯..你是非根
答案 4 :(得分:0)
如需快速步骤,请查看摘要。如果有兴趣了解详情,请继续阅读以下内容。
adb是一个守护进程。做ps adb
我们可以看到它的过程。
shell@grouper:/ $ ps adb
USER PID PPID VSIZE RSS WCHAN PC NAME
shell 133 1 4636 212 ffffffff 00000000 S /sbin/adbd
我刚检查了当adb以root用户身份运行时它正在使用的其他属性变量。
adb用户模式:
shell@grouper:/ $ getprop | grep adb
[init.svc.adbd]: [running]
[persist.sys.usb.config]: [mtp,adb]
[ro.adb.secure]: [1]
[sys.usb.config]: [mtp,adb]
[sys.usb.state]: [mtp,adb]
adb root mode:
shell@grouper:/ # getprop | grep adb
[init.svc.adbd]: [running]
[persist.sys.usb.config]: [mtp,adb]
[ro.adb.secure]: [1]
[service.adb.root]: [1]
[sys.usb.config]: [mtp,adb]
[sys.usb.state]: [mtp,adb]
我们可以看到service.adb.root
是我们做adb root时出现的新prop变量。
因此,要从根目录将adb更改回用户,我继续将其设为0
setprop service.adb.root 0
但这并没有改变任何事情。
然后我继续杀了这个过程(打算重启这个过程)。我的设备中的pid
个adbd
进程为133
kill -9 133
在我杀死进程后,我自动从shell中退出。
我再次adb shell
处于用户模式。
摘要:
所以,我们有3个非常简单的步骤。
(pid of adbd)
完成这些步骤后,只需使用adb shell
重新进入shell,即可以用户身份重新登录设备。
答案 5 :(得分:-1)
这是一个非常常见的问题。
一种解决方案是通过命令提示符终止adb服务器并重启。有时这可能无济于事。
只需转到Window Task Manager即可终止adb进程并重新启动Eclipse。
工作完美:)
答案 6 :(得分:-1)
我使用基本操作系统loki解决了这个问题。就像有一天我解决了它使用这个命令重新启动adb:
./adb kill-server
和
./adb start-server
您需要位于Sdk文件夹>平台工具
现在,重新启动手机,这将重新启动手机中的所有过程。
这就是我如何解决它。
答案 7 :(得分:-1)
如果您无法访问Android设备监视器上的数据文件夹
<强> CMD 强>
<form name="converter">
<table border="0">
<tr>
<td>
<select name = "currency">
<option value="EUR" selected> Euro </option>
<option value="USD">Dollar</option></select>
</td>
<td>
<input type="text" name="ammount" onkeyup="Converter()" />
</td>
</tr>
<tr>
<td>£:</td>
<td><input type="text" name="pound" disabled /></td>
</tr>
</table>
</form>
工作正常.....