Polecenie terminala dla zrootowanego Androida, aby ponownie zamontować / System jako Odczyt/Zapis

Piszę aplikację na Androida, która musi skopiować plik na partycję" / system " w czasie wykonywania. Mam polecenia do uruchomienia " su " i może z powodzeniem zażądać uprawnień superużytkownika i uruchomić polecenia jako root. Ale nie wiem, jak zrobić tę aplikację uniwersalną na wielu urządzeniach, ponieważ polecenie mount może się różnić w zależności od tego, gdzie /system jest faktycznie zamontowany. Oto Komenda, która jest używana najczęściej:

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

Ale wiem, że mtdblock3 może być inny na niektórych urządzeniach (a tak w ogóle to chyba też yaffs2). Więc moje pytanie brzmi: czy istnieje uniwersalne polecenie, które będzie działać na wszystkich telefonach? A może istnieje sposób, aby dowiedzieć się w czasie wykonywania, jakie są prawidłowe parametry?

Author: user496854, 2011-03-29

9 answers

Możesz uruchomić polecenie mount bez parametru, aby uzyskać informacje o partycji przed zbudowaniem polecenia mount. Oto przykład polecenia mount bez parametru z mojego 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
 18
Author: Bao Le,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-29 04:30:26

Używam polecenia:

mount -o rw,remount /system
 125
Author: Gussoh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-02 09:56:50

Try

Mount-o remount, RW / system

Jeśli nie jest wyświetlany komunikat o błędzie, działa.

LUB, należy wykonać następujące czynności.

Najpierw upewnij się, że typ fs.

Mount

Wydaj to polecenie, aby to sprawdzić.

Then

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

Zauważ, że fs (yaffs2) i device (/dev/block / mtdblock3) zależą od Twojego systemu.

 12
Author: accuya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-20 03:36:50

Zamiast

Mount-o rw, remount / system /

Użyj

Mount-o rw, remount / system

Zwróć uwagę na " / " na końcu polecenia. pytasz, dlaczego to ma znaczenie? /system / jest katalogiem w /system, podczas gdy / system jest nazwą woluminu.

 5
Author: Rabeeh Khoury,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-04 22:36:39

Nie musisz podawać obu argumentów podczas ponownego montowania. Możesz po prostu przejść punkt montowania (tutaj / system). I / system jest uniwersalny wśród urządzeń z systemem Android.

 4
Author: Harry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-22 11:40:44

Możesz wypróbować polecenie adb remount również, aby ponownie zamontować / system jako odczyt zapisu

adb remount
 4
Author: Rahul R Dhobi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-09 10:05:35

Miałem ten sam problem. Oto prawdziwa odpowiedź: Zamontuj system pod /proc. Oto mój rozkaz:

mount -o rw,remount /proc /system

To działa i w rzeczywistości jest to jedyny sposób, w jaki mogę przezwyciężyć problem systemu Tylko do odczytu.

 2
Author: JPNicole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-08 03:42:08

To działa na moim Droid X pierwszej generacji z Androidem w wersji 2.3.4. Podejrzewam, że będzie to uniwersalne. Kroki:

  1. System Root i zainstaluj su.

  2. Zainstaluj busybox

  3. Zainstaluj program terminal.

  4. Aby zamontować system RW najpierw su potem

    busybox mount -o rw,remount system
    
  5. Aby ponownie zmontować ro

    busybox mount -o ro,remount system
    

Zauważ, że na "systemie" nie ma ukośników.

 2
Author: neonjohn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-02 04:40:04

Jeśli masz zakorzeniony telefon, ale nie masz busybox, tylko stock toybox, tutaj jeden-liner do uruchomienia jako root :

Mount-o rw, remount $ (mount / sed ' / / system/!d | / cut - d "" - f 1) / system

Toybox nie obsługuje opcji" - o remount, rw"

Jeśli masz busybox, możesz go użyć:

Busybox mount-o remount,RW /system

 1
Author: Fred,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-14 05:20:37