如何使用 adb 在 bash 脚本中将我的 Android/system 重新挂载为读写?
How can I remount my Android/system as read-write in a bash script using adb?
了解信息
adb remount
returns "remount failed: Operation not permitted"
adb shell 'su -c mount -o rw,remount /system'
returns unknown option -- o
我的设备已获得 root 权限。
remount
失败的可能原因是您不是 运行 adb
和 root
。
Shell脚本如下
# Script to mount Android Device as read/write.
# List the Devices.
adb devices;
# Run adb as root (Needs root access).
adb root;
# Since you're running as root su is not required
adb shell mount -o rw,remount /;
如果失败,您可以尝试以下方法:
# List the Devices.
adb devices;
# Run adb as root
adb root;
adb remount;
adb shell su -c "mount -o rw,remount /";
要查找您 user
的身份:
$ adb shell whoami
我遇到了同样的问题,无法像 read/write 那样挂载系统。它将 return
Usage: mount [-r] [-w] [-o options] [-t type]
device directory
或
operation not permitted. Access denied
现在这适用于所有获得 root 权限的设备。
在 TERMINAL EMULATOR
或 ADB SHELL
中执行以下操作
$ su
#mount - o rw,remount -t yaffs2 /system
Yaffs2
是系统分区类型。将其替换为通过执行以下命令获得的系统分区类型
#cat /proc/mounts
然后从冗长的结果
中检查 /system
出现在哪里
我的摘录就像
mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0/dev/block/platform/msm_sdcc.3/by-num/p10 /system ext4 ro,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.3/by-num/p11 /cache ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
所以我的系统是ext4
。我的命令是
$ su
#mount -o rw,remount -t ext4 /system
完成。
如果不指定要挂载为 /system 的开发块,我无法使挂载命令工作
#cat /proc/mounts
returns(这里只有系统行)
/dev/stl12 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8 0 0
所以我的工作命令是
mount -o rw,remount -t rfs /dev/stl12 /system
否则...如果
getenforce
returns
Enforcing
那也许你应该打电话给
setenforce 0
mount -o rw,remount /system
setenforce 1
从 google Play 商店获取 "adbd insecure",它有助于授予对自定义 rom 的写入权限,这些 rom 已保护我的制造商。
以下内容可能会有所帮助(首先研究 disable-verity
的影响):
adb root
adb disable-verity
adb reboot
除了您收到的所有其他答案之外,我想解释一下 unknown option -- o
错误:您的命令是
$ adb shell 'su -c mount -o rw,remount /system'
通过adb调用su。您正确引用了整个 su 命令,以便将其作为 one 参数传递给 adb shell
。但是,su -c <cmd>
还需要您在命令中引用它应传递给 shell 的 -c
选项的参数。 (YMMV 取决于 su
变体。)因此,您可能想尝试
$ adb shell 'su -c "mount -o rw,remount /system"'
(并可能在 /system
arg 之前添加 mount | grep system
的输出中列出的实际设备 - 请参阅其他答案。)
mount -o rw,remount $(mount | grep /dev/root | awk '{print }')
这适合我,并且适用于任何 android 版本。
了解信息
adb remount
returns "remount failed: Operation not permitted"
adb shell 'su -c mount -o rw,remount /system'
returns unknown option -- o
我的设备已获得 root 权限。
remount
失败的可能原因是您不是 运行 adb
和 root
。
Shell脚本如下
# Script to mount Android Device as read/write.
# List the Devices.
adb devices;
# Run adb as root (Needs root access).
adb root;
# Since you're running as root su is not required
adb shell mount -o rw,remount /;
如果失败,您可以尝试以下方法:
# List the Devices.
adb devices;
# Run adb as root
adb root;
adb remount;
adb shell su -c "mount -o rw,remount /";
要查找您 user
的身份:
$ adb shell whoami
我遇到了同样的问题,无法像 read/write 那样挂载系统。它将 return
Usage: mount [-r] [-w] [-o options] [-t type] device directory
或
operation not permitted. Access denied
现在这适用于所有获得 root 权限的设备。
在 TERMINAL EMULATOR
或 ADB SHELL
$ su
#mount - o rw,remount -t yaffs2 /system
Yaffs2
是系统分区类型。将其替换为通过执行以下命令获得的系统分区类型
#cat /proc/mounts
然后从冗长的结果
中检查/system
出现在哪里
我的摘录就像
mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0/dev/block/platform/msm_sdcc.3/by-num/p10 /system ext4 ro,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.3/by-num/p11 /cache ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
所以我的系统是ext4
。我的命令是
$ su
#mount -o rw,remount -t ext4 /system
完成。
如果不指定要挂载为 /system 的开发块,我无法使挂载命令工作
#cat /proc/mounts
returns(这里只有系统行)
/dev/stl12 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8 0 0
所以我的工作命令是
mount -o rw,remount -t rfs /dev/stl12 /system
否则...如果
getenforce
returns
Enforcing
那也许你应该打电话给
setenforce 0
mount -o rw,remount /system
setenforce 1
从 google Play 商店获取 "adbd insecure",它有助于授予对自定义 rom 的写入权限,这些 rom 已保护我的制造商。
以下内容可能会有所帮助(首先研究 disable-verity
的影响):
adb root
adb disable-verity
adb reboot
除了您收到的所有其他答案之外,我想解释一下 unknown option -- o
错误:您的命令是
$ adb shell 'su -c mount -o rw,remount /system'
通过adb调用su。您正确引用了整个 su 命令,以便将其作为 one 参数传递给 adb shell
。但是,su -c <cmd>
还需要您在命令中引用它应传递给 shell 的 -c
选项的参数。 (YMMV 取决于 su
变体。)因此,您可能想尝试
$ adb shell 'su -c "mount -o rw,remount /system"'
(并可能在 /system
arg 之前添加 mount | grep system
的输出中列出的实际设备 - 请参阅其他答案。)
mount -o rw,remount $(mount | grep /dev/root | awk '{print }')
这适合我,并且适用于任何 android 版本。