¿Por qué mi sistema de archivos de repente es de solo lectura?

Algunos antecedentes:

Mi HTC Desire HD tiene varios problemas. El primer problema es que no puedo conectarme con un cable USB.

Entonces descubrí que puedo decirle a ADB que funcione a través de wifi y estuve usando este método durante algún tiempo. Estoy usando VISIONary para temprootear el dispositivo, luego ejecuto una terminal en el dispositivo y ejecuto:

$ su
#setprop service.adb.tcp.port 5555
#stop adbd
#start adbd

Luego uso netcfg para encontrar la IP de mi dispositivo y finalmente en mi PC uso

adb connect {device IP}:5555

Entonces soy capaz de ejecutar en mi pc

adb shell

y use este shell para hacer lo siguiente:

cd /etc
echo 127.0.0.1 localhost >hosts
echo {my pc's IP} some.dnsname.com >>hosts

Aquí es cuando entra en juego el segundo problema : de vez en cuando (parece estar relacionado con matar y borrar el caché de una aplicación que usa some.dnsname.com, pero no siempre) el archivo hosts simplemente vuelve a ser un archivo vacío :(

Al no tener el conocimiento profundo para manejar esos problemas (todavía), simplemente "aprendí a vivir con ellos"...

Hace unos momentos, cuando pasé por este proceso quizás por trigésima vez, un nuevo número decidió hacer mi día más interesante. Intenté modificar (sobrescribir) el archivo de hosts y aparece el siguiente mensaje:

cannot create hosts: read-only file system

Traté de leer algo al respecto y parece que necesito volver a montar el sistema en modo lectura/escritura.

corriendo

mount | grep system

devoluciones

/dev/block/mmcblk0p25 /system ext3 ro,relatime,errors=continue,data=ordered 0 0
none /system/xbin tmpfs rw,relatime,gid=10132 0 0

Necesito ayuda con :
1) Hacer que mi sistema vuelva a leer y escribir (¿qué comando de montaje/remontaje necesito ejecutar?)
2) Comprender qué podría haber causado este nuevo problema.
3) Cualquier idea sobre cómo puedo manejar los dos problemas de fondo también es bienvenida.

gracias por leer...

Respuestas (2)

/systemcasi siempre es de solo lectura por defecto. Simplemente vuelva a montarlo como R/W:

# mount -t ext3 -o rw,remount /dev/block/mmcblk0p25 /system

También hay al menos una aplicación que intentará hacer esto por ti, pero es posible que no funcione en todos los dispositivos.

Otra opción es usar adb root(si su ROM lo permite) para reiniciar adbd como root, luego simplemente emita adb remount. En las ROM donde adbd ya se está ejecutando como root, el primer comando es innecesario y adb remountfuncionará de inmediato. Desde una computadora:

C:> adb root
* Some response about success *
C:> adb remount
Remount succeeded

En cuanto a por qué se está quedando sin aliento, ¿su dispositivo está desbloqueado NAND? Muchos dispositivos HTC intentarán restaurar su /systempartición a un estado de stock si están bloqueados por NAND, haciendo cambios /systemfugaces en el mejor de los casos. Eso es algo así como una conjetura, pero el hecho de que haya notado que está usando VISIONary para rootear temporalmente parece respaldar esa hipótesis.

adb root dice: adbd no puede ejecutarse como root en compilaciones de producción
@epeleg: Tendrás que hacerlo con mountentonces.
¿Podrías adivinar qué ha cambiado de repente? Hice esto muchas veces y el sistema nunca fue de solo lectura.
@epeleg: no estoy del todo seguro de por qué no era de solo lectura para empezar, a menos que esté usando una ROM que se modificó para montarla como r/w en el arranque.
@epeleg: En realidad, pensé en una posibilidad: es posible que VISIONary haya estado montando la partición de su sistema como r/w durante el proceso de raíz temporal. Si algún proceso del sistema apareciera más tarde y viera que los permisos eran incorrectos, podría volver a montarlo como de solo lectura (lo que podría estar relacionado con el bloqueo NAND).
Esto es muy probable. Más tarde descubrí que algo salió mal con VISIONary esta vez. Tenía cientos de procesos ejecutándose en mi teléfono. después de un reinicio, las cosas ahora funcionan como antes. ¿Qué significa NAND bloqueada? y ¿cómo puedo saber si este es el caso con mi teléfono?
@epeleg: Hasta donde yo sé, es básicamente sinónimo de un gestor de arranque bloqueado. Si reinicia su cargador de arranque y no dice "Desbloqueado" en ninguna parte, entonces está bloqueado ( adb reboot bootloaderfunciona para esto, o reboot bootloaderdesde un shell adb). El texto "Desbloqueado" suele ser bastante prominente en los dispositivos HTC cerca de la parte superior de la pantalla del cargador de arranque en algún lugar.
gracias por la información adicional, obviamente tengo mucho más que aprender sobre este sistema operativo. Podría continuar y decir qué es un cargador de arranque bloqueado y qué hace adb reboot bootloader, pero tal vez una pregunta más apropiada sería ¿dónde puedo leer sobre todo esto?
@epeleg: El wiki de CyanogenMod y el wiki de XDA son recursos bastante buenos. Ambos tienen páginas de glosario de términos comunes relacionados con dispositivos Android y enraizamiento y demás, aunque no con mucha profundidad. Honestamente, Google podría ser tu mejor apuesta para una lectura realmente detallada. No creo que tenga ningún enlace porque simplemente encontré la mayoría de ellos en Google en algún momento en el pasado...
adb volver a montar me dadm_verity is enabled on the system partition. Use "adb disable-verity" to disable verity. If you do not, remount may succeed, however, you will still not be able to write to these volumes. remount of /system failed: Read-only file system remount failed

Esto me lo arregló usando Android 11 Ejecutar el emulador de Android con

Android/Sdk/emulator/emulator -avd Pixel_5_API_30 -writable-system --writable-system
adb shell
avbctl disable-verification
adb reboot
adb remount
adb shell
su
mount -o rw,remount -t ext4 /system

Realice los cambios necesarios y vuelva a cambiar el sistema a solo lectura con este

mount -o ro,remount -t ext4 /system