Escribir en la tarjeta de memoria usando Android 4.4

En sus inicios los teléfonos inteligentes (smartphones) venían con una pequeña memoria interna que permitía instalar las aplicaciones. Con la evolución de la tecnología, esta memoria fue aumentando poco a poco para cumplir con las nuevas necesidades que aparecían. Como los terminales tenían cada vez más memoria las aplicaciones empezaron a crecer también en tamaño y prestaciones. Llego un momento en el que las aplicaciones necesitaban más recursos que los que proporcionaba el teléfono. Para superar esta limitación los terminales empezaron a incluir la posibilidad de usar una tarjeta de memoria externa. Esta forma de trabajar tiene ventajas pero al mismo tiempo tiene algunos inconvenientes.

La memoria externa es varios órdenes de magnitud más lenta que la memoria interna. Una tarjeta SD tiene dos parámetros importantes. El primero de ellos es la capacidad y se mide en MB. El segundo parámetro es la clase e indica lo rápida que es una tarjeta. Supongamos que tenemos una aplicación que necesita escribir 30 MB antes de poder empezar a trabajar. Como está instalada en la memoria externa usará esta memoria. Las velocidades que tiene cada clase son las siguientes:

  • 2: 2 MB/s
  • 4: 4 MB/s
  • 10: 10 MB /s

Al  usar una tarjeta de clase 2 la aplicación tardaría 15 segundos1 en arrancar. El tiempo se reduciría 7,5 segundos con una tarjeta de clase 4. En el último caso de este ejemplo el tiempo sería únicamente de 3 segundos. Con este ejemplo simple quiero mostrar la importancia que tiene la clase de una tarjeta en el rendimiento de una aplicación. El HTC Desire fue el terminal hermano del primer Google Nexus. Por cuestiones de diseño la memoria interna que podría usar el usuario era de unos 100 / 120 MB. Una de las soluciones que dio la comunidad a este problema fue mover el sistema entero a la tarjeta SD. A modo de ejemplo, cuando usabas una tarjeta de clase 2 o de clase 4 (no recuerdo ahora mismo el dato) el tiempo de arranque de Android podría ser superior a 15 minutos. La misma configuración usando una tarjeta de clase 10 tardaba un par de minutos.

Cuando el sistema detecta que un terminal lleva una tarjeta SD da la posibilidad de mover las aplicaciones instaladas tanto la aplicación principal como los datos asociados. Se puede dar el caso también de tener la aplicación principal en la memoria interna y los datos en la memoria externa. Por ejemplo, instalamos un juego que ocupa 25 MB en la memoria interna y 300 MB en la SD.

La memoria externa con Kit Kat

Con Android 4.4 (Kit Kat) la cosa empieza a cambiar. Muchos terminales dejan de lado la memoria externa y ofrecen únicamente la memoria interna. El cambio no afecta sólo a estos terminales capados sino que se integra en Android. Con Kit Kat aparecen varias limitaciones que no aparecían antes:

  • Las aplicaciones no se pueden mover a la SD (sin modificaciones).
  • Las aplicaciones sólo pueden escribir en unas carpetas concretas de la SD.

Pongamos un ejemplo para que quede más claro. Tenemos un teléfono con Kit Kat y usamos una aplicación como A Better Camera. Si entramos en los ajustes del programa para configurar como destino de las fotografías la tarjeta de memoria veremos que no se puede activar esa función y tenemos que guardarlas en la memoria interna. Otro ejemplo lo tenemos con Spotify. La versión Premium permite descargar nuestra música favorita para escucharla offline. La aplicación se descarga la música pero sólo en la memoria interna. Si juntamos estos dos ejemplos con un terminal que tenga 8 GB de memoria estaremos en problemas.

La primera de las dos limitaciones que hemos visto no tiene una solución directa y depende del fabricante del teléfono (no siempre es posible). Para la segunda limitación hay más suerte y se puede superar sin demasiados problemas. La única condición que tenemos que cumplir es la de rootear el terminal. Este proceso no es complicado aunque conviene realizarlo paso a paso. Si tenéis un terminal de bq podéis usar los tutoriales de tvcastro. En el caso de tener otro terminal lo más práctico es buscar la información en el foro de HTC Mania.

Escribir en la SD utilizando Kit Kat

