Как перемонтировать мой Android / систему как чтение и запись в сценарии bash с помощью adb?

Для информации

$ adb remount 

Возвращает "remount failed: Operation not permitted"

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

Возвращает unknown option -- o

Мое устройство укоренено.

Solutions Collecting From Web of "Как перемонтировать мой Android / систему как чтение и запись в сценарии bash с помощью adb?"

Вероятная причина неудачи в том, что вы не используете adb как root .

Скрипт оболочки должен быть следующим.

 # 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 

Я не мог заставить команду mount работать без указания блока dev для монтирования как / system

#cat /proc/mounts возвращает (здесь только системная строка)
/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 

возвращается

  Enforcing 

Тогда, возможно, вам следует позвонить

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

Нижеследующее может помочь (сначала изучить влияние disable-verity ):

 adb root adb disable-verity adb reboot 

Получите «adbd insecure» из магазина google play, он помогает предоставить доступ на запись к пользовательским ромам, которые обеспечили мне своих производителей.

У меня была такая же проблема, и я не мог смонтировать систему как чтение / запись. Он вернется

Использование: mount [-r] [-w] [-o options] [-t type] каталог устройств

Или

операция не разрешена. Доступ закрыт

Теперь это работает на всех укоренившихся устройствах.

СЛЕДУЙТЕ СЛЕДУЮЩИМИ В 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 

Готово.

В дополнение ко всем остальным полученным вам ответам я хочу объяснить unknown option -- o error: Ваша команда была

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

Который вызывает su через adb. Вы правильно процитировали всю команду su, чтобы передать ее как один аргумент для adb shell . Однако su -c <cmd> также требует, чтобы вы процитировали команду с аргументами, которые она должна передать параметру -c оболочки. (YMMV в зависимости от вариантов su ). Поэтому вы можете попробовать

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

(И потенциально добавить фактическое устройство, указанное на выходе системы mount | grep system перед /system arg – см. Другие ответы.)