1. 确定是否正确连接手机了
1 |
adb devices |
2. 进入shell
1 |
adb shell |
3. shell中输入命令
1 2 3 4 |
su mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system chmod 777 /system exit |
4. 然后你就有系统目录的读写权限了,例如你就可以使用adb push 把文件push到系统目录中去了.
上面的/system 为要访问的目录,如果要访问data目录则替换成/data 即可
以上是针对/system 目录的情况,当时当我们希望把 /data/data目录下面的文件拷贝出来的时候,却发生了问题,提示没有权限
原因在于 chmod 的缘故,chmod仅仅对当前目录进行了权限修改,下面的子目录还是没有权限
怎么办呢
1 2 3 |
chmod 777 /system 修改成为 chmod -R 777 /system |
就可以了,这个 -R 参数就是所有子目录一并处理
每次关机,修改都无效的,需要重新修改。
如果以上的方法,仍然不能解决问题,则考虑执行如下命令,重新挂载
1 2 3 4 5 6 7 8 9 10 11 |
$ adb shell # mount rootfs / rootfs ro 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,mode=600 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 none /dev/cpuctl cgroup rw,cpu 0 0 /dev/block/mtdblock0 /system yaffs2 ro 0 0 /dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0 /dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0 |
可以看得出/system的权限是ro即是read only。
1 2 3 4 5 6 7 8 9 10 11 |
# mount -o remount /dev/block/mtdblock0 /system # mount rootfs / rootfs ro 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,mode=600 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 none /dev/cpuctl cgroup rw,cpu 0 0 /dev/block/mtdblock0 /system yaffs2 rw 0 0 /dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0 /dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0 |
可以看到/system的权限变了,变成read write了。