Supongamos que Android está formado por el sistema operativo y los datos del usuario. Dentro de los datos del usuario tenemos los teléfonos, las fotografías o las aplicaciones que instalamos. La información sólo puede circular en un sentido: las aplicaciones del sistema pueden leer los datos del usuario pero el usuario no puede leer los archivos del sistema. De esta forma se evita que el usuario pueda romper el sistema modificando los archivos críticos.

Al rootear un terminal esta limitación desaparece y el usuario puede modificar cualquier archivo del sistema. Es un arma de doble filo ya que por una parte nos facilita personalizar el sistema pero al mismo tiempo puede hacer que no arranque y tengamos que reinstalar Android. Para que las aplicaciones puedan escribir en la SD es necesario modificar un archivo del sistema. Esta modificación la podemos aplicar de forma sencilla usando la aplicación SDFix.

SD_Fix

Pantalla inicial de SDFix

SDFix modificará por nosotros el archivo de Android que limita el uso que hacen las aplicaciones de la SD. Al pulsar en el botón Continue pasaremos a una pantalla en la que se comprobarán los requisitos que se tienen que cumplir para hacer la modificación. Si todo es correcto en la tercera pantalla se modificará el archivo de Android. La modificación es permanente y resiste aunque restauremos la configuración de fábrica. Por el contrario, desaparecerá si reinstalamos Android usando un Hard Reset.

Problemas y soluciones

Se puede dar el caso que las aplicaciones no puedan escribir en la tarjeta de memoria después de dar los permisos. La solución la ha encontrado Juan Carlos (el mensaje está en los comentarios) y consiste en formatear la tarjeta de memoria en el teléfono y reiniciar. Después de hacerlo ya debería funcionar sin problemas. Antes de formatear la tarjeta de memoria es obligatorio guardar el contenido en el ordenador.

Conclusiones

SDFix es una aplicación que arregla el problema introducido en Android 4.4 que impide escribir en la tarjeta de memoria. Una de las razones para introducir este bloqueo está en la privacidad del usuario ya que es sencillo extraer la información de una tarjeta de memoria.  En este punto puede ser interesante hacer una copia de seguridad de las aplicaciones y las configuraciones que tenemos usando Titanium Backup. Después de hacer la copia de seguridad es importante pasar los datos al ordenador. De nada sirve hacer una copia de los datos y perder al mismo tiempo el teléfono y la tarjeta de memoria que hay dentro.

Para cualquier duda podéis utilizar los comentarios de la página.

