我是靠谱客的博主 优秀月亮,最近开发中收集的这篇文章主要介绍基于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,那我们手动触发到赋予读写的权限,这样就可以执行了程序。问题总算是解决了。

最后

以上就是优秀月亮为你收集整理的基于java调用adb命令安卓shell里面Read-only file system 问题解决的全部内容,希望文章能够帮你解决基于java调用adb命令安卓shell里面Read-only file system 问题解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部