繁体   English   中英

有根 Android 的终端命令将 /System 重新挂载为读/写

[英]A terminal command for a rooted Android to remount /System as read/write

我正在编写一个需要在运行时将文件复制到“/system”分区的 android 应用程序。 我有运行“su”的命令,并且可以成功请求超级用户权限并以 root 身份运行命令。 但我不知道如何使这个应用程序在多个设备上通用,因为 mount 命令可能会因 /system 实际挂载的位置而异。 这是最常用的命令:

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

但我知道 mtdblock3 在某些设备上可能会有所不同(就此而言,我想 yaffs2 也可能如此)。 所以,我的问题是:是否有适用于所有手机的通用命令? 或者有没有办法在运行时找出正确的参数是什么?

我使用这个命令:

mount -o rw,remount /system

您可以不带参数运行mount命令,以便在构建 mount 命令之前获取分区信息。 这是我的 HTC Hero 输出的不带参数的 mount 命令示例。

$ mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock3 /system yaffs2 rw 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=
1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,s
hortname=mixed,utf8,errors=remount-ro 0 0

尝试

mount -o remount,rw /system

如果没有打印错误消息,它就可以工作。

或者,您应该执行以下操作。

首先,确定 fs 类型。

发出此命令以找出它。

然后

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

请注意, fs(yaffs2) 和 device(/dev/block/mtdblock3) 取决于您的系统。

代替

mount -o rw,重新挂载 /system/

mount -o rw,重新挂载 /system

注意命令末尾的“/”。 你问为什么这很重要? /system/ 是 /system 下的目录,而 /system 是卷名。

您也可以尝试 adb remount 命令将 /system 重新挂载为读写

adb remount

执行重新挂载时,您不需要传递这两个参数。 您可以简单地传递挂载点(此处为 /system)。 并且 /system 在 Android 设备中是通用的。

我有同样的问题。 所以这是真正的答案:在/proc下安装系统。 这是我的命令:

mount -o rw,remount /proc /system

它有效,实际上是我克服只读系统问题的唯一方法。

这适用于我的第一代 Android 2.3.4 版 Droid X。 我怀疑这将是普遍的。 脚步:

  1. 根系统并安装su。

  2. 安装busybox

  3. 安装终端程序。

  4. 先挂载系统 rw su 然后

    busybox mount -o rw,remount system
  5. 重新安装 ro

     busybox mount -o ro,remount system

请注意,“系统”上没有斜线。

如果你已经root了你的手机,但没有busybox,只有stock toybox,这里有一个单线以root身份运行:

mount -o rw,remount $( mount | sed '//system /!d' | cut -d " " -f 1 ) /system

toybox 不支持“-o remount,rw”选项

如果你有busybox,你可以使用它:

busybox mount -o remount,rw /system

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM