Comprender el almacenamiento con alcance de Android: qué cambió y por qué es importante

A smartphone beside small storage drawers with one locked, illustrating Android scoped storage

Si alguna vez ha intentado administrar archivos en un dispositivo Android, probablemente haya notado que las cosas funcionan de manera diferente según la versión de Android que esté ejecutando. A partir de Android 10, Google introdujo un cambio fundamental en la forma en que las aplicaciones interactúan con el sistema de archivos. Este cambio, conocido como Almacenamiento con alcance, redefinió las reglas sobre la lectura y escritura de archivos en el almacenamiento compartido. Para los usuarios que descargan aplicaciones, administran archivos OBB o trabajan con administradores de archivos, comprender el almacenamiento con alcance es esencial.

En este artículo, exploraremos qué es el almacenamiento de alcance, por qué Google lo implementó, cómo afecta a los usuarios y desarrolladores cotidianos, y qué significa para cualquiera que instale archivos APK o XAPK fuera de Play Store.

El problema del antiguo modelo de almacenamiento

Antes de Android 10, cualquier aplicación que solicitara el permiso READ_EXTERNAL_STORAGE o WRITE_EXTERNAL_STORAGE podía acceder a prácticamente cualquier archivo en el almacenamiento compartido del dispositivo. Esto incluía fotos, documentos, descargas e incluso archivos creados por otras aplicaciones. Si bien esto hizo que la administración de archivos fuera conveniente, generó serios problemas de privacidad y seguridad.

Considere una sencilla aplicación de linterna. En el modelo anterior, si le concedías permiso de almacenamiento, podía leer silenciosamente tus fotos, escanear tus documentos descargados o incluso modificar archivos pertenecientes a otras aplicaciones. No hubo control granular. O le diste a una aplicación acceso completo a todo tu almacenamiento o se lo negaste por completo.

Este amplio acceso generó problemas en el mundo real. Algunas aplicaciones recopilaron datos de los usuarios escaneando el almacenamiento en busca de archivos confidenciales. Otros dejaron archivos huérfanos que abarrotaban el dispositivo mucho después de que se desinstalara la aplicación. Google necesitaba una solución que equilibrara la usabilidad con la privacidad, y el almacenamiento de alcance fue su respuesta.

Qué hace realmente el almacenamiento con alcance

El almacenamiento con alcance cambia fundamentalmente la relación entre las aplicaciones y el sistema de archivos. Según este modelo, cada aplicación tiene su propia zona de pruebas privada en un almacenamiento externo, normalmente ubicado en /Android/data/[package.name]/. Las aplicaciones pueden leer y escribir libremente dentro de su propia zona de pruebas sin necesidad de ningún permiso.

Sin embargo, acceder a archivos fuera de este entorno limitado requiere pasar por API controladas. Así es como funciona el nuevo modelo:

Almacenamiento específico de la aplicación

Cada aplicación tiene un directorio dedicado al que solo ella puede acceder. Cuando se desinstala la aplicación, este directorio se limpia automáticamente. Ninguna otra aplicación puede leer o escribir en esta ubicación sin acceso de root. Esto elimina el problema de los archivos huérfanos y evita el espionaje de datos entre aplicaciones.

Colecciones de medios

Para archivos multimedia compartidos como fotos, videos y audio, Android proporciona la API MediaStore. Las aplicaciones pueden aportar contenido multimedia a colecciones compartidas y leer archivos creados por otras aplicaciones, pero únicamente a través de esta interfaz estructurada. Una aplicación puede ver sus propios medios sin ningún permiso, pero acceder a los medios de otras aplicaciones requiere los permisos READ_MEDIA_IMAGES, READ_MEDIA_VIDEO o READ_MEDIA_AUDIO introducidos en Android 13.

Marco de acceso al almacenamiento

Para documentos y otros archivos no multimedia, las aplicaciones deben utilizar Storage Access Framework (SAF). Esto presenta un selector de archivos del sistema al usuario, quien elige explícitamente a qué archivos o directorios puede acceder la aplicación. La aplicación nunca obtiene acceso general a todo el sistema de archivos.

El permiso MANAGE_EXTERNAL_STORAGE

Para aplicaciones que realmente necesitan un amplio acceso a archivos, como administradores de archivos, herramientas de respaldo y software antivirus, Android proporciona el permiso MANAGE_EXTERNAL_STORAGE. Sin embargo, este permiso requiere una aprobación especial de Google para las aplicaciones distribuidas a través de Play Store, y los usuarios deben otorgarlo manualmente a través de la configuración del sistema en lugar de un simple cuadro de diálogo.

El cronograma de implementación

