如何修改adb install xxx.apk的lib属性为rw

为了调试,我们有的时候想改变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了。

你可能感兴趣的:(如何修改adb install xxx.apk的lib属性为rw)