Esquema para paquetes de metadatos de apps

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 su uso en funciones de la plataforma de Android, como como la solicitud actualizada del permiso de ubicación.

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 XML a la imagen del sistema con el paquete persistente que se describe a continuación.

  • Para las apps que se instalan o actualizan, para especificar estos metadatos, los instaladores de apps deben pasar un objeto PersistableBundle al método setAppMetadata().

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 valor para esto. versión actual y long como el tipo. Si se esperan claves o tipos de contenido de AppMetadata cambiará, 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 propiedad system-app-safety-label. En el caso de las apps que actúan como un servicio del sistema, se usa el paquete system_app_safety_label en lugar del paquete safety_labels.
transparency_info
Un objeto PersistableBundle que especifica la transparencia de la app información.

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 valor para esto. versión actual y long como el tipo.
data_labels
Un objeto PersistableBundle que especifica los datos que recopila y comparte la app.
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 se ve la seguridad de los datos las prácticas están verificadas por terceros.

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 la app recopila.
data_shared
Un objeto PersistableBundle que especifica los tipos de datos que la app comparte.

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 para cada una de estas claves es un objeto PersistableBundle que describe la las prácticas de uso de datos de tu 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)

Es un array de números enteros que representa razones específicas para recopilar o compartir datos y usa el método PersistableBundleputIntArray. Se requiere al menos uno de los propósitos que se definen a continuación para cada uno en un paquete.

  • 1: PURPOSE_APP_FUNCTIONALITY
  • 2: PURPOSE_ANALYTICS
  • 3: PURPOSE_DEVELOPER_COMMUNICATIONS
  • 4: PURPOSE_FRAUD_PREVENTION_SECURITY
  • 5: PURPOSE_ADVERTISING
  • 6: PURPOSE_PERSONALIZATION
  • 7: 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, en lugar de en el disco, y que esta 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 data_category paquetes que representan la recopilación de datos No establecer para compartir datos.

Prácticas de encriptación y eliminación de datos

El paquete security_labels contiene pares clave-valor que representan la clave del prácticas de encriptación y eliminación de datos:

is_data_deletable
Valor booleano. Especifica si la app permite o no que el usuario solicite la aplicación para borrar sus datos del usuario.
is_data_encrypted
Valor booleano. Especifica si todos los datos del usuario que recopila la app se encriptan cuando están 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 utiliza 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 servicios 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)

  • URL que dirige a una página que contiene información de seguridad de la aplicación que se que actúa como un servicio del sistema.
  • Usa string como el tipo.
  • Si no se proporcionó, la URL de la política de privacidad se debe usar 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 la app desarrollador.
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. El developer_info contiene uno o más developer_#; donde # es un número entero. Por ejemplo, developer_0, developer_1, developer_2, etcétera.

Desarrollador

El paquete developer_# contiene la siguiente clave-valor pares:

name (obligatorio)
Una cadena que indica el nombre del desarrollador.
email (obligatorio)
Una cadena que establece la dirección de correo electrónico del desarrollador.
address (obligatorio)
Una cadena que establece 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 múltiples tiendas.
  • Para Google Play, usa com.android.vending.
  • Si el desarrollador es un SDK que figura en el Índice SDK de Google Play, omite este .
  • Si un desarrollador no está registrado en ninguna tienda de aplicaciones o registro, omite este atributo.

app_registry_id

  • Es una cadena que indica el ID del desarrollador del app_registry especificado.
  • 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 múltiples 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 Google LLC).
  • Si el desarrollador es desarrollador de SDK incluido 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 tienda de aplicaciones o algún otro identificador.
  • Si un desarrollador no está registrado en ninguna tienda de aplicaciones, este atributo se puede omitido.

Información de apps

El paquete app_info contiene los siguientes pares clave-valor:

title (obligatorio)
Una cadena que indica el título de la app.
description (obligatorio)
Una cadena que establece el propósito de la app en un BLOB de texto legible por humanos en inglés.
contains_ads (obligatorio)
Es un valor booleano que declara si la app muestra algún anuncio.

privacy_policy (obligatorio)

  • Una cadena que contiene un atributo de URL que vincula a la política de privacidad en los que se detalla cómo se manejan los datos del usuario.
  • Obligatorio para las apps que transmiten datos del usuario.
  • Si la aplicación no contiene este vínculo, se asumirá que la aplicación no contiene administrar los datos del usuario.
category (obligatorio)

Una cadena que contiene una de las siguientes categorías de app describe 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
  • Empresa
  • Cómics
  • Comunicaciones
  • Citas
  • Educación
  • Entretenimiento
  • Eventos
  • Finanzas
  • Comidas y bebidas
  • Juego
  • Salud y fitness
  • 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
Un objeto PersistableBundle que incluye información de contacto del (más abajo).

Información de contacto

El paquete contact_info contiene los siguientes pares clave-valor:

email (obligatorio)
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.