最近,我扎根了Droid X,一切似乎都运转良好。我对进行了一些更改,build.prop
并在adb push build.prop /system/
发生以下错误:failed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system
。
我怎样才能解决这个问题?
最近,我扎根了Droid X,一切似乎都运转良好。我对进行了一些更改,build.prop
并在adb push build.prop /system/
发生以下错误:failed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system
。
我怎样才能解决这个问题?
Answers:
并非所有的手机和Android版本都具有相同的安装方式。
重新安装时最好使用限制选项。
只需重新安装为rw(读/写):
# mount -o rw,remount /system
完成更改后,将其重新安装到ro(只读):
# mount -o ro,remount /system
adb root
或,在推送文件时将获得“拒绝权限”。
Balazss-MBP:tools varh1i$ adb shell
generic_x86_64:/ # mount -o rw,remount /system
'/dev/block/vda' is read-only
mv hosts /system/etc/hosts
adb remount
为我工作,似乎是最简单的解决方案。
Not running as root. Try "adb root" first.
。然后adbd cannot run as root in production builds
。
$ adb disable-verity
要先重新启动设备,然后才能运行$ adb remount
Not running as root. Try "adb root" first.
。我输入adb root
,然后再次输入,adb remount
但仍然是相同的错误:Not running as root. Try "adb root" first.
我在一个Android论坛上问了同样的问题。希望这对其他人有帮助。
在电话上的终端仿真器上:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
然后在cmd提示符下,执行 adb push
adb shell <command>
可以从计算机上使用(如果您的手机上没有终端)
虽然我知道问题是关于真实设备的,但如果有人在模拟器中遇到类似问题(使用截至2017年2月的最新工具),则需要使用以下命令从命令行启动模拟器:
-writable-system
对于任何可写的东西/system
。没有此标志的组合remount
或mount
不允许写入/system
。
在使用该标志启动仿真器之后,单adb remount
后adb root
一个足以获取推送到的权限/system
。
这是我用来运行模拟器的命令行示例:
./emulator -writable-system -avd Nexus_5_API_25 -no-snapshot-load -qemu
-avd
标志的值来自:
./emulator -list-avds
我认为最安全的方法是使用以下方式将/ system重新安装为读写:
mount -o remount,rw /system
完成后,将其重新安装为只读:
mount -o remount,ro /system
在我的三星银河迷你S5570上(在手机上扎根后):
作为拳头,我跑了:
systemctl start adb
作为普通用户:
adb shell
su
在触摸屏上授予root权限
mount
列出我们拥有的所有挂载点,就我而言,我们可以看到/ dev / stl12以/ ro挂载在/ system上(只读),因此我们只需要执行以下操作:
mount -o rw,remount /dev/stl12 /system
在命令提示符下尝试以下操作:
>adb remount
>adb push framework-res_old.apk /system/framework-res.apk
adb root remount
This worked for me
#Mount as ReadOnly
su -c "mount -o rw,remount /system"
# Change Permission for file
su -c "chmod 777 /system/build.prop"
#Edit the file to add the property
su -c "busybox vi /system/build.prop"
# Add now
service.adb.tcp.port=5678
# Reset old permissions
su -c "chmod 644 /system/build.prop"
# Mount as readonly again once done
su -c "mount -o ro,remount /system"
我从Google找到了这篇文章,并认为我会在Sony Xperia Z(4.2.2)上添加必要的步骤。
索尼有一个看门狗程序,它可以检测到您何时在/和/ system上将ro更改为rw(这是我唯一尝试修改的内容),以及其他情况。
以下是我执行的尝试要实现的更改。我将它们粘贴到一个窗口中,因为需要快速完成从/ sbin / ric中删除执行位的操作,以阻止它重新启动。(我尝试过stop ric
;这不起作用-尽管它在手机上的android早期版本中可以使用)。
pkill -9 ric; mount -o rw,remount -t rootfs /
chmod 640 /sbin/ric
mount -o rw,remount /system
我在这里修改了主机文件,因此在这里您可以对文件系统进行更改。为了使事物保持我们找到它们的方式,请执行以下操作:
mount -o ro,remount /system
chmod 750 /sbin/ric
mount -o ro,remount -t rootfs /
此时ric应该自动重启。(它会自动为我重新启动。)
谢谢Sérgio的“挂载”命令,没有参数提示。我需要做adb push
进/data/data/com.my.app/lib
了一些测试问题,并获得“只读文件系统”的消息。
ls命令显示给我:
root@android:/ # ls -l /data/data/com.my.app/
drwxrwx--x u0_a98 u0_a98 2016-05-06 09:16 cache
drwxrwx--x u0_a98 u0_a98 2016-05-06 09:04 files
lrwxrwxrwx system system 2016-05-06 11:43 lib -> /mnt/asec/com.my.app-1/lib
因此,可以理解,“ lib”目录与其他应用程序目录是分开的。
命令
mount -o rw,remount /mnt/asec
无法解决“ r / o fs”问题,它需要设备参数先于目录参数。
“ df”命令也无济于事,但显示我的/mnt/asec/com.my.app-1
目录位于单独的安装点。
然后我看着 mount
瞧!
root@android:/ # mount
.........
/dev/block/dm-4 /mnt/asec/com.my.app-1 ext4 ro,dirsync,relatime 0 0
上面已经描述了下一步:重新安装到RW,推入并重新安装到RO。
好吧,我想您想从开发人员计算机将数据复制到SD卡中?您可能已经扎根了设计,使您可以访问的区域可用?)我在为应用程序(Win7中的Android Studio 1.3.2)上载数据文件时遇到了同样的问题。
因此,例如adb命令可以如下所示:
亚行推送C:\ testdata \ t.txt /sdcard/download/t.txt
如果复制只读文件失败,则可以尝试在根目录中找到原始文件,并使用ROM Toolbox应用程序附带的根文本编辑器(最好是RB文本编辑器)对其进行修改。
adb remount
,会得到什么?