How can I remount my Android/system as read-write in a bash script using adb?

微笑、不失礼 提交于 2019-11-29 21:30:27

Probable cause that remount fails is you are not running adb as root.

Shell Script should be as follow.

# 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 /;

If this fails, you could try the below:

# List the Devices.
adb devices;

# Run adb as root
adb root;

adb remount;
adb shell su -c "mount -o rw,remount /";

To find which user you are:

$ adb shell whoami

I could not get the mount command to work without specifying the dev block to mount as /system

#cat /proc/mounts returns ( only the system line here )
/dev/stl12 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8 0 0

so my working command is
mount -o rw,remount -t rfs /dev/stl12 /system

Albert

Otherwise... if

getenforce

returns

Enforcing

Then maybe you should call

setenforce 0 
mount -o rw,remount /system 
setenforce 1

The following may help (study the impacts of disable-verity first):

adb root
adb disable-verity
adb reboot

Get "adbd insecure" from google play store, it helps give write access to custom roms that have it secured my the manufacturers.

Misguided Zeal

I had the same problem and could not mount system as read/write. It would return

Usage: mount [-r] [-w] [-o options] [-t type] device directory

Or

operation not permitted. Access denied

Now this works on all rooted devices.

DO THE FOLLOWING IN TERMINAL EMULATOR OR IN ADB SHELL

$ su
#mount - o rw,remount -t yaffs2 /system

Yaffs2 is the type of system partition. Replace it by the type of your system partition as obtained from executing the following

#cat /proc/mounts

Then check where /system is appearing from the lengthy result

Extract of mine was like

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

So my system is ext4. And my command was

$ su
#mount  -o  rw,remount  -t  ext4  /system 

Done.

In addition to all the other answers you received, I want to explain the unknown option -- o error: Your command was

$ adb shell 'su -c  mount -o rw,remount /system'

which calls su through adb. You properly quoted the whole su command in order to pass it as one argument to adb shell. However, su -c <cmd> also needs you to quote the command with arguments it shall pass to the shell's -c option. (YMMV depending on su variants.) Therefore, you might want to try

$ adb shell 'su -c "mount -o rw,remount /system"'

(and potentially add the actual device listed in the output of mount | grep system before the /system arg – see the other answers.)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!