Recientemente rooteé mi Droid X y todo parece estar funcionando perfectamente. Hice algunos cambios para build.prop
y cuando lo hago adb push build.prop /system/
me sale el siguiente error: failed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system
.
¿Cómo puedo arreglar esto?
adb remount
, ¿qué obtienes?Respuestas:
No todos los teléfonos y versiones de Android tienen cosas montadas de la misma manera.
Limitar las opciones al volver a montar sería lo mejor.
Simplemente vuelva a montar como rw (lectura / escritura):
Una vez que haya terminado de hacer cambios, vuelva a montar en ro (solo lectura):
fuente
adb root
o obtendrá un Permiso denegado al empujar el archivo.Balazss-MBP:tools varh1i$ adb shell
generic_x86_64:/ # mount -o rw,remount /system
'/dev/block/vda' is read-only
mv hosts /system/etc/hosts
funciona para mí y parece ser la solución más simple.
fuente
Not running as root. Try "adb root" first.
. Y luegoadbd cannot run as root in production builds
.$ adb disable-verity
reiniciar el dispositivo antes de poder ejecutarlo$ adb remount
Not running as root. Try "adb root" first.
. Entréadb root
y luego otra vezadb remount
pero sigue siendo el mismo error:Not running as root. Try "adb root" first.
Lo saqué de un foro de Android donde hice la misma pregunta. Espero que esto ayude a alguien más.
En un emulador de terminal en el teléfono:
Luego, en el indicador de cmd, haga el
adb push
fuente
adb shell <command>
se puede usar desde la computadora (si no tiene una terminal en su teléfono)Si bien sé que la pregunta es sobre el dispositivo real, en caso de que alguien llegue aquí con un problema similar en el emulador, con cualquier herramienta que sea la más reciente a partir de febrero de 2017, el emulador debe iniciarse desde la línea de comandos con:
Para que cualquier cosa sea grabable para el
/system
. Sin esta bandera, ninguna combinación deremount
omount
le permitirá a uno escribir/system
.Después de que se inicia el emulador con esa bandera, un solo
adb remount
despuésadb root
es suficiente para obtener permisos para presionar/system
.Aquí hay un ejemplo de la línea de comando que uso para ejecutar mi emulador:
El valor de las
-avd
banderas proviene de:fuente
Creo que la forma más segura es volver a montar el sistema / como lectura-escritura, usando:
y cuando termine, vuelva a montarlo como solo lectura:
fuente
En mi Samsung galaxy mini S5570 (después de rootear el teléfono celular)
Puño, como root, corrí:
como usuario normal:
Conceder permisos de root en la pantalla táctil
enumere todos los puntos de montaje que tenemos y podemos ver, en mi caso, que / dev / stl12 se montó en / system como ro (solo listo), por lo que solo necesitamos hacer:
fuente
Pruebe lo siguiente en el símbolo del sistema:
fuente
adb root remount
Esto funciona para mí y es la solución más simple.
fuente
Esto es lo que funcionó para mí. Estaba ejecutando un dispositivo Android 7.1.1 (Nougat) emulado.
En una terminal, presioné el siguiente comando. Una cosa a tener en cuenta es la bandera del sistema de escritura
En otra pestaña
Todos los cambios que realice en los contenidos / system sobrevivirán a un reinicio.
fuente
Lo comprobé con el emulador y seguí trabajando.
Como se mencionó anteriormente también, ejecute el segundo paso en un solo disparo.
fuente
Abra el emulador de terminal en el teléfono: luego
después de que se inicia ese demonio
entonces la lectura solo se convierte en lectura-escritura.
fuente
funciona para mi
fuente
fuente
Encontré este artículo de google y pensé que agregaría los pasos necesarios en un Sony Xperia Z (4.2.2).
Sony tiene un proceso de vigilancia que detecta cuándo ha cambiado ro a rw en / y / system (estos son los únicos que estaba tratando de modificar) y posiblemente otros.
Lo siguiente fue lo que ejecuté para realizar los cambios que estaba tratando de lograr. Pegué estos en una ventana, porque la eliminación del bit de ejecución de / sbin / ric debe hacerse rápidamente para evitar que se reinicie. (Lo intenté
stop ric
; esto no funciona, aunque funcionó en una versión anterior de Android en el teléfono).Modifiqué el archivo de hosts aquí, por lo que este es el lugar donde realiza los cambios que necesita en el sistema de archivos. Para dejar las cosas como las encontramos, haga esto:
En ese punto, ric debería reiniciarse automáticamente. (Se reinició para mí automáticamente).
fuente
Agregando un poco más a la respuesta de Jan Bergström: Debido a que Android es un sistema basado en Linux, y la ruta en Linux contiene barras diagonales (../), mientras usa el comando push, use "/" para definir la ruta de destino en el dispositivo Android.
Por ejemplo, el comando va: adb push C: \ Users \ admin \ Desktop \ 1.JPG sdcard / pictures /
Tenga en cuenta que aquí, las barras diagonales inversas se utilizan para definir la ruta de origen del archivo que se va a empujar desde la PC con Windows y las barras diagonales inversas se utilizan para definir la ruta de destino porque Android es un sistema basado en Linux. No tiene que actuar como raíz para usar este comando y, además, funciona perfectamente bien en dispositivos de producción.
fuente
A veces aparece el error porque la ubicación de destino en el teléfono no existe. Por ejemplo, la ubicación de almacenamiento externo de algunos teléfonos Android es en
/storage/emulated/legacy
lugar de/storage/emulated/0
.fuente
Gracias, Sérgio , por el comando "montar" sin idea de parámetros. Que había necesidad de hecho
adb push
en/data/data/com.my.app/lib
algún tema de prueba, y consigo "sistema de ficheros de sólo lectura" mensaje.El comando ls me muestra:
root@android:/ # ls -l /data/data/com.my.app/
drwxrwx--x u0_a98 u0_a98 2016-05-06 09:16 cache drwxrwx--x u0_a98 u0_a98 2016-05-06 09:04 files lrwxrwxrwx system system 2016-05-06 11:43 lib -> /mnt/asec/com.my.app-1/lib
Por lo tanto, se entiende que el directorio "lib" está separado de otros directorios de aplicaciones.
El comando
mount -o rw,remount /mnt/asec
no resolvió el problema "r / o fs", quiere el parámetro del dispositivo antes del parámetro del directorio.El comando "df" tampoco ayudó, pero muestra que mi
/mnt/asec/com.my.app-1
directorio está en el punto de montaje separado.¡Entonces miro
mount
y listo!root@android:/ # mount ......... /dev/block/dm-4 /mnt/asec/com.my.app-1 ext4 ro,dirsync,relatime 0 0
Los siguientes pasos ya se describen hacia arriba: volver a montar en RW, empujar y volver a montar en RO.
fuente
Sames que debe extraer y reempaquetar initrc.img y editar el
init
archivo con el código de mount / systemfuente
¿Copiar archivos a la tarjeta SD?
Bueno, supongo que te gusta copiar datos a la tarjeta Sd desde la computadora del desarrollador. Es posible que haya rooteado el dispositivo y haya hecho que el área que aborda esté disponible. Tuve el mismo problema al cargar archivos de datos para mi aplicación (Android Studio 1.3.2 en Win7), pero.
Entonces, por ejemplo, el comando adb puede verse así:
adb push C: \ testdata \ t.txt /sdcard/download/t.txt
fuente
Si falla la copia del archivo de solo lectura, puede intentar ubicar el archivo original en el directorio raíz y modificarlo con un editor de texto raíz (preferiblemente) editor de texto RB, viene con la aplicación ROM Toolbox.
fuente
Pruebe esto en un emulador de terminal como root:
fuente
En mi caso estaba usando el comando adb push
~/Desktop/file.txt ~/sdcard/
Lo cambié
~/Desktop/file.txt /sdcard/
y luego funcionó.Asegúrese de desconectar y volver a conectar el teléfono.
fuente
Como mencionó chen-xing, la forma más simple es:
Pero para mí tuve que cambiar mi configuración primero:
Configuración → Opciones de desarrollador → Acceso raíz
Asegúrese de que ADB tenga acceso de root:
fuente