Android 6 (cyanogenmod 13) acceso de escritura de tarjeta SD externa

Siempre usé la aplicación "servidor Samba" en todos mis dispositivos Android para cargar archivos, funcionó muy bien con CM12, pero en CM13, incluso con acceso raíz, el servidor Samba no puede escribir en una tarjeta SD externa, ni tampoco la aplicación "servidor SSH". Como yo, hubo algunos cambios en Android 6, pero ¿hay alguna forma de otorgar acceso de escritura a la tarjeta SD externa para algunas aplicaciones? Probé diferentes servidores samba, todos ven una tarjeta SD externa y pueden leer desde allí, pero simplemente no pueden escribir.

Tengo el mismo problema con Cyanogenmod 13 en dos dispositivos diferentes, traté de formatear la tarjeta SD externa en ext3, ext4, fat32, exfat, sin ninguna diferencia. Hay muchas aplicaciones de "reparación de tarjeta SD" en Play Store, pero todas, como puedo ver, para Android 5, y simplemente no funcionan para Android 6.

Entonces, ¿es un problema de SELinux? ¿Debo agregar de alguna manera al usuario desde el que se ejecuta una aplicación en el media_rwgrupo? ¿Cómo puedo hacer esto? Hay idsalida después de la conexión ssh:

uid=10138(u0_a138) gid=10138(u0_a138) groups=10138(u0_a138),3002(net_bt),3003(inet),9997(everybody),50138(all_a138) context=u:r:untrusted_app:s0:c512,c768

Puede leer pero no puede escribir en una tarjeta SD externa, ¿alguna idea? Gracias.

Respuestas (1)

Como descubrí por ahora, no hay forma de otorgar dicho permiso, excepto ejecutar toda la aplicación como root, y eso no es fácil (¿o incluso posible?) Sin modificar el código de la aplicación, de todos modos, ejecutar aplicaciones con uid = 0 es un mala idea de todos modos. El problema es que en Android 6 WRITE_EXTERNAL_STORAGEuna aplicación debe solicitar permiso en tiempo de ejecución, y si la aplicación no es compatible con Android 6, básicamente no hay nada que podamos hacer. Espero que los desarrolladores adapten pronto su aplicación a la nueva realidad de Android 6.