Estoy tratando de montar una tarjeta SD con formato EXT4 bajo Cyanogenmod 13.1 (Android 6.0.1).
Hasta ahora, tengo scripts de configuración para montar la tarjeta /mnt/ext_sdcard
durante el arranque. Mi entendimiento actual es que el servicio "sdcard" debe invocarse para crear un montaje FUSE que apunte al punto de montaje real que eventualmente conducirá al escáner de medios al disco recién montado.
Seguir algunos hilos de foro y documentación más antiguos 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 sin mensajes de error/salida.
Mi pregunta: ¿Estoy haciendo algo mal, o este comando está en desuso en 6.0.1 (el hilo de documentos/foro parecía estar relacionado con KitKat)? ¿Cuál es la sintaxis/argumentos correctos para usar este comando?
¿Está poniendo este comando en un archivo init.*.rc? Tengo entendido que tendría esto en un init.extmount.rc por ejemplo. Esto requiere extraer y volver a empaquetar 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 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
En la configuración de almacenamiento de Android 6+ :
El montaje de volúmenes físicos de almacenamiento externo está a cargo de
vold
, que realiza operaciones de preparación para preparar los medios antes de exponerlos a las aplicaciones.
...
Los servicios FUSE codificados se han eliminado de losinit.rc
archivos específicos del dispositivo y, en cambio, se bifurcan dinámicamentevold
cuando es necesario.
Por lo tanto, los sdcard
servicios definidos en *.rc
los archivos ya no son necesarios, ni storage_list.xml
se mantienen dentro framework-res.apk
. En su lugar vold
, administra completamente los dispositivos de almacenamiento definidos con bandera voldmanaged=
en fstab
. Vea más detalles en el viaje de almacenamiento de Android .
En Android 9, la compatibilidad con FUSE se eliminó por completo del sdcard
binario y se reemplazó con sdcardfs
. sdcardfs
se puede montar directamente usando mount
el comando, por sdcard
lo que no es necesariamente necesario. Sin embargo, desde Android 6 a 8 , el sdcard
binario debe montar un sistema de archivos emulado si se ejecuta con los argumentos adecuados. Puede ver el error al iniciar sesión logcat
.
También puede usar una herramienta basada en FUSE de terceros bindfs
para lograr lo mismo. Consulte los detalles en ¿Cómo vincular el montaje de una carpeta dentro de /sdcard con los permisos correctos?
jake
jake
service: Unknown command sdcard
. Luego probéservice call sdcard...
cuál devolvióService sdcard does not exist
. También encontré dos instancias en ejecuciónsdcard
en mi sistema y descubrí que fueron invocadas con/system/bin/sdcard -u1023 -g1023 -U0 /mnt/media_rw/8005-91F9 8005-91F9
. ¿Este comando varía entre las ROM de Android?ben baltz
ben baltz
jake
ben baltz
jake