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_rw
grupo? ¿Cómo puedo hacer esto? Hay id
salida 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.
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_STORAGE
una 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.
Irfan Latif