Como montar / sistema regravável ou somente leitura? (RW / RO)

55

Como montar o /systemdiretório regravável ou somente leitura no meu telefone Android?

Thomas Vos
fonte

Respostas:

63

Existem alguns métodos para montar seu /systemdiretório RW ou RO. No entanto, exigirá raiz.

Método 1:

  1. Conecte seu telefone ao computador. (Verifique se a depuração USB está ativada no seu telefone)

  2. Abra CMD/ Terminalno seu PC.

    • Windows: CTRL+ Re digite cmd.

    • Ubuntu: CTRL+ ALT+ T.

    • Mac: navegue até /Applications/Utilities/e clique duas vezes em Terminal .

  3. Digite isto:

    1. adb shell
    2. su

    3. Escolha uma: (para montagem de segurança de /systemvolta à RO quando terminar)

      • Sistema de montagem RW: mount -o rw,remount /system
      • Sistema de montagem RO: mount -o ro,remount /system

Método 2:

  1. Abra terminalno seu telefone Android (faça o download aqui ):
  2. Digite isso no terminal:

    1. su

    2. Escolha uma: (para montagem de segurança de /systemvolta à RO quando terminar)

      • Sistema de montagem RW: mount -o rw,remount /system
      • Sistema de montagem RO: mount -o ro,remount /system

Método 3:

Se você não deseja digitar o comando todas as vezes no terminal, escrevi um aplicativo desenvolvido para fazer isso por você:


Android 2.3

Para pessoas executando o Android 2.3 e o comando falhar, veja esta resposta: https://android.stackexchange.com/a/125437/95577

Thomas Vos
fonte
4
Parece que este (método 1) não funciona mais no Android mais novo. Estou tentando fazer isso no emulador Android executando o Android 6, mas sempre recebo o erro "mount: sistema de arquivos somente leitura". Eu executei o adb root, mas não faz diferença. Alguma idéia do que poderia ser feito?
diidu 12/09/16
11
Eu entendi, mais ou menos. Eu tenho que usar a opção de linha de comando -writable-system ao iniciar o emulador. Então, a primeira remontagem adb parece ter êxito. Parece ... Eu ainda não vi mudar para rw.
diidu 12/09/16
gravável emulador ainda é a resposta correta.
Edgar Aroutiounian
"Para pessoas que executam o Android 2.3" - esse fraseado não se comunica muito bem. Suponho que você queira dizer> = 2.3 ou <= 2.3 (ou, menos provável, exatamente 2.3 se houver um bug específico no 2.3), mas não sabemos qual ou por quê.
Don escotilha
2

-writable-system para o emulador

Ao iniciar o emulador após uma compilação com, você deve usar:

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

Então, para execuções futuras, você deve manter a -writable-systemopção, caso contrário as alterações de imagem não serão visíveis:

emulator -show-kernel -verbose -writable-system

-verbosemostra-nos que o emulador alterna do padrão -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

para:

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

Portanto:

  • remove ,read-only

  • usa em system-qemu.img.qcow2vez de system-qemu.img.

    Isso implica que as alterações só serão visíveis depois se você passar -writable-sytembotas futuras após a alteração!

    Podemos ver que a imagem qcow2 é apenas uma pequena sobreposição na parte superior da imagem base, pois:

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

    contém:

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

O emulador -helptambém confirma isso:

emulator -help

contém:

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

adb remount + adb root

Acho que este é apenas um atalho para mounto mencionado em https://android.stackexchange.com/a/110928/126934 , mas é muito conveniente:

adb root
adb remount
adb shell

adb help contém:

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

Restaurar a imagem original do sistema

O mesmo que para dados do usuário: remova a .qcow2sobreposição e gere-a manualmente: https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and- correndo-sobre-o

Ciro Santilli adicionou uma nova foto
fonte