Jak zamontować / system wielokrotnego zapisu lub tylko do odczytu? (RW / RO)

55

Jak zamontować /systemkatalog z możliwością wielokrotnego zapisu lub tylko do odczytu na moim telefonie z Androidem?

Thomas Vos
źródło

Odpowiedzi:

63

Istnieje kilka metod montowania /systemkatalogu RW lub RO. Będzie to jednak wymagać rootowania.

Metoda 1:

  1. Podłącz telefon do komputera. (Upewnij się, że w telefonie jest włączone debugowanie USB)

  2. Otwórz CMD/ Terminalna komputerze.

    • Windows: CTRL+ R, a następnie wpisz cmd.

    • Ubuntu: CTRL+ ALT+ T.

    • Mac: przejdź do Terminalu/Applications/Utilities/ i kliknij go dwukrotnie .

  3. Wpisz to:

    1. adb shell
    2. su

    3. Wybierz jeden: ( /systemaby zakończyć instalację z powrotem do RO po zakończeniu)

      • System montażu RW: mount -o rw,remount /system
      • System montażu RO: mount -o ro,remount /system

Metoda 2:

  1. Otwórz terminalna swoim telefonie z Androidem (pobierz tutaj ):
  2. Wpisz to w terminal:

    1. su

    2. Wybierz jeden: ( /systemaby zakończyć instalację z powrotem do RO po zakończeniu)

      • System montażu RW: mount -o rw,remount /system
      • System montażu RO: mount -o ro,remount /system

Metoda 3:

Jeśli nie chcesz wpisywać polecenia za każdym razem w terminalu, napisałem aplikację zaprojektowaną do tego celu:


Android 2.3

W przypadku osób z Androidem 2.3, a polecenie nie działa, spójrz na tę odpowiedź: https://android.stackexchange.com/a/125437/95577

Thomas Vos
źródło
4
Wygląda na to, że (metoda 1) nie działa już na nowszym Androidzie. Próbuję to zrobić na emulatorze Androida z systemem Android 6, ale zawsze pojawia się błąd „montuj: system plików tylko do odczytu”. Uruchomiłem adb root, ale to nie robi różnicy. Masz pomysł na to, co można zrobić?
diidu
1
Rozumiem. Podczas uruchamiania emulatora muszę użyć opcji wiersza polecenia -writable-system. Wtedy pierwszy remont adb wydaje się udany. Wydaje się ... Nie widziałem, żeby zmieniło się na rw.
diidu
emulator - zapisywalny jest nadal poprawną odpowiedzią.
Edgar Aroutiounian,
„Dla osób z Androidem 2.3” - frazowanie nie komunikuje się zbyt dobrze. Zgaduję, że masz na myśli> = 2.3 lub <= 2.3 (lub, co mniej prawdopodobne, dokładnie 2.3, jeśli występuje tylko konkretny błąd w 2.3), ale nie wiemy, co lub dlaczego.
Don Hatch,
2

-writable-system dla emulatora

Podczas uruchamiania emulatora po kompilacji, musisz użyć:

. build/envsetup.sh
lunch aosp_x86_64-eng
emulator -show-kernel -verbose -writable-system

Następnie, dla przyszłych uruchomień, musisz zachować tę -writable-systemopcję, w przeciwnym razie zmiany obrazu nie będą widoczne:

emulator -show-kernel -verbose -writable-system

-verbosepokazuje nam, że emulator przełącza się z domyślnego -drive:

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img,read-only

do:

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576

Dlatego to:

  • usuwa ,read-only

  • używa system-qemu.img.qcow2zamiast system-qemu.img.

    Oznacza to, że zmiany będą widoczne dopiero później, jeśli przekażesz -writable-sytemprzyszłe buty po dokonaniu zmiany!

    Widzimy, że obraz qcow2 to tylko niewielka nakładka na obraz podstawowy, ponieważ:

    qemu-img info /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2
    

    zawiera:

    backing file: /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img
    

Emulator -helprównież to potwierdza:

emulator -help

zawiera:

-writable-system     make system & vendor image writable after 'adb remount'

adb remount + adb root

Myślę, że jest to tylko skrót do mountwspomnianego na https://android.stackexchange.com/a/110928/126934 , ale jest to bardzo wygodne:

adb root
adb remount
adb shell

adb help zawiera:

 root                     restart adbd with root permissions
 remount
     remount /system, /vendor, and /oem partitions read-write

Przywróć oryginalny obraz systemu

To samo, co w przypadku danych użytkownika: usuń .qcow2nakładkę i ponownie ją wygeneruj ręcznie: https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and- działa na nim

Ciro Santilli
źródło