21 comentarios
  1. mimecar
    mimecar Dice:

    Buenas tardes Francisco

    Hay que diferenciar entre mover una aplicación a la SD y permitir que una aplicación escriba en la SD. En el primer caso es necesario que la versión de Android tenga habilitada esa función (la de mover las aplicaciones a la SD). El tutorial se aplica en el segundo caso en el que tenemos una aplicación en la memoria interna y queremos que pueda escribir en la tarjeta de memoria si está preparada. Por ejemplo, puedes tener una aplicación de cámara que permita en las opciones de la aplicación guardar los datos en la SD. Para hacerlo a partir de Android 4.4 necesitas que el terminal esté rooteado y ejecutar la aplicación SD Fix.

    ¿Qué terminal tienes?

    Responder
  2. Elias Muñoz
    Elias Muñoz Dice:

    Buena tarde.

    por favor necesito de su ayuda, descargue el sdfix que recomiendan, pero en el tercer paso me sale un error ¿¿que debo hacer??

    yo tengo un Samsung Galaxy S4 mini.

    y lo que yo quiero hacer es pasar música que descargue desde mi celular a la tarjeta sd atravez de la aplicacion file manager, pero no me deja por la version de android kitkat que tengo en mi celular.

    espero su ayuda.

    gracias.

    Responder
    • mimecar
      mimecar Dice:

      Hola Jessica

      El Moto E si que permite mover las aplicaciones a la SD (dentro de ciertos límites). No podrás mover las aplicaciones de sistema o las aplicaciones que vienen instaladas de serie. Como prueba instala ES Explorer, entra en Ajustes, Aplicaciones y busca la aplicación. En las propiedades te debería salir la opción de mover a la SD.

      Responder
  3. Victor Arroyo
    Victor Arroyo Dice:

    Ya instale el SDfix y mi telefono (samsun galaxi ace 4) rooteado y aun asi no me deja mover datos con los exploradores de archivos a la SD Card 🙁

    Responder
    • mimecar
      mimecar Dice:

      Hola Victor

      ¿Qué explorador de archivos estás usando? ¿Has comprobado que en la aplicación de Super SU le hayas dado permisos de root al explorador de archivos?

      Responder
  4. Juan Carlos
    Juan Carlos Dice:

    Hola estimado,

    En mi caso tengo un Sony M2 Rooteado, con Kit Kat 4.4.4, instalé el SDFix y me dice que la operación se realizó con éxito, pero al reiniciar el móvil sigue sin dejarme pasar aplicaciones a la sdcard, y tampoco puedo escribir en la misma, ni crear carpetas ni nada. El Super Su le dio permisos de Root a los exploradores (uso el ES File Explorer y el Total Commander), y no puedo escribir en la tarjeta de memoria con ninguna. Por qué será?. Saludos y gracias!.

    Responder
  5. Juan Carlos
    Juan Carlos Dice:

    Estimado,

    Hace un rato le he dejado una pregunta (que verifiqué y se grabó ok), pero veo que ha sido borrada?, por qué motivo?. Saludos.

    Responder
    • mimecar
      mimecar Dice:

      Hola Juan Carlos

      Cuando los comentarios son de un usuario anónimo (es decir, que no está registrado en InnerDroid) tienen que pasar antes por moderación para que sean publicados. Me parece que una vez se ha dado como válida una cuenta de correo no pasan por moderación pero lo tendría que comprobar.

      Respecto a tu duda SD Fix permite que las aplicaciones que están preparadas puedan escribir en la SD. Ésto se aplica por ejemplo a las aplicaciones de fotografía o de música. SD Fix no funciona si quieres mover una aplicación y sus datos a la SD ya que esta opción depende de que lo soporte el firmware que tiene el teléfono. Cuando usas ES Explorer, ¿te da algún error al escribir en la SD? ¿Tienes las aplicaciones actualizadas?

      Responder
  6. Juan Carlos
    Juan Carlos Dice:

    Hola Mimecard,

    En la sd no puedo escribir nada, ni siquiera crear una carpeta, ni pasar aplicaciones (las aplicaciones las tengo actualizadas), tampoco si conecto el teléfono a la pc. Lo único que pude pasar es la música y creo que me deja también las fotos, pero nada más. Además de los cambios que el SDFix realiza en el archivo Plataform.xlm, también probé dándole permisos 644 y 666 a este archivo pero no funciona tampoco, no sé qué más hacer. La única forma de grabar algo en la tarjeta es sacándola del teléfono y ponerla en la lectora de tarjeta de la notebook. Se te ocurre algo más que pueda probar?.

    Responder
    • mimecar
      mimecar Dice:

      Prueba con la aplicación File manager HD, según lo que he visto en algunos foros permite pasar archivos del teléfono a la SD. Parece que tu modelo tiene problemas al acceder a la SD aunque tengas root. Una opción podría ser buscar un firmware cocinado que no tuviera las limitaciones del firmware oficial.

      Responder
  7. Juan Carlos
    Juan Carlos Dice:

    Hola Mimecar,

    Por fin pude resolver el problema de escritura en la sdcrad, la solución que me sirvió a mi fue:

    1.- Instalar y ejecutar el SDFix (con celular rooteado)

    2.- Formatear la sdcard externa

    3.- Reiniciar el celular y listo. Problema resuelto.

    Espero le sirva a alguien más.

    Saludos!.

    Juan Carlos.

    Responder
    • mimecar
      mimecar Dice:

      Buenas tardes María,

      ¿Has podido seguir todos los pasos del artículo?
      Si usas un explorador de archivos, ¿puedes escribir sin problema en la SD?

      Responder
  8. francisco javier patiño lugo
    francisco javier patiño lugo Dice:

    buenos dias,tengo un avvio 768,no he podido encontrar la forma de copiar mis fotos del telefono a la sd tengo una aplicacion llamada foto-galeria me da la opcion pero sale un mensaje que dice que el androit no lo permite.

    Responder
    • mimecar
      mimecar Dice:

      Hola Francisco Javier.

      Tendrás que rootear el teléfono y después usar SDFix. En Kit Kat las aplicaciones sólo pueden escribir en su carpeta de la SD. No pueden salir de ella.

      Responder

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.