问题描述
|
最近,我扎根了Droid X,一切似乎都运转良好。我对ѭ0进行了一些更改,当我执行
adb push build.prop /system/
时,出现以下错误:failed to copy \'c:\\build.prop\' to \'/system//build.prop\': Read-only file system
。
我怎样才能解决这个问题?
解决方法
并非所有的手机和android版本都具有相同的安装方式。
重新安装时最好使用限制选项。
只需重新安装为rw(读/写):
# mount -o rw,remount /system
完成更改后,重新安装到ro(只读):
# mount -o ro,remount /system
,adb remount
为我工作,似乎是最简单的解决方案。
,我在一个Android论坛上问了同样的问题。希望这对其他人有帮助。
在电话上的终端仿真器上:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
然后在cmd提示符下,执行ѭ7
,虽然我知道问题是关于真实设备的,但如果有人在模拟器中遇到类似问题(使用截至2017年2月的最新工具),则需要使用以下命令从命令行启动模拟器:
-writable-system
任何可写到ѭ9的内容。如果没有该标志,则不能将remount
或mount
的任何组合写入/system
。
用该标志启动仿真器后,在adb root
之后的单个adb remount
就足以获得将其推入/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 disable-verity
adb reboot
adb root
adb remount
这对我有用,是最简单的解决方案。
,这对我有用。我正在运行仿真的Android 7.1.1(牛轧糖)设备。
在终端上,我按下了以下命令。要注意的一件事是-writable-system标志
./emulator -writable-system -avd Nexus_6_API_25 -partition-size 280
在另一个标签上
./adb shell
su
mount -o rw,remount -t ext4 /dev/block/vda /system
您对/ system内容所做的所有更改都将在重新启动后保留下来。
,在电话上打开终端仿真器:
然后
adb shell
该守护程序启动后
su
mount -o rw,remount /mnt/sdcard
然后将只读转换为读写。
,我检查了模拟器,以下工作正常。
adb重新启动
亚行根&&亚行重新安装&&亚行推〜/ Desktop / hosts / system / etc / hosts
同样,如上所述,单步执行第二步。
,mount -o rw,remount /dev/stl12 /system
为我工作
,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应该自动重启。 (它会自动为我重新启动。)
,为JanBergström的答案增加了一点:由于Android是基于Linux的系统,并且Linux中的路径包含正斜杠(../),因此在使用push命令时,请使用\“ / \”定义目标路径在Android设备中。
例如,命令如下:adb push C:\\ Users \\ admin \\ Desktop \\ 1.JPG sdcard / pictures /
请注意,在这里,反斜杠用于定义要从Windows PC推送的文件的源路径,正斜杠用于定义目标路径,因为Android是基于Linux的系统。您不必充当root即可使用此命令,而且,它在生产设备上也可以正常工作。
,有时您会收到错误消息,因为电话中的目标位置不存在。例如,某些Android手机的外部存储位置是/storage/emulated/legacy
而不是/storage/emulated/0
。
,感谢Sérgio提供的不带参数提示的\“ mount \”命令。
我需要将ѭ7变成ѭ39才能解决某些测试问题,并收到“只读文件系统”消息。
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。
,它必须提取并重新打包initrc.img并使用mount / system的代码编辑init
文件,
,就我而言,我正在使用命令adb push~/Desktop/file.txt ~/sdcard/
我将其更改为~/Desktop/file.txt /sdcard/
,然后它起作用了。
确保断开并重新连接手机。
,将文件复制到SD卡?
好吧,我假设您想将数据从开发人员计算机复制到SD卡中?您可能已经扎根了设计,使您可以访问的区域可用?)我在为应用程序(Win7中的Android Studio 1.3.2)上载数据文件时遇到了同样的问题。
首先,必须在路径中找到adb命令外壳:
PATH =%PATH%; C:\\ Users \\ XXXXX \\ AppData \\ Local \\ Android \\ sdk \\ platform-tools(文件夹AppData是隐藏的,因此您必须设置文件夹设置而不隐藏隐藏的文件和文件夹找到它,Path不管如何)
您必须正确拼写文件夹路径,否则会收到一条只读错误消息,很可能它必须以/ sdcard开头,或者它是只读区域。我将文件推送到仿真器就没问题。
因此,例如adb命令可以如下所示:
亚行推送C:\\ testdata \\ t.txt /sdcard/download/t.txt
,如果复制只读文件失败,则可以尝试在根目录中找到原始文件,并使用ROM Toolbox应用程序附带的根文本编辑器(最好是RB文本编辑器)对其进行修改。
,以root身份在终端仿真器中尝试以下操作:
restorecon -v -R /data/media
,正如陈星提到的,最简单的方法是:
adb reboot
但是对我来说,我必须先更改设置:
设置→开发人员选项→根访问权限
确保ADB具有Root访问权限: