A partir de Android 14, el instalador del paquete de Android puede transferir metadatos sobre una app, como las prácticas de seguridad de los datos, para usarlos en las funciones de la plataforma de Android, como la solicitud de permiso de ubicación actualizada.
Existen dos maneras de proporcionar estos metadatos:
En el caso de una app precargada en la imagen del sistema, los fabricantes de dispositivos pueden proporcionar metadatos sobre la app agregando un archivo en formato XML a la imagen del sistema con el paquete persistente que se describe a continuación.
En el caso de las apps que se instalan o actualizan, para especificar estos metadatos, los instaladores de apps deben pasar un objeto
PersistableBundle
al métodosetAppMetadata()
.
El paquete persistente de nivel superior consta de los pares clave-valor que se mencionan más abajo. A menos que se especifique lo contrario, cada clave es opcional.
version
(obligatorio)- El número de versión del formato de metadatos de la app. Usa
2
como el valor para esta versión actual ylong
como el tipo. Si cambian las claves o los tipos de contenido deAppMetadata
esperados, Android cambiará el número de versión. safety_labels
- Un objeto
PersistableBundle
que especifica las etiquetas de seguridad de la app. system_app_safety_label
- Un objeto
PersistableBundle
que especifica la etiqueta de seguridad de la app del sistema de la app. En el caso de las apps que actúan como servicio del sistema, se usa el paquetesystem_app_safety_label
en lugar del paquetesafety_labels
. transparency_info
- Un objeto
PersistableBundle
que especifica la información de transparencia de la app.
Formato de las etiquetas de seguridad
El paquete safety_labels
contiene los siguientes pares clave-valor:
version
(obligatorio)- El número de versión del formato de las etiquetas de seguridad. Usa
1
como el valor para esta versión actual ylong
como el tipo. data_labels
- Es un objeto
PersistableBundle
que especifica los datos que la app recopila y comparte. security_labels
- Un objeto
PersistableBundle
que especifica las prácticas de eliminación y encriptación de datos de la app. third_party_verification
- Un objeto
PersistableBundle
que especifica cómo un tercero verifica las prácticas de seguridad de los datos de la app.
Datos recopilados y compartidos
El paquete data_labels
contiene los siguientes pares clave-valor:
data_collected
- Un objeto
PersistableBundle
que especifica los tipos de datos que recopila la app. data_shared
- Un objeto
PersistableBundle
que especifica los tipos de datos que comparte la app.
Categorías de Datos
Las claves data_collected
y data_shared
usan el formato de paquete data_category
, que contiene los pares clave-valor que se muestran en la siguiente lista. Cada clave se asigna a un objeto PersistableBundle
que especifica los tipos de datos para una categoría en particular.
personal
financial
location
email_text_message
photo_video
audio
storage
health_fitness
contacts
calendar
identifiers
app_performance
actions_in_app
search_and_browsing
Tipos de datos
Cada clave en el paquete data_category
se asigna a un paquete diferente que usa el formato data_type
. Las claves que especificas en el formato data_type
dependen de lo que elijas para un objeto data_category
.
Los pares clave-valor data_type
posibles aparecen en las listas que se mencionan más abajo. El valor de cada una de estas claves es un objeto PersistableBundle
que describe las prácticas de uso de datos de la app para ese tipo de datos en particular. Algunos tipos de datos usan solo una clave.
Personal
name
email_address
physical_address
phone_number
race_ethnicity
political_or_religious_beliefs
sexual_orientation_or_gender_identity
personal_identifiers
other
Finanzas.
card_bank_account
purchase_history
credit_score
other
Ubicación
approx_location
precise_location
Correos electrónicos y mensajes de texto
emails
text_messages
other
Fotos y videos
photos
videos
Audio
sound_recordings
music_files
other
Almacenamiento
files_docs
Salud y entrenamiento físico
health
fitness
Contactos
contacts
Calendario
calendar
Identificadores
other
Rendimiento de la app
crash_logs
performance_diagnostics
other
Acciones en la app
user_interaction
in_app_search_history
installed_apps
user_generated_content
other
Búsqueda y navegación
web_browsing_history
Uso de datos
El paquete data_usage
contiene los siguientes pares clave-valor:
purposes
(obligatorio)-
Un array de números enteros que representa razones específicas para recopilar o compartir datos y usa el método
PersistableBundle
putIntArray
. Cada paquete requiere al menos uno de los fines que se definen a continuación.1
: PURPOSE_APP_FUNCTIONALITY2
: PURPOSE_ANALYTICS3
: PURPOSE_DEVELOPER_COMMUNICATIONS4
: PURPOSE_FRAUD_PREVENTION_SECURITY5
: PURPOSE_ADVERTISING6
: PURPOSE_PERSONALIZATION7
: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional
-
Valor booleano. Especifica si los usuarios pueden habilitar o inhabilitar la recopilación de datos.
Nota: Establece este valor solo para paquetes
data_category
que representen la recopilación de datos; no lo configures para el uso compartido de datos. ephemeral
-
Valor booleano. Especifica si la app procesa los datos del servidor solo en la memoria, no en el disco, y que retiene los datos no más del tiempo necesario para atender la solicitud de procesamiento de datos específica.
Nota: Establece este valor solo para paquetes
data_category
que representen la recopilación de datos; no lo configures para el uso compartido de datos.
Prácticas de encriptación y eliminación de datos
El paquete security_labels
contiene pares clave-valor que representan las prácticas de encriptación y eliminación de datos de la app:
is_data_deletable
- Valor booleano. Especifica si la app permite o no que el usuario la solicite para borrar sus datos.
is_data_encrypted
- Valor booleano. Especifica si todos los datos del usuario que recopila la app se encriptan en tránsito.
Verificación de terceros
El paquete third_party_verification
consta de una sola clave: url
. Esta URL, representada como un valor de cadena, especifica el sitio web de terceros que se usa para verificar la información de seguridad de los datos de la app.
Formato de las etiquetas de seguridad del servicio del sistema
En el caso de las apps que actúan como servicio del sistema, se usa el paquete system_app_safety_label
en lugar del paquete safety_labels
y contiene los siguientes pares clave-valor:
url
(obligatorio)
- Es una URL que dirige a una página que contiene información de seguridad de la app que actúa como un servicio del sistema.
- Usa
string
como el tipo. - Si no se proporcionó, se debe usar la URL de la política de privacidad como resguardo.
- Nota: Google Play Store usa
privacy_policy
como resguardo.
Formato de información de transparencia
El paquete transparency_info
contiene los siguientes pares clave-valor:
developer_info
- Un objeto
PersistableBundle
que especifica información sobre el desarrollador de la app. app_info
- Un objeto
PersistableBundle
que especifica información sobre la app.
Información del desarrollador
El paquete developer_info
contiene los siguientes pares clave-valor:
developer_#
- Un objeto
PersistableBundle
que identifica al desarrollador.developer_info
contiene uno o másdeveloper_#
, en los que#
es un número entero. Por ejemplo,developer_0
,developer_1
,developer_2
, etc.
Desarrollador
El paquete developer_#
contiene los siguientes pares clave-valor:
name
(obligatorio)- Es una cadena que indica el nombre del desarrollador.
email
(obligatorio)- Es una cadena que indica la dirección de correo electrónico del desarrollador.
address
(obligatorio)- Es una cadena que indica la dirección de correo postal del desarrollador.
country_region
(obligatorio)- Es una cadena que indica el país o la región del desarrollador.
website
- Es una cadena que indica el sitio web del desarrollador.
app_registry
- Es una cadena que indica la tienda o el registro del desarrollador.
- Si el desarrollador también está registrado en una tienda o en otro registro, el valor debe ser el nombre del paquete de Android de la tienda o la URL del registro.
- Se permiten varias entradas para varias tiendas.
- Para Google Play, usa
com.android.vending
. - Si el desarrollador es un SDK que aparece en el Índice SDK de Google Play, omite este atributo.
- Si un desarrollador no está registrado en ninguna tienda de aplicaciones ni registro, omite este atributo.
app_registry_id
- Es una cadena que establece el ID del desarrollador del
app_registry
indicado. - Si el desarrollador también está registrado en una tienda o en otro registro, el valor debe ser su identidad de almacén o registro.
- Se permiten varias entradas para varias tiendas.
- Para los desarrolladores registrados en Google Play, este valor debe ser la URL de la página del desarrollador (por ejemplo, https://play.google.com/store/apps/dev?id=5700313618786177705 es la URL del desarrollador de Google LLC).
- Si el desarrollador es un desarrollador de SDK que figura en el Índice SDK de Google Play, usa la URL del Índice SDK de Google Play del SDK (por ejemplo, https://play.google.com/sdks/details/com-google-android-gms-play-services-ads es la URL del Índice SDK de Google Play del SDK de anuncios de Google para dispositivos móviles (GMA).
- Si el desarrollador está registrado en otra tienda o registro, se puede proporcionar una URL de la tienda de aplicaciones o algún otro identificador.
- Si un desarrollador no está registrado en ninguna tienda de aplicaciones, se puede omitir este atributo.
Información de apps
El paquete app_info
contiene los siguientes pares clave-valor:
title
(obligatorio)- Es una cadena que indica el título de la app.
description
(obligatorio)- Es una cadena que indica el propósito de la app en un BLOB de texto legible por humanos en inglés.
contains_ads
(obligatorio)- Un valor booleano que declara si la app muestra algún anuncio.
privacy_policy
(obligatorio)
- Es una cadena que contiene un atributo de URL que vincula a la política de privacidad, en el que se detalla cómo se manejan los datos del usuario.
- Obligatorio para las apps que transmiten datos del usuario.
- Si la app no contiene este vínculo, se supone que no controla los datos del usuario.
category
(obligatorio)Una cadena que contiene una de las siguientes categorías de app que describe mejor el objetivo principal de la app:
- Android (solo para un componente del AOSP)*
- Arte y diseño
- Autos y vehículos
- Belleza
- Libros y referencias
- Negocio
- Cómics
- Comunicaciones
- Citas
- Educación
- Entretenimiento
- Eventos
- Finanzas
- Comidas y bebidas
- Juego
- Estado físico y salud
- Casa y hogar
- Instalador (solo para una tienda de aplicaciones o algún otro instalador)*
- Bibliotecas y demostración
- Estilo de vida
- Mapas y navegación
- Medicina
- Música y audio
- Noticias y revistas
- Crianza de hijos
- Personalización
- Fotografía
- Productividad
- Seguridad*
- Compras
- Social
- Deportes
- Herramientas
- Viajes y servicios locales
- Actualizador (solo para la app de actualización inalámbrica (OTA) predeterminada de un dispositivo)*
- Reproductores y editores de video
- Clima
contact_info
- Es un objeto
PersistableBundle
que incluye información de contacto de la app (a continuación).
Información de contacto
El paquete contact_info
contiene los siguientes pares clave-valor:
email
(obligatorio)- Es una cadena que establece la dirección de correo electrónico de la app.
website
- Es una cadena que indica el sitio web de la app.