我最近安装了我的Droid X,一切似乎都很完美。我做了一些改变来构建。prop,当我做adb push build时。prop /system/我得到以下错误:未能复制'c:\build。支持“到”/system//build。prop':只读文件系统。

我该如何解决这个问题?


当前回答

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"

其他回答

以下是对我有效的方法。我正在运行一个模拟的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内容所做的所有更改都将在重新启动后继续存在。

并不是所有的手机和安卓版本都安装了相同的东西。 重新安装时限制选项是最好的。

简单地重新挂载为rw(读/写):

# mount -o rw,remount /system

一旦你完成了修改,重新挂载到ro(只读):

# mount -o ro,remount /system
adb remount

对我来说,这似乎是最简单的解决方案。

虽然我知道这个问题是关于真实设备的,但如果有人在模拟器中遇到类似的问题,无论2017年2月最新的工具是什么,模拟器都需要从命令行启动:

-writable-system

对于任何可写入/系统的内容。如果没有这个标志,remount或mount的任何组合都不允许写入/system。

在模拟器以该标志启动后,在adb根目录后重新安装一个adb就足以获得推送到/system的权限。

下面是我用来运行模拟器的命令行示例:

./emulator -writable-system -avd Nexus_5_API_25 -no-snapshot-load -qemu

-avd标志的值来自:

./emulator -list-avds

在我的三星galaxy mini S5570上(在手机上扎根后):

首先,作为根,我跑:

systemctl start adb

作为普通用户:

adb shell 
su 

在触摸屏上授予root权限

mount 

列出我们拥有的所有挂载点,我们可以看到,在我的例子中,/dev/stl12被挂载在/system上为ro(仅准备好),所以我们只需要做:

mount -o rw,remount /dev/stl12 /system