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

информация

$ adb remount 

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

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

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

мое устройство коренится.

7 ответов


вероятная причина, что remount терпит неудачу, вы не работаете adb as 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 first):

adb root
adb disable-verity
adb reboot

получить "adbd небезопасно" из google play store, это помогает дать доступ для записи пользовательских ПЗУ, которые обеспечили мои производители.


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

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

или

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

теперь это работает на всех устройствах с правами 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 

сделано.


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

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

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

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

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