4 votos

Invocar /system/bin/sdcard manualmente a través de la terminal

Estoy tratando de montar una tarjeta SD con formato EXT4 bajo Cyanogenmod 13.1 (Android 6.0.1).

Hasta ahora, he configurado scripts para montar la tarjeta en /mnt/ext_sdcard durante el arranque. Mi entendimiento actual es que el servicio "sdcard" debe entonces ser invocado para crear un montaje FUSE apuntando al punto de montaje real que eventualmente llevará al escáner de medios al disco recién montado.

Siguiendo a algunos de los más antiguos documentación más antigua y los hilos del foro me llevan a este comando en la terminal:

service sdcard /system/bin/sdcard /mnt/ext_sdcard /mnt/test 1023 1023
    class late_start

Cuando ejecuto el comando (como Root, por supuesto), falla con un estado de salida de 1 y no hay mensajes de salida/error.

Mi pregunta: ¿Estoy haciendo algo mal, o este comando está obsoleto en 6.0.1 (los documentos/hilo del foro parecían referirse a KitKat)? ¿Cuál es la sintaxis/los argumentos correctos para utilizar este comando?

0voto

Ben Baltz Puntos 52

¿Está poniendo este comando en un archivo init.*.rc? Tengo entendido que lo tendrías en un init.extmount.rc por ejemplo. Esto requiere extraer y volver a empaquetar el boot.img.

Como no tenía nada mejor que hacer, creé esto: https://github.com/BenBaltz/mountext

Es un zip flashable de recuperación para instalar su script descomprimiendo el boot.img y volviéndolo a empaquetar con las modificaciones.

EDITAR Comandos de terminal

su -c mount -o bind /mnt/ext_sdcard /path/to/new/dir

0voto

Jack Wade Puntos 231

En Android 6+ configuración de almacenamiento :

El montaje de los volúmenes de almacenamiento físico externo se gestiona mediante vold que realiza operaciones de puesta en escena para preparar los medios antes de exponerlos a las aplicaciones.
...
Los servicios FUSE codificados se han eliminado de los dispositivos específicos init.rc y en su lugar se bifurcan dinámicamente desde vold cuando sea necesario.

Así que el sdcard servicios definidos en *.rc ya no son necesarios, ni tampoco storage_list.xml se mantiene dentro de framework-res.apk . En cambio, vold gestiona completamente los dispositivos de almacenamiento definidos con la bandera voldmanaged= en fstab . Ver más detalles en El viaje del almacenamiento de Android .

En Android 9 se eliminó por completo la compatibilidad con FUSE de sdcard binario sustituido por sdcardfs . sdcardfs puede montarse directamente utilizando mount comando, por lo que sdcard no es necesariamente necesario. Sin embargo, de Android 6 a 8 sdcard debería montar un sistema de archivos emulado si se ejecuta con los argumentos adecuados. Puede ver el registro de fallos en logcat .

También puede utilizar una herramienta de terceros basada en FUSE bindfs para lograr lo mismo. Vea los detalles en ¿Cómo se puede montar una carpeta dentro de /sdcard con los permisos correctos?

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