真机DDMS下data目录打不开——ADB server didn't ACK * failed to start daemon *||Android 查看 /data/data 目录

来源:互联网 发布:淘宝店名可以山寨吗 编辑:程序博客网 时间:2024/04/29 03:39

(一)在DDMS下访问 /data 目录 却是打不开

由于某些原因,需要通过eclipse访问/data/下的文件。

打开eclipse-DDMS,看到data是根目录下的3个之一,左边的“expandable”标志很可爱。

 

 

结果发现:点不开。使劲点,还是点不开。

检查一下:设备正常online,并且同是根目录下mnt,system能正常访问

 

狂搜google,一堆stackoverflow上的同志告诉我:需要rooted phone。

可是很久很久之前就root过了…

 

寻找真正的原因。此处省去3千字…

仔细查看DDMS,重大发现

data   drwxrsw–x

mnt    drwxrwxr-x

mnt    drwxr-xr-x

权限!data的other user权限里没有r,不可读!接下去怎么办就明了。

 

[Solution]

进入sdk platform-tool

>adb shell

$ su

# chmod   755   /data

这仅仅是修改了当前一个文件的权限

并没有修改当前文件夹下的文件们的权限

Linux文件权限详解(一)】告诉你为什么偏偏是 755(什么权限看需求了) 。

 

打开,搞定!为了访问更深的目录,一路继续chmod。(为了安全起见,我参照system的设置,给了755)


(二)到了【Solution】不能进行下去:




原因就是手机未获取Root权限

Root 是什么

Root可恢复


所以Root……



(三)Root之后的小问题:

1、

ADB server didn't ACK
* failed to start daemon *


2、服务启动失败的原因有很多,但一般是端口绑定失败。我们来查看一下端口绑定信息。如图所示,真的是端口绑定出了问题。

关注下图②


3、我们来看看哪个服务占用了这个端口。这里面有个进程占用了这个端口。

关注上图③


4、我们进入任务管理器,找到此PID 对应的进程关闭它。




5、试试行不行了


没有关闭刷机工具时候:(这不行,重启Eclipse这个问题会再次出现)


关闭刷机工具:(这就没问题了)



6、猜测是Root工具占用了这个……(怎么称呼)



(四)继续【Solution】:


Solution前




Solution中

Linux文件权限详解】告诉你为什么偏偏是 775 。


Solution后



想对一个文件夹下的所有文件的权限进行修改:

[root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx

[root@localhost ~]# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx




Linux指令速查手册 http://pan.baidu.com/s/1kTioLs7

整理自:

http://blog.csdn.net/catoop/article/details/7584746

http://jingyan.baidu.com/article/454316aba27e49f7a7c03ab1.html






----------------------------------------

解决ADB端口占用问题


方式一
5037为adb默认端口,若5037端口被占用,
查看占用端口的进程PID
C:\Users\wwx229495>netstat -aon|findstr 5037
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3676


通过PID查看所有进程
C:\Users\wwx229495>tasklist /fi "PID eq 3676"


映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
svchost.exe                   3676 Services                   0     13,800 K


杀死占用端口的进程
C:\Users\wwx229495>taskkill /pid 3676 /f
成功: 已终止 PID 为 3676 的进程。


方式二
自己配置 adb server 端口,使用一个生僻的值。


很简单,只要在系统环境变量中定义 ANDROID_ADB_SERVER_PORT 的值即可。

最好选择一个5位数的端口号(10000 ~ 65535),不易重复。

win下只要在环境变量中增加一个ANDROID_ADB_SERVER_PORT ,值填你自己定义的端口。

Linux下只要 export $ANDROID_ADB_SERVER_PORT = 自定义端口,即可。








0 0
原创粉丝点击