出现Read-only file system问题,不是因为文件或者文件夹的权限不对,而是要push的目录对应的分区是以只读方式挂载的,网上给出的解决办法是重新以读写方式挂载对应分区,以/system分区为例,使用命令:mount -o remount rw /system,当然如果你想重新挂载系统分区需要有root权限。
但是你会发现,当你在adb shell中使用该方式重新挂载分区后,退出adb shell后用adb push命令向/system分区推送文件时仍然报错Read-only file system,这是因为在adb shell中重新挂载分区只针对当前的shell有效,在退出后该挂载方式失效。所以即使你打开两个cmd/powershell窗口,一个窗口使用adb shell重新挂载分区,在另一个窗口adb push也是不行的。
我这边最终尝试可行的方法是通过手机内置存储卡(外置SD卡也可以,但是有的手机没有外置SD卡)中转下,例如我想把计算机上的frida-server-14.0.7-android-arm64文件拷贝到手机的/data/local/tmp目录下,可以按照下面方式操作:
D:\反编译APP\platform-tools>adb push D:\frida-server-14.0.7-android-arm64 /sdcard
D:\frida-server-14.0.7-android-arm64: 1 file pushed, 0 skipped. 7.3 MB/s (20018792 bytes in 2.626s)
D:\反编译APP\platform-tools>adb shell
shell@le_x6:/ $ su
root@le_x6:/ # cp /sdcard/frida-server-14.0.7-android-arm64 /data/local/tmp
root@le_x6:/ # cd data/local/tmp
root@le_x6:/data/local/tmp # ls -l
-rw-rw-rw- shell shell 9435529 2019-04-10 14:02 7toRushRom.apk
-rwxr-xr-x shell shell 1165484 2017-11-14 09:39 busybox
-rw------- root root 20018792 2020-11-10 11:51 frida-server-14.0.7-android-arm64
drwxr-xr-x root root 2020-11-10 10:21 re.frida.server
-rw-rw-rw- root root 3281 2020-11-09 22:10 result.txt
drwxrwxrwx root root 2020-11-09 23:21 tinyproxy
chmod 777 frida-server-14.0.7-android-arm64 <
root@le_x6:/data/local/tmp # ./frida-server-14.0.7-android-arm64
文章来源于网络,原帖链接找不到了。