为了调试,我们有的时候想改变lib等目录的读写属性。例如HelloJni安装之后的目录路径为:
/data/data/com.example.hellojni/lib/
如果我们执行adb push 到这个目录下,会得到read-only错误提示。
于是,我们使用adb remount,结果还是不行,当然不行 adb 热mount仅仅修改/system的读写属性。
于是我们直接修改这个属性。
adb shell
#su
chmod 777 /data/data/com.example.hellojni/lib/
结果还是一样,read-only属性错误。
于是我们使用mount 查看
255|root@android:/proc # mount -o rw,remount /dev/block/mmcblk0p3
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|root@android:/proc # dd
^C0+0 records in
0+0 records out
0 bytes transferred in 2.774 secs (0 bytes/sec)
root@android:/proc # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
emmc@android /system ext4 rw,relatime,user_xattr,commit=1,barrier=1,nodelalloc,data=journal,noauto_da_alloc 0 0
emmc@usrdata /data ext4 rw,relatime,user_xattr,barrier=1,data=ordered,noauto_da_alloc 0 0
emmc@cache /cache ext4 rw,nosuid,nodev,noatime,user_xattr,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/vold/179:4 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:4 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/dm-0 /mnt/asec/com.samsung.FactoryKey-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/dm-1 /mnt/asec/com.example.hellojni-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
可见:
/dev/block/dm-1 /mnt/asec/com.example.hellojni-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
这里的属性为ro,所以,我们只有
adb remount -o rw,remount /mnt/asec/com.example.hellojni-1
然后再执行
chmod 777 /data/data/com.example.hellojni/lib/
这样就ok了。