我最近根植了我的Droid X,一切似乎都很完美。我对build.prop
进行了一些更改,当我adb push build.prop /system/
时,我收到以下错误:failed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system
。
我该如何解决这个问题?
答案 0 :(得分:361)
并非所有手机和Android版本都安装相同的东西 重新安装时限制选项是最好的。
只需重新安装为rw(读/写):
# mount -o rw,remount /system
完成更改后,请重新安装到ro(只读):
# mount -o ro,remount /system
答案 1 :(得分:76)
adb remount
对我有用,似乎是最简单的解决方案。
答案 2 :(得分:75)
在Android论坛上找到了同样的问题。希望这有助于其他人。
在手机上的终端模拟器上:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
然后在cmd提示符下,执行adb push
答案 3 :(得分:55)
虽然我知道这个问题是关于真实设备的,但是如果有人在模拟器中遇到类似的问题,那么截至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
答案 4 :(得分:29)
我认为最安全的方法是将/ system重新安装为读写,使用:
mount -o remount,rw /system
完成后,将其重新安装为只读:
mount -o remount,ro /system
答案 5 :(得分:15)
在我的三星galaxy mini S5570上(手机上扎根):
拳头,作为根,我跑了:
systemctl start adb
作为普通用户:
adb shell
su
在触摸屏上授予root权限
mount
列出我们拥有的所有挂载点,在我的例子中,我们可以看到/ dev / stl12已安装在/ system上作为ro(仅限就绪),所以我们只需要这样做:
mount -o rw,remount /dev/stl12 /system
答案 6 :(得分:11)
在命令提示符处尝试以下操作:
>adb remount
>adb push framework-res_old.apk /system/framework-res.apk
答案 7 :(得分:8)
adb disable-verity
adb reboot
adb root
adb remount
这对我有用,是最简单的解决方案。
答案 8 :(得分:6)
这对我有用。我正在运行模拟的Android 7.1.1(Nougat)设备。
在终端上,我点击以下命令。有一点需要注意的是-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内容所做的所有更改都将在重新启动后继续。
答案 9 :(得分:3)
在手机上打开终端模拟器: 然后
adb shell
该守护进程启动后
su
mount -o rw,remount /mnt/sdcard
然后将只读转换为读写。
答案 10 :(得分:2)
mount -o rw,remount /dev/stl12 /system
适合我
答案 11 :(得分:1)
谢谢,Sérgio,对于没有参数构思的“mount”命令。
对于某些测试问题,我需要将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。
答案 12 :(得分:1)
就我而言,我正在使用命令adb push ~/Desktop/file.txt ~/sdcard/
我将其更改为~/Desktop/file.txt /sdcard/
,然后它起作用了。
确保断开并重新连接手机。
答案 13 :(得分:1)
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"
答案 14 :(得分:1)
必须提取并重新打包initrc.img并使用mount / system的代码编辑init
文件
答案 15 :(得分:1)
有时您会收到错误,因为手机中的目标位置不存在。例如,某些Android手机外部存储位置为/storage/emulated/legacy
而不是/storage/emulated/0
。
答案 16 :(得分:1)
再加上JanBergström的回答:因为Android是基于Linux的系统,并且Linux中的路径包含正斜杠(../),所以在使用push命令时,使用“/”来定义目标路径Android设备。
例如,命令为:adb push C:\ Users \ admin \ Desktop \ 1.JPG sdcard / pictures /
请注意,这里,反斜杠用于定义要从Windows PC推送的文件的源路径,而正斜杠用于定义目标路径,因为Android是基于Linux的系统。您不必充当root用户来使用此命令,而且它在生产设备上完全正常。
答案 17 :(得分:1)
我在Google上发现了这篇文章,并认为我会在Sony Xperia Z(4.2.2)上添加必要的步骤。
索尼有一个看门狗程序,可以检测你何时将r改为/和/系统(这是我试图修改的唯一)以及其他可能的。
以下是我为执行我想要实现的更改而运行的内容。我将这些粘贴到一个窗口中,因为从/ sbin / ric中删除执行位需要快速完成,以便停止它自己重启。 (我尝试了stop ric
;这不起作用 - 虽然它可以在手机上使用以前版本的Android。)
pkill -9 ric; mount -o rw,remount -t rootfs /
chmod 640 /sbin/ric
mount -o rw,remount /system
我在这里修改了hosts文件,因此这是您对文件系统进行所需更改的地方。要按照我们找到它们的方式保留,请执行以下操作:
mount -o ro,remount /system
chmod 750 /sbin/ric
mount -o ro,remount -t rootfs /
此时ric应自动重启。 (它自动重启给我。)
答案 18 :(得分:0)
以root身份在终端仿真器中尝试此操作:
restorecon -v -R /data/media
答案 19 :(得分:0)
如果复制只读文件失败,您可以尝试在根目录中找到原始文件,并使用根文本编辑器(最好是)RB文本编辑器修改它,它附带ROM Toolbox app。
答案 20 :(得分:0)
我检查了模拟器并进行了后续工作。
也如上所述,单步执行第二步。
答案 21 :(得分:0)
答案 22 :(得分:-1)
嗯,我假设您想从开发人员计算机将数据复制到Sd卡?您可能已根据设计进行了操作并使您所使用的区域可用?)我为我的应用程序(Win7中的Android Studio 1.3.2)上传数据文件时遇到了同样的问题,但是。
因此,例如,adb命令可能如下所示:
adb push C:\ testdata \ t.txt /sdcard/download/t.txt
答案 23 :(得分:-2)
我只需要这个:
[Tue Aug 18 04:11:32 2020] PHP 7.4.8 Development Server (http://127.0.0.1:80) started
[Tue Aug 18 04:11:40 2020] 127.0.0.1:50018 Accepted
[Tue Aug 18 04:11:40 2020] 127.0.0.1:50019 Accepted
[Tue Aug 18 04:11:40 2020] 127.0.0.1:50018 [404]: (null)
/ - No such file or directory
[Tue Aug 18 04:11:40 2020] 127.0.0.1:50018 Closing
[Tue Aug 18 04:11:41 2020] 127.0.0.1:50022 Accepted```
This is the output in browser
```Fatal error: Unknown: Failed opening required '.' (include_path='.;C:\php\pear') in Unknown on line 0```