基于java调用adb命令安卓shell里面Read-only file system 问题解决

当我们在安卓内部使用shell命令的时候会出现Read-only file system 我是root权限但是还是不行。如何解决?

1|rk3368_box:/system/app $  cp  -f   /storage/emulated/0/publisher/config/app-release.apk   /system/app/
cp  -f   /storage/emulated/0/publisher/config/app-release.apk   /system/app/  <
cp: /system/app//app-release.apk: Read-only file system

这里说明我们系统里面的文件没有权限执行。

切入到系统里面去看:

1|rk3368_box:/system/app $ ls -all
ls -all
total 3616
drwxr-xr-x 35 root root    4096 2022-03-22 15:10 .
drwxr-xr-x 18 root root    4096 1970-01-01 08:00 ..
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 BasicDreams
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 Bluetooth
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 Camera2
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 CaptivePortalLogin
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 CertInstaller
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 CtsShimPrebuilt
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 DisplayAdjust
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 DownloadProviderUi
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 ExactCalculator
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 ExtShared
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 Gallery2
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 HTMLViewer
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 KeyChain
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 LatinIME
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 Launcher3
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 Lightning
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 LiveWallpapersPicker
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 Music
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 OstarStressTest
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 PacProcessor
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 PicoTts
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 PinyinIME
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 PrintSpooler
drwxr-xr-x  3 root root    4096 2009-01-01 00:00 RKUpdateService
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 RegularPowerSwitch
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 Rk4kVideoPlayer
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 RkDeviceTest_3368
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 RkExplorer
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 SoundRecorder
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 UserDictionaryProvider
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 WallpaperBackup
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 WallpaperPicker
-rw-r--r--  1 root root 1706321 2022-03-22 15:10 app-release.apk
drwxr-xr-x  2 root root    4096 2009-01-01 00:00 webview

-rw-r--r--  1 root root 1706321 2022-03-22 15:10 app-release.apk

这个意思代码只读,所以我们不能做其他操作。

mount -o remount rw /system
1|rk3368_box:/storage/emulated/0/publisher/config $ mount -o remount rw /system
ount -o remount rw /system                                                    <
mount: '/system' not in /proc/mounts

这个命令还是不行这个代码赋予系统权限,一顿操作还是崩盘

mount -o rw,remount /system

 还是不行,这些另外一个问题。

继续操作还是不行: 

继续操作:

还是不行这里的时候人都麻了。搞了半天怀疑人生,是不是我真的不适合搞程序,继续看。

解决方案来了:

 mount | grep /system

 我们可以看到明显是没有写的权限只有rw的时候才能。

 cat /proc/mounts

cat /proc/mounts
rootfs / rootfs ro,seclabel,size=993780k,nr_inodes=248445 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,size=1011412k,nr_inodes=252853,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
proc /proc proc rw,relatime,gid=3009,hidepid=2 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,seclabel,relatime,mode=755 0 0
/sys/kernel/debug/tracing /sys/kernel/debug/tracing tracefs rw,seclabel,relatime,mode=755 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
none /dev/stune cgroup rw,relatime,schedtune 0 0
tmpfs /mnt tmpfs rw,seclabel,relatime,size=1011412k,nr_inodes=252853,mode=755,gid=1000 0 0
none /config configfs rw,relatime 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
none /dev/cpuset cgroup rw,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent 0 0
pstore /sys/fs/pstore pstore rw,seclabel,relatime 0 0
/dev/block/platform/ff0f0000.dwmmc/by-name/system /system ext4 ro,seclabel,noatime,nodiratime,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/ff0f0000.dwmmc/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,noatime,nodiratime,discard,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/ff0f0000.dwmmc/by-name/metadata /metadata ext4 rw,seclabel,nosuid,nodev,noatime,nodiratime,discard,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,noatime,nodiratime,discard,noauto_da_alloc,errors=panic,data=ordered 0 0
tmpfs /storage tmpfs rw,seclabel,relatime,size=1011412k,nr_inodes=252853,mode=755,gid=1000 0 0
adb /dev/usb-ffs/adb functionfs rw,relatime 0 0
/dev/fuse /mnt/runtime/default/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /storage/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /mnt/runtime/read/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /mnt/runtime/write/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

 找到这一行进行复制权限。

mount -o rw,remount /dev/block/bootdevice/by-name/system /system

没有报错了我们继续看 

su root cp  -f   /storage/emulated/0/publisher/config/app-release.apk   /system/app/

复制到系统里面成功了。说明我们的权限配置正确了,执行成功了。

 但是由于系统每次重启的时候还是没有rw,那我们手动触发到赋予读写的权限,这样就可以执行了程序。问题总算是解决了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨互联网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值