Google no impuso el almacenamiento con alcance de la noche a la mañana. La transición se produjo gradualmente:

  • Se introdujo el almacenamiento con alcance Android 10 (API 29):, pero las aplicaciones podían optar por no utilizar requestLegacyExternalStorage="true" en su manifiesto. Esto dio tiempo a los desarrolladores para adaptarse.
  • Android 11 (API 30): La marca heredada se ignoró para las aplicaciones orientadas a API 30 o superior. El almacenamiento con alcance se volvió obligatorio para aplicaciones nuevas y actualizadas en Play Store.
  • Android 12 y posteriores: Se realizaron más mejoras, incluidos permisos de medios granulares y un rendimiento SAF mejorado.
  • Android 13 (API 33): El permiso amplio READ_EXTERNAL_STORAGE quedó obsoleto en favor de permisos de medios específicos.
  • Android 14 (API 34): Se introdujo el acceso parcial a fotografías y vídeos, lo que permite a los usuarios otorgar acceso a archivos específicos en lugar de bibliotecas multimedia completas.

Cómo el almacenamiento con alcance afecta la carga lateral

Para los usuarios que instalan aplicaciones desde fuera de Play Store, el almacenamiento con alcance presenta algunos desafíos prácticos que vale la pena comprender.

Descarga y acceso a archivos APK

Cuando descargas un archivo APK a través de un navegador, normalmente llega a la carpeta Descargas. En el almacenamiento con alcance, la aplicación del navegador es propietaria de ese archivo. Si desea instalarlo usando una aplicación diferente, como un administrador de archivos, ese administrador de archivos necesita el acceso adecuado. La mayoría de los administradores de archivos modernos manejan esto correctamente a través de SAF, pero los más antiguos pueden tener dificultades.

El instalador del paquete del sistema aún puede acceder a los archivos que seleccione explícitamente a través del selector de archivos, por lo que el flujo básico de descarga e instalación de un APK aún funciona. Sin embargo, los flujos de trabajo de instalación automatizados que dependían del acceso directo a la ruta del archivo pueden fallar.

Archivos OBB y datos de juegos

Aquí es donde el almacenamiento con alcance crea la mayor fricción para los cargadores laterales. Muchos juegos grandes utilizan archivos OBB (Opaque Binary Blob) almacenados en /Android/obb/[package.name]/. Con el modelo anterior, simplemente podía copiar archivos OBB al directorio correcto utilizando cualquier administrador de archivos.

Con el almacenamiento con ámbito, el directorio /Android/obb/ está restringido. En Android 11 y versiones posteriores, las aplicaciones normales no pueden escribir en el directorio OBB de otra aplicación. Esto significa que si descarga un archivo XAPK que contiene datos OBB, el instalador necesita un manejo especial para colocar esos archivos correctamente.

Herramientas como nuestra Extractor OBB pueden ayudarlo a extraer archivos OBB de paquetes XAPK, pero colocarlos en el directorio correcto en versiones más recientes de Android puede requerir el uso de un administrador de archivos con permiso MANAGE_EXTERNAL_STORAGE o el uso de comandos ADB desde una computadora.

Consideraciones de instalación de XAPK

Los archivos XAPK agrupan un APK junto con datos OBB y, a veces, dividen las configuraciones de APK. Instalarlos en dispositivos con Android 11 o posterior requiere un instalador que comprenda las restricciones de almacenamiento específicas. El instalador debe tener el permiso MANAGE_EXTERNAL_STORAGE o utilizar las API adecuadas para colocar los archivos OBB en la ubicación correcta.

Esta es una de las razones por las que puede resultar útil convertir archivos XAPK al formato APK estándar. Un APK independiente no requiere la colocación de archivos OBB, lo que simplifica el proceso de instalación en las versiones más recientes de Android. Puede utilizar nuestro Convertidor de XAPK a APK para extraer el APK base de un paquete XAPK.

Lo que los desarrolladores necesitan saber

Si está desarrollando aplicaciones de Android, el almacenamiento con alcance requiere repensar cómo maneja los archivos:

  • Utilice directorios específicos de aplicaciones para cualquier archivo que solo su aplicación necesite. Estos no requieren permisos y se limpian automáticamente al desinstalarlos.
  • Utilice la tienda multimedia para fotos, vídeos y audio que deberían ser visibles para otras aplicaciones y sobrevivir a la desinstalación.
  • Utilice SAF cuando su aplicación necesita funcionar con documentos o directorios seleccionados por el usuario.
  • Evite rutas de archivos codificadas. Caminos como /sdcard/MyApp/ ya no son confiables. Utilice Context.getExternalFilesDir() en su lugar.
  • El comportamiento de Pruebe en múltiples niveles de API. difiere significativamente entre Android 10, 11, 13 y 14.

Estrategias de migración

