как смонтировать /system для чтения/записи в Android?

не удается смонтировать /system в Android с помощью следующей команды, у кого-нибудь есть решение для этого?

root@hwG7-UL20:/ # mount -o rw,remount,rw /system
mount: Invalid argument

255|root@hwG7-UL20:/ # mount -o remount rw /system
mount: Invalid argument

root@hwG7-UL20:/ # mount|grep system
/dev/block/bootdevice/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0

полный вывод для mount:

255|root@hwG7-UL20:/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,size=970220k,nr_inodes=155384,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,size=970220k,nr_inodes=155384,mode=750,gid=1000 0 0
none /sys/fs/cgroup/memory cgroup rw,relatime,memory 0 0
none /dev/frz cgroup rw,relatime,freezer 0 0
tmpfs /mnt/asec tmpfs rw,seclabel,relatime,size=970220k,nr_inodes=155384,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,seclabel,relatime,size=970220k,nr_inodes=155384,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
adb /dev/usb-ffs/adb functionfs rw,relatime 0 0
/dev/block/bootdevice/by-name/log /log vfat rw,nosuid,nodev,relatime,uid=1000,gid=1007,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
/dev/block/bootdevice/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
/dev/block/bootdevice/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,relatime,noauto_da_alloc,data=ordered 0 0
/dev/block/bootdevice/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/bootdevice/by-name/persist /persist ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/bootdevice/by-name/modem /firmware vfat ro,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
/data/media /mnt/shell/emulated sdcardfs rw,nosuid,nodev,relatime,uid=1023,gid=1023 0 0
/dev/block/bootdevice/by-name/cust /cust ext4 ro,seclabel,relatime,data=ordered 0 0

большое спасибо!

Где ты это делаешь? В режиме восстановления или в терминале на вашем устройстве.
в терминале «adb shell» с рутом
Что произойдет, если вы укажете имя устройства? то естьmount -o remount,rw /dev/block/bootdevice/by-name/system /system
еще сказал: mount: неверный аргумент
Привет и добро пожаловать! A) Какая марка/модель устройства? Б) Какая версия Android? C) Правильно ли я предполагаю, что SELinux включен?
Команды немного отличаются, если вы используете нугу.
Старый вопрос, но у меня та же проблема, что и сейчас. У кого-нибудь есть решение для этого?

Ответы (3)

Решение простое. Чтобы перемонтировать смонтированную систему, вам необходимо иметь привилегии root. Сделайте су. Вы войдете в корневой режим. Затем выполните приведенную ниже команду. Это сработает, я делал это много раз.

Итак, вот шаги:

 adb shell  
 su  
 mount -o rw,remount -t ext4 /system

Изменить: нашел лучшее решение

На хост-компьютере (Linux или Windows PC) выполните следующие команды.

>> adb root  
>> adb remount

remount по умолчанию перемонтирует раздел /system с помощью rw, если у вас есть разрешения.

Примечание 1. Чтобы сделать su или adb root, ваше устройство должно быть рутировано и на нем должен быть исполняемый файл su. Когда вы делаете su, если оно выполнено правильно, приглашение вашего терминала изменится с $ на #. Спасибо..

Примечание 2. В последних мобильных телефонах, некоторых из известных мне acer и samsung, безопасность была усилена, и даже после рутирования телефона adb remount не будет работать. Насколько я знаю, решения для него пока нет.

Я был бы осторожен с включением опции «-t» для выбора файловой системы, так как это может привести к попытке перемонтировать ее как «ext4», хотя ранее это могла быть «f2fs» (используемая более новыми пользовательскими ПЗУ). Вам нужно только сказать... mount -o rw,remount /system, чтобы перемонтировать как чтение-запись и перемонтировать только для чтения... mount -o ro,remount /system
adbd cannot run as root in production builds
Большое спасибо за «adb remount» - это сработало для меня на Android 9, когда mount -o rw, remount -t ext4 / system не сработало - спасибо!

см. соответствующие статьи здесь и ответ по обмену стеками здесь

В основном

  1. Вам нужен рут

  2. Лучше установить adb secure apk

  3. Проверьте, как раздел /system смонтирован как доступный только для чтения (ro). В частности, обратите внимание на устройство

    # mount | grep system
    /dev/block/stl12 /system ext4 ro,relatime,barrier=1,data=ordered 0 0
    
  4. Затем перемонтируйте это как /system

    # mount -o rw,remount /dev/block/stl12 /system
    
  5. Наконец, вы можете подтвердить это

    # mount | grep system
    /dev/block/stl12 /system ext4 rw,relatime,barrier=1,data=ordered 0 0
    

Если вы являетесь пользователем root, вы можете загрузить ES File Explorer из Play Store, нажав значок трехстрочного меню в левом верхнем углу. Затем прокрутите вниз, пока не увидите Root Explorer. Нажмите и удерживайте в течение 2-3 секунд. Должно появиться меню. Нажмите «Монтировать R/W». Поставьте точку для «системы» в разделе RW. Может потребоваться перезагрузка.

Никаких результатов, все еще RO. Вероятно, он использует ту же команду.