我正在编写一个需要在运行时将文件复制到“ / system”分区的android应用。我已经有了运行“ su”的命令,并且可以成功请求SuperUser权限并以root用户身份运行命令。但是我不知道如何使该应用程序在多个设备上通用,因为mount命令可能因/ system的实际安装位置而异。这是最常用的命令:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
但是我知道mtdblock3在某些设备上可能有所不同(对此,我想yaffs2也可能如此)。因此,我的问题是:是否有一个通用命令可以在所有电话上使用?还是有办法在运行时找出正确的参数?
您可以在不带参数的情况下运行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
如果出现/ system not in / proc / mounts错误,则设备系统分区未安装任何目录。写入系统分区受到限制。
如果使用仿真器,请下载以前版本的系统映像。
截至目前,不支持使用Android Q编写系统分区,请改用android pie。
我使用此命令:
mount -o rw,remount /system
尝试
mount -o remount,rw / system
如果未打印任何错误消息,则可以。
或者,您应该执行以下操作。
首先,确保fs类型。
mount
发出此命令以查找它。
然后
mount -o rw,remount -t yaffs2 / dev / block / mtdblock3 / system
请注意,fs(yaffs2)和device(/ dev / block / mtdblock3)取决于您的系统。
代替
mount -o rw,remount / system /
使用
mount -o rw,remount / system
在命令末尾注意'/'。你问为什么这很重要? / system /是/ system下的目录,而/ system是卷名。
您也可以尝试使用adb remount命令以读写方式重新挂载/ system
adb remount
执行重新安装时,您不需要传递两个参数。您可以简单地传递挂载点(此处为/ system)。并且/ system在Android设备中通用。
我有同样的问题。因此,这才是真正的答案:将系统安装在/proc
下。这是我的命令:
mount -o rw,remount /proc /system
它有效,并且实际上是我可以克服只读系统问题的唯一方法。
这是我的第一代Droid X在Android版本2.3.4上的工作原理。我怀疑这将是普遍的。步骤:
root system and install su。
安装busybox
安装终端程序。
要先安装系统rw su然后
busybox mount -o rw,remount system
重新安装ro
busybox mount -o ro,remount system
注意,“系统”上没有斜杠。
如果您已经扎根手机,但没有忙碌箱,则只有库存的玩具箱,这里只有一根线可以以root身份运行:
mount -o rw,remount $(mount | sed'/ / system /!d'| cut -d“” -f 1)/ system
玩具箱不支持“ -o remount,rw”选项
如果您有busybox,可以使用它:
busybox mount -o remount,rw / system