Si su aplicación almacenó previamente archivos en almacenamiento compartido, necesita un plan de migración. El enfoque recomendado es copiar los archivos existentes al almacenamiento específico de la aplicación en el primer inicio después de la actualización y luego eliminar las copias antiguas. Utilice Environment.getExternalStorageDirectory() con el indicador heredado durante el período de transición para leer archivos antiguos y luego muévalos a la nueva ubicación.

Conceptos erróneos comunes

"El almacenamiento con alcance significa que las aplicaciones no pueden acceder a ningún archivo"

Esto es falso. Las aplicaciones aún pueden acceder libremente a sus propios archivos, contribuir a colecciones de medios compartidos y solicitar acceso a archivos específicos a través del selector del sistema. Lo que cambió es que las aplicaciones ya no pueden explorar silenciosamente todo el sistema de archivos.

"Los administradores de archivos no funcionan en las nuevas versiones de Android"

Los administradores de archivos que solicitan MANAGE_EXTERNAL_STORAGE aún funcionan. El usuario sólo necesita otorgar este permiso especial a través de la configuración. Los administradores de archivos más populares ya se han adaptado a este requisito.

"El almacenamiento con alcance sólo afecta a la tarjeta SD"

El almacenamiento con alcance se aplica a todo el almacenamiento compartido, incluido el almacenamiento compartido interno. El término "almacenamiento externo" en Android se refiere al almacenamiento compartido al que pueden acceder múltiples aplicaciones, no necesariamente una tarjeta SD física.

Consejos prácticos para los usuarios

Si descargas aplicaciones o administras archivos con regularidad en tu dispositivo Android, aquí tienes algunas recomendaciones prácticas:

  1. Utilice un administrador de archivos moderno que soporta MANAGE_EXTERNAL_STORAGE. Aplicaciones como Solid Explorer, MiXplorer y Total Commander se han adaptado bien al almacenamiento con alcance.
  2. Conceda permisos con cuidado. Cuando un administrador de archivos solicita "Acceso a todos los archivos", comprenda que este es el permiso MANAGE_EXTERNAL_STORAGE y es necesario para una funcionalidad completa.
  3. Utilice ADB para operaciones de archivos difíciles. Si no puede colocar archivos OBB a través de un administrador de archivos, conectar su dispositivo a una computadora y usar adb push evita por completo las restricciones de almacenamiento específicas.
  4. Convierta paquetes complejos a formatos más simples. Si un archivo XAPK le está dando problemas en un dispositivo más nuevo, extraer solo el componente APK puede ser el camino de menor resistencia.
  5. Mantenga actualizadas sus aplicaciones de instalación. Es posible que las versiones anteriores de los instaladores de XAPK no manejen correctamente el almacenamiento con alcance.

El futuro del almacenamiento de Android

Google continúa perfeccionando el modelo de almacenamiento con cada versión de Android. Android 14 introdujo el acceso parcial a los medios, lo que permite a los usuarios compartir fotos específicas con una aplicación en lugar de toda su biblioteca. Se espera que Android 15 traiga más mejoras al rendimiento y la usabilidad del Storage Access Framework.

La tendencia es clara: Android se está moviendo hacia un modelo en el que los usuarios tienen un control detallado sobre lo que cada aplicación puede ver y modificar. Si bien esto crea cierta fricción para los usuarios avanzados y los usuarios de carga lateral, mejora significativamente la privacidad y la seguridad para la base de usuarios más amplia.

Trabajar con almacenamiento con alcance sin romper los datos de la aplicación

El almacenamiento con alcance representa uno de los cambios más significativos en la arquitectura de Android en los últimos años. Al restringir las aplicaciones a sus propios entornos limitados y exigir el consentimiento explícito del usuario para un acceso más amplio, Google ha mejorado drásticamente la postura de privacidad de la plataforma. Para los usuarios que descargan aplicaciones y administran archivos manualmente, comprender estas restricciones les ayuda a solucionar los puntos de fricción ocasionales. Y para los desarrolladores, adaptarse al almacenamiento específico no es opcional sino más bien un requisito fundamental para el desarrollo moderno de Android.

Instalar archivos APK, colocar archivos OBB y gestionar el almacenamiento en el día a día pasan por el mismo sistema: el almacenamiento con alcance (scoped storage). Una vez que comprenda cómo funciona, usted será quien tenga el control de su dispositivo, en lugar de estar a merced de aplicaciones que podrían abusar del acceso amplio a archivos.

Diseñado y documentado por Mst Shaefale Desarrollador líder y arquitecto de paquetes de Android • Verificado en Android 12–15

Mst Shaefale mantiene la fusión XAPK/APKS del lado del cliente, el analizador de manifiesto binario y las herramientas de firma APK v1+v2 en xapktoapk.com. ¿Detecta un comando obsoleto o un cambio en el sistema operativo? Envíe una nota editorial.