Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Desarrollo de manifiestos de dispositivos

Al desarrollar y lanzar nuevos dispositivos, los proveedores pueden definir y declarar la versión de Target FCM en el manifiesto del dispositivo (DM). Al actualizar la imagen del proveedor para dispositivos antiguos, los proveedores pueden optar por implementar nuevas versiones de HAL e incrementar la versión de Target FCM.

Desarrollando nuevos dispositivos

Al definir la versión de FCM de destino del dispositivo para dispositivos nuevos:

  1. Dejar DEVICE_MANIFEST_FILE y PRODUCT_ENFORCE_VINTF_MANIFEST indefinido.
  2. Implemente HAL para la versión Target FCM.
  3. Escriba el archivo de manifiesto del dispositivo correcto.
  4. Escriba la versión de Target FCM en el archivo de manifiesto del dispositivo.
  5. Conjunto DEVICE_MANIFEST_FILE .
  6. Conjunto PRODUCT_ENFORCE_VINTF_MANIFEST de true .

Lanzamiento de nuevos dispositivos

Cuando se libera un nuevo dispositivo, su inicial Target FCM Versión necesita ser determinado y declarado en el manifiesto dispositivo como el " target-level atributo" en el nivel superior <manifest> elemento.

Por ejemplo, los dispositivos que se inician con Android 9 deben tener Target FCM Version igual a 3 (la versión superior disponible en este momento). Para declarar esto en el manifiesto del dispositivo:

<manifest version="1.0" type="device" target-level="3">
    <!-- ... -->
</manifest>

Actualización de la imagen del proveedor

Al actualizar la imagen del proveedor para un dispositivo antiguo, los proveedores pueden optar por implementar nuevas versiones de HAL e incrementar la versión de Target FCM.

Actualización de HAL

Durante una actualización de imagen de proveedor, los proveedores pueden implementar nuevas versiones de HAL siempre que el nombre de HAL, el nombre de la interfaz y el nombre de la instancia sean los mismos. Por ejemplo:

  • Google Pixel 2 y Pixel 2 XL dispositivos liberados con Target FCM Versión 2, que implementa la requieren de audio 2.0 HAL android.hardware.audio@2.0::IDeviceFactory/default .
  • Para el audio 4.0 HAL que libera con Android 9, Google Pixel 2 y dispositivos Pixel 2 XL pueden utilizar una OTA completa para actualizar a la 4.0 HAL, que implementa android.hardware.audio@4.0::IDeviceFactory/default .
  • A pesar de que la compatibility_matrix.2.xml especifica de audio 2.0 sólo, el requisito de una imagen proveedor con destino FCM versión 2 se ha aflojado en el marco debido Android 9 (FCM versión 3) considera de audio 4.0 de un reemplazo de audio 2.0 HAL en términos de funcionalidad .

En resumen, dado que compatibility_matrix.2.xml requiere audio 2.0 y compatibility_matrix.3.xml requiere audio 4.0, los requisitos son como sigue:

Versión de FCM (sistema) Versión de FCM de destino (proveedor) Requisitos
2 (8,1) 2 (8,1) Audio 2.0
3 (9) 2 (8,1) Audio 2.0 o 4.0
3 (9) 3 (9) Audio 4.0

Actualización de la versión de Target FCM

Durante una actualización de imagen de proveedor, los proveedores también pueden incrementar la Versión de FCM de destino para especificar la Versión de FCM de destino con la que la imagen de proveedor actualizada puede funcionar. Para aumentar la versión de Target FCM de un dispositivo, los proveedores deben:

  1. Implemente todas las nuevas versiones de HAL necesarias para la versión de Target FCM.
  2. Modifique las versiones de HAL en el archivo de manifiesto del dispositivo.
  3. Modifique la versión de Target FCM en el archivo de manifiesto del dispositivo.
  4. Quite las versiones obsoletas de HAL.

Por ejemplo, los dispositivos Google Pixel y Pixel XL se lanzaron con Android 7.0, por lo que su versión Target FCM debe ser al menos heredada. Sin embargo, el manifiesto del dispositivo declara el FCM Objetivo versión 2 porque la imagen proveedor ha sido actualizado para cumplir con compatibility_matrix.2.xml :

<manifest version="1.0" type="device" target-level="2">

Si los proveedores no implementan todas las versiones nuevas de HAL requeridas o no eliminan las versiones obsoletas de HAL, la versión de Target FCM no se puede actualizar.

Por ejemplo, Google Pixel 2 y Pixel 2 XL dispositivos tienen Target FCM Versión 2. Mientras que hacen poner en práctica algunas HAL requeridos por compatibility_matrix.3.xml (tales como audio 4.0, salud 2.0, etc.), que no se retire android.hardware.radio.deprecated@1.0 , que está en desuso en FCM Versión 3 (Android 9). Por lo tanto, estos dispositivos no pueden actualizar la versión de Target FCM a 3.

Obligar a los requisitos del kernel durante OTA

Actualización de dispositivos desde Android 9 o versiones anteriores

En dispositivos con Android 9 o versiones anteriores, asegúrese de que los siguientes CL se seleccionen cuidadosamente:

Estos cambios introducen las bandera acumulación PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS y salen de la bandera para desarmar los dispositivos lanzados con Android 9 o bajar.

  • Al actualizar a Android 10, los clientes OTA en dispositivos que ejecutan Android 9 o versiones anteriores no verifican correctamente los requisitos del kernel en el paquete OTA. Estos cambios son necesarios para eliminar los requisitos del kernel del paquete OTA generado.
  • Al actualizar a Android 11, es opcional para establecer el PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS bandera de acumulación para comprobar la compatibilidad VINTF cuando se genera el paquete de actualización.

Para obtener más información sobre esta bandera de construcción, consulte Actualización de dispositivos de Android 10 .

Actualización de dispositivos desde Android 10

Android 10 introduce una nueva marca de construcción, PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS . Para los dispositivos lanzados con Android 10, este indicador se establece automáticamente en true . Cuando el indicador se establece en true , un guión extrae la versión del núcleo y las configuraciones del núcleo de la imagen del núcleo instalado.

  • Al actualizar a Android 10, el paquete de actualización OTA contiene la versión y la configuración del kernel. Los clientes OTA en dispositivos con Android 10 leen esta información para verificar la compatibilidad.
  • Al actualizar a Android 11, la generación del paquete OTA lee la versión y la configuración del kernel para verificar la compatibilidad.

Si el script no puede extraer esta información para su imagen del núcleo, lleve a cabo uno de los siguientes:

  • Edite el script para que sea compatible con el formato de su kernel y contribuya a AOSP.
  • Conjunto BOARD_KERNEL_VERSION a la versión del núcleo y BOARD_KERNEL_CONFIG_FILE a la ruta del archivo de configuración del kernel incorporado .config . Ambas variables deben actualizarse cuando se actualiza la imagen del kernel.
  • Alternativamente, conjunto PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS a false para saltar requisitos de control del núcleo. Esto no se recomienda porque cualquier incompatibilidad está oculta y solo se descubre cuando se ejecutan pruebas de VTS después de la actualización.

Se puede ver el código fuente de la información del kernel guión extracción extract_kernel.py .