用于 root Android 的终端命令将 /System 重新挂载为读/写

发布于 2024-10-27 17:13:41 字数 359 浏览 4 评论 0原文

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

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

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

I'm writing an android app that needs to copy a file to the "/system" partition at runtime. I've got the commands to run "su" and can successfully request SuperUser permissions and run commands as root. But I don't know how to make this app universal across multiple devices, because the mount command can differ depending on where the /system is actually mounted. Here's the command that's used most offen:

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

But I know that mtdblock3 could be different on some devices (and for that matter, i guess so could yaffs2). So, my question is: Is there a universal command that will work on all phones? Or is there a way to find out at runtime what the correct parameters are?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

゛时过境迁 2024-11-03 17:13:41

我使用这个命令:

mount -o rw,remount /system

I use this command:

mount -o rw,remount /system
情痴 2024-11-03 17:13:41

您可以运行不带参数的 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

You can run the mount command without parameter in order to get partition information before constructing your mount command. Here is an example of the mount command without parameter outputed from my HTC Hero.

$ 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
删除→记忆 2024-11-03 17:13:41

尝试

挂载-o重新挂载,rw /系统

如果没有打印错误消息,则说明有效。

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

首先,确定 fs 类型。

挂载

发出此命令来查找它。

然后

挂载-o rw,重新挂载-t yaffs2 /dev/block/mtdblock3 /system

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

Try

mount -o remount,rw /system

If no error message is printed, it works.

Or, you should do the following.

First, make sure the fs type.

mount

Issue this command to find it out.

Then

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

Note that the fs(yaffs2) and device(/dev/block/mtdblock3) are depend on your system.

南渊 2024-11-03 17:13:41

而不是

挂载-o rw,重新挂载/系统/

使用

挂载-o rw,重新挂载/系统

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

Instead of

mount -o rw,remount /system/

use

mount -o rw,remount /system

mind the '/' at the end of the command.
you ask why this matters? /system/ is the directory under /system while /system is the volume name.

柠檬色的秋千 2024-11-03 17:13:41

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

adb remount

You can try adb remount command also to remount /system as read write

adb remount
怪我鬧 2024-11-03 17:13:41

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

You don't need to pass both arguments when performing a remount. You can simply pass the mount point (here /system). And /system is universal amongst Android devices.

入怼 2024-11-03 17:13:41

我也有同样的问题。所以,真正的答案是:将系统挂载到 /proc 下。
这是我的命令:

mount -o rw,remount /proc /system

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

I had the same problem. So here is the real answer: Mount the system under /proc.
Here is my command:

mount -o rw,remount /proc /system

It works, and in fact is the only way I can overcome the Read-only System problem.

爱的十字路口 2024-11-03 17:13:41

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

  1. root系统并安装su。

  2. 安装busybox

  3. 安装终端程序。

  4. 先挂载系统 rw,然后 su

    busybox mount -o rw,重新挂载系统
    
  5. 重新挂载 ro

    busybox mount -o ro,重新挂载系统
    

请注意,“system”上没有斜杠。

This is what works on my first generation Droid X with Android version 2.3.4. I suspect that this will be universal. Steps:

  1. root system and install su.

  2. Install busybox

  3. Install a terminal program.

  4. to mount system rw first su then

    busybox mount -o rw,remount system
    
  5. To remount ro

    busybox mount -o ro,remount system
    

Note that there are no slashes on "system".

不离久伴 2024-11-03 17:13:41

如果你已经root了你的手机,但没有busybox,只有普通的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

If you have rooted your phone, but so not have busybox, only stock toybox, here a one-liner to run as root :

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

toybox do not support the "-o remount,rw" option

if you have busybox, you can use it :

busybox mount -o remount,rw /system

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文