73 votos

¿Cómo montar /system como reescribible o de solo lectura? (RW/RO)

¿Cómo puedo montar el directorio /system de forma reescriturable o de solo lectura en mi teléfono Android?

83voto

SuperThomasLab Puntos 97

Hay varios métodos para montar tu directorio /system como RW o RO. Sin embargo, se requiere ser root.

Método 1:

  1. Conecta tu teléfono a la computadora. (Asegúrate de tener la depuración USB activada en tu teléfono)

  2. Abre CMD/Terminal en tu PC.

    • Windows: CTRL + R, luego escribe cmd.

    • Ubuntu: CTRL + ALT + T.

    • Mac: Navega a /Applications/Utilities/ y haz doble clic en Terminal.

  3. Escribe esto:

    1. adb shell

    2. su

    3. Elige una opción: (por seguridad, monta /system de nuevo como RO cuando termines)

      • Montar systema RW: mount -o rw,remount /system
      • Montar systema RO: mount -o ro,remount /system

Método 2:

  1. Abre terminal en tu teléfono Android (descárgalo aquí):

  2. Escribe esto en el terminal:

    1. su

    2. Elige una opción: (por seguridad, monta /system de nuevo como RO cuando termines)

      • Montar systema RW: mount -o rw,remount /system
      • Montar systema RO: mount -o ro,remount /system

Android 2.3

Para las personas que ejecutan Android 2.3 y el comando falla, mira esta respuesta: https://android.stackexchange.com/a/125437/95577

5 votos

Parece que este (método 1) ya no funciona en Android más nuevos. Estoy tratando de hacerlo en un emulador de Android con Android 6, pero siempre obtengo un error "mount: sistema de archivos de solo lectura". He ejecutado adb root, pero no hace ninguna diferencia. ¿Alguna idea de qué se podría hacer?

1 votos

Lo tengo, más o menos. Tengo que usar la opción de línea de comandos -writable-system al iniciar el emulador. Luego, el primer remount de adb parece tener éxito. Parece... aún no lo he visto cambiar a rw.

0 votos

Emulador -grabable sigue siendo la respuesta correcta.

5voto

Marenz Puntos 642

-writable-system para el emulador

Cuando se inicia el emulador después de compilarlo, debes usar:

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

Luego, para ejecuciones futuras, debes mantener la opción -writable-system, de lo contrario los cambios en la imagen no serán visibles:

emulator -show-kernel -verbose -writable-system

-verbose nos muestra que el emulador cambia desde el -drive por defecto:

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

a:

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

Por lo tanto:

  • elimina ,read-only

  • usa system-qemu.img.qcow2 en lugar de system-qemu.img.

    Esto implica que los cambios solo serán visibles si pasas -writable-sytem en los arranques futuros después de que se haya realizado el cambio!

    Vemos que la imagen qcow2 es simplemente una pequeña superposición sobre la imagen base ya que:

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

    contiene:

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

El comando -help del emulador también confirma esto:

emulator -help

contiene:

-writable-system     hacer que la imagen del sistema y del proveedor sea escribible después de 'adb remount'

adb remount + adb root

Creo que esto es simplemente un atajo para mount como se menciona en https://android.stackexchange.com/a/110928/126934, pero es muy conveniente:

adb root
adb remount
adb shell

adb help contiene:

 root                     reiniciar adbd con permisos de root
 remount
     remontar las particiones /system, /vendor y /oem como de escritura

Restaurar la imagen del sistema original

Igual que para userdata: elimina la superposición .qcow2 y vuelve a generarla manualmente: https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and-running-it-on-the

0voto

Mazen Mahmoud Puntos 11

Realmente luché con eso hasta que utilicé MT Manager (probé muchos exploradores de root y solo MT Manager funciona para mí). No está en Play Store, así que tienes que buscarlo en línea.

Si no funcionó, prueba el módulo Magisk llamado OverlayFS. Si no puedes encontrarlo, aquí está: OverlayFS (descarga directa desde XDA).

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X