Команда терминала для корневого Android для перемонтирования / System как чтение / запись - PullRequest
46 голосов
/ 29 марта 2011

Я пишу приложение для Android, которое должно копировать файл в раздел "/ system" во время выполнения.У меня есть команды для запуска "su" и я могу успешно запрашивать разрешения SuperUser и запускать команды от имени пользователя root.Но я не знаю, как сделать это приложение универсальным на нескольких устройствах, потому что команда mount может отличаться в зависимости от того, где на самом деле смонтирована / system.Вот команда, которая используется чаще всего offen:

mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system

Но я знаю, что mtdblock3 может отличаться на некоторых устройствах (и в этом отношении, я думаю, так же, как и yaffs2).Итак, мой вопрос: есть ли универсальная команда, которая будет работать на всех телефонах?Или есть способ выяснить, во время выполнения, какие правильные параметры?

Ответы [ 9 ]

126 голосов
/ 08 февраля 2012

Я использую эту команду:

mount -o rw,remount /system
18 голосов
/ 29 марта 2011

Вы можете запустить команду mount без параметра, чтобы получить информацию о разделе перед созданием команды монтирования.Вот пример команды mount без параметра, выведенного из моего HTC Hero.

$ mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock3 /system yaffs2 rw 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=
1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,s
hortname=mixed,utf8,errors=remount-ro 0 0
12 голосов
/ 20 ноября 2013

Попробуйте

mount -o remount, rw / system

Если сообщение об ошибке не печатается, оно работает.

Или вы должны сделать следующее.

Сначала убедитесь, что тип fs.

крепление

Введите эту команду, чтобы выяснить это.

Тогда

mount -o rw, remount -t yaffs2 / dev / block / mtdblock3 / system

Обратите внимание, что fs (yaffs2) и устройство (/ dev / block / mtdblock3) зависят от вашей системы.

5 голосов
/ 05 ноября 2013

вместо

mount -o rw, remount / system /

использование

mount -o rw, remount / system

обратите внимание на '/' в конце команды. Вы спрашиваете, почему это важно? / system / - это каталог в / system, а / system - имя тома.

4 голосов
/ 09 июля 2014

Вы можете попробовать команду adb remount также перемонтировать / system как read write

adb remount
4 голосов
/ 22 апреля 2012

Вам не нужно передавать оба аргумента при выполнении перемонтирования. Вы можете просто передать точку монтирования (здесь / system). Система / является универсальной среди устройств Android.

2 голосов
/ 18 июля 2014

Это то, что работает на моем первом Droid X первого поколения с Android версии 2.3.4.Я подозреваю, что это будет универсальным.Шаги:

  1. корневая система и установка su.

  2. Установка busybox

  3. Установка программы терминала.

  4. для монтирования системы сначала su, затем

    busybox mount -o rw,remount system
    
  5. Для перемонтирования ro

    busybox mount -o ro,remount system
    

Обратите внимание, что в "system" нет косых черт.

2 голосов
/ 08 октября 2013

У меня была такая же проблема. Итак, вот реальный ответ: смонтировать систему под /proc. Вот моя команда:

mount -o rw,remount /proc /system

Это работает, и фактически это единственный способ, которым я могу преодолеть Системную проблему только для чтения.

1 голос
/ 14 августа 2016

Если вы рутировали свой телефон, но у вас нет занятого ящика, только стоковая коробка с игрушками, здесь однострочник для запуска с правами root:

mount -o rw, перемонтировать $ (mount | sed '/ / system /! D' | cut -d "" -f 1) / system

toybox не поддерживает опцию "-o remount, rw"

если у вас есть busybox, вы можете использовать его:

mount busybox -o remount, rw / system

...