sideload - Un comando de terminal para un Android rooteado/Sistema como de lectura/escritura
como usar terminal emulator para android (9)
Estoy escribiendo una aplicación de Android que necesita copiar un archivo a la partición "/ system" en tiempo de ejecución. Tengo los comandos para ejecutar "su" y puedo solicitar permisos SuperUser y ejecutar comandos como root. Pero no sé cómo hacer que esta aplicación sea universal en varios dispositivos, ya que el comando de montaje puede variar según el lugar donde realmente esté montado el / system. Aquí está el comando que más se usa:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
Pero sé que mtdblock3 podría ser diferente en algunos dispositivos (y para el caso, supongo que también podría yaffs2). Entonces, mi pregunta es: ¿hay un comando universal que funcione en todos los teléfonos? ¿O hay una manera de averiguar en tiempo de ejecución cuáles son los parámetros correctos?
En lugar de
mount -o rw, remontar / sistema /
utilizar
mount -o rw, remontaje / sistema
tenga en cuenta el ''/'' al final del comando. preguntas por qué esto importa? / system / es el directorio en / system while / system es el nombre del volumen.
Esto es lo que funciona en mi primera generación Droid X con Android versión 2.3.4. Sospecho que esto será universal. Pasos:
sistema raíz e instalar su.
Instalar busybox
Instale un programa de terminal.
para montar el sistema rw primero su luego
busybox mount -o rw,remount system
Para remontar ro
busybox mount -o ro,remount system
Tenga en cuenta que no hay barras en "sistema".
No necesita pasar ambos argumentos al realizar un remontaje. Simplemente puede pasar el punto de montaje (aquí / sistema). Y / el sistema es universal entre los dispositivos Android.
Puede ejecutar el comando mount sin parámetro para obtener información de la partición antes de construir su comando mount. Aquí hay un ejemplo del comando mount sin parámetros superados por mi HTC Hero.
$ mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock3 /system yaffs2 rw 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=
1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,s
hortname=mixed,utf8,errors=remount-ro 0 0
Puede probar el comando adb remount para volver a montar / system como lectura de escritura
adb remount
Si ha rooteado su teléfono, pero no tiene busybox, solo almacene toybox, aquí un trazador de líneas para ejecutar como root:
mount -o rw, remontar $ (mount | sed ''/ / system /! d'' | cut -d "" -f 1) / system
toybox no admite la opción "-o remount, rw"
si tienes busybox, puedes usarlo:
busybox mount -o remount, rw / system
Tratar
mount -o remount, rw / system
Si no se imprime un mensaje de error, funciona.
O bien, deberías hacer lo siguiente.
Primero, asegúrate de que el tipo fs.
montar
Emita este comando para descubrirlo.
Entonces
mount -o rw, remount -t yaffs2 / dev / block / mtdblock3 / system
Tenga en cuenta que el fs (yaffs2) y el dispositivo (/ dev / block / mtdblock3) dependen de su sistema.
Yo tuve el mismo problema. Así que aquí está la respuesta real: monte el sistema en /proc
. Aquí está mi comando:
mount -o rw,remount /proc /system
Funciona, y de hecho es la única forma en que puedo superar el problema del sistema de solo lectura.
Yo uso este comando:
mount -o rw,remount /system