无法在RW中重新挂载/ system


15

我拼命尝试在/ system / app文件夹中将带有adb的应用程序推送(以在我的低成本平板电脑上安装PlayStore)。所以我试图用根权限重新挂载/ system分区:

mount -o remount,rw /system 

但这总是给我同样的回应:

mount: Read-only filesystem

我也尝试使用此命令:

mount -o remount,rw -t ext4 /dev/block/actc /system

但这是同一件事...而且我真的不明白为什么,即使有root用户,我也无法修改它...

因此,如果有人有一个主意,它可以使一个人免于陷入困境:p


1
我在Android 4.4.2和Nexus 4上也遇到了同样的问题。当我使此命令内核加入dmesg中的以下消息时:EXT4-fs (mmcblk0p21): re-mounted. Opts: (null)。为什么(null)呢 我明确要求rw
德米特里(Dmitry)2014年

你有没有解决这个问题?我有同样的问题。使用三星银河标签。
Jacob Minshall 2015年

@JacobMinshall和@Dmitry,如果您仍然感兴趣,请尝试显式运行`/ system / bin / mount,而不是隐式运行xbin。那对我有用。
乔恩·库姆斯

Answers:


14

mount命令的语法通常要求您指定目标:

mount -o remount,rw /system /system

此输出可能有助于我们更好地了解您的问题:

cat /proc/mounts

作为最后的选择,由于您具有root用户,您可以尝试保存系统的原始图像,将其安装在包装盒上,然后将应用程序推送到此处,然后将其闪回设备上。要保存原始系统映像:

dd if=<block device mounted on /system> of=<output file>

如果这样做,请确保保留原始系统映像,以防出现问题。


希望我能从仓库中获得dd命令...
Wang

@Wang我从未见过dd丢失,但是某些设备上可能存在一些不完整的系统映像,在这种情况下,您可以使用cat / block / device> output-file
zeiky.dev

1

我不确定这在多大程度上适用,但是我遇到了同样的问题,并发现此reddit注释为我解决了此问题(在Android Lollikat(为cm11)上):

http://www.reddit.com/r/cyanogenmod/comments/2m9t61/how_do_i_remount_system_rw_on_cm11_m12/

基本上,我必须通过显式使用/system/bin/mount -o ...而不是just 重新安装mount -o ...。我猜想在某个时候/ system / xbin中的版本开始具有优先权,并且由于某种原因该版本会以静默方式失败。(我之所以说“在某个时候”,是因为link2sd直到最近才开始抱怨RO。)看起来应该可以编辑PATH来解决此问题,从而不必每次或每次使用命令行时都使用命令行应用程序需要执行此操作。不过,我不确定如何。

FWIW,这是我设备的实际脚本(cm11 / LolliKat上的s5360)。它可以在任何地方运行,但是我最终将其存储在/ system / xbin中,因此它对Shell全局可用。

#!/system/bin/sh
echo "Remounting /system as RW (read/write)..."
/system/bin/mount -o remount,rw /system
mount | grep yaff

最后一行只是为了快速反馈它是否真正起作用(因为我的内部分区是yaff2)。可以将其中的任何一行更明确地显示为第一行,但是在我的设备上,这不是必需的:

/system/bin/mount -o remount,rw /system /system
/system/bin/mount -o remount,rw /system /system
/system/bin/mount -o remount,rw /dev/block/mtdblock8 /system
/system/bin/mount -o remount,rw -t yaffs2 /dev/block/mtdblock8 /system

mount -o remount,rw /system 为我工作。我的设备是带有Android 5.1.1 LMY48B的Nexus 5
Maksim Dmitriev,

1

对我来说...什么都没有起作用,最后这起作用了:

adb root
adb remount

1
“ adbd无法在生产版本中作为根目录运行”
Vadzim

0

您是否有一个不安全的内核(boot.img)?引导时,内核通常会阻止对系统分区的写访问。您可能需要刷新经过修改的内核,才能使用adb获得对/ system的写访问。

您可以在操作系统中将/ system挂载为r / w吗?然后,您可以使用adb或仅使用普通USB(取决于设备,使用MTP或Mass Storage)将文件推送到SD卡,然后将其复制到正确的位置,并使用设备上的终端或启用了root的文件管理器设置权限。然后重新启动,它应该在那里并已安装。


我认为,当我们尝试访问/ system时,这意味着它尚未扎根。他们使用root adb shell的全部目的是将诸如su之类的东西推送到/ system进行root。

OP的@Wang明确表示他已经扎根
zeiky.dev

0

我发现我可以使用TWRP的恢复模式将系统安装在rw中,单击“挂载”并选择“系统”,确保未选中“作为只读挂载”。然后,我可以system/app使用TWRP的内置文件管理器将APK复制到该文件夹。

我使用ADB或终端仿真器进行rw挂载的所有其他尝试均失败。没有尝试使用BusyBox。

从记忆中,这过去对我有用。


0

我有一个类似的问题。使用Busybox时获得了成功(不要与Toybox系统应用程序混淆):

busybox mount -o remount,rw /system 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.