Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Desarrollo de manifiesto de dispositivo

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. Deja DEVICE_MANIFEST_FILE y PRODUCT_ENFORCE_VINTF_MANIFEST sin definir.
  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. Establecer DEVICE_MANIFEST_FILE .
  6. Establezca PRODUCT_ENFORCE_VINTF_MANIFEST en true .

Lanzamiento de nuevos dispositivos

Cuando se lanza un nuevo dispositivo, su Versión de FCM de destino inicial debe determinarse y declararse en el manifiesto del dispositivo como el atributo " target-level " en el elemento <manifest> nivel superior.

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:

  • Dispositivos Google Pixel 2 y Pixel 2 XL lanzados con Target FCM versión 2, que implementó el audio 2.0 HAL requerido android.hardware.audio@2.0::IDeviceFactory/default .
  • Para el audio 4.0 HAL que se lanzó con Android 9, los dispositivos Google Pixel 2 y Pixel 2 XL pueden usar una OTA completa para actualizar a 4.0 HAL, que implementa android.hardware.audio@4.0::IDeviceFactory/default .
  • A pesar de que el compatibility_matrix.2.xml especifica solo audio 2.0, el requisito de una imagen de proveedor con Target FCM Versión 2 se ha relajado porque el marco de Android 9 (FCM Versión 3) considera que el audio 4.0 es un reemplazo del audio 2.0 HAL en términos de funcionalidad. .

Para resumir, dado que compatibility_matrix.2.xml requiere audio 2.0 y compatibility_matrix.3.xml requiere audio 4.0, los requisitos son los siguientes:

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 HAL necesarias para la versión 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. Elimina 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 la versión 2 de Target FCM porque la imagen del proveedor se ha actualizado para cumplir con la matriz de compatibility_matrix.2.xml :

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

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

Por ejemplo, los dispositivos Google Pixel 2 y Pixel 2 XL tienen Target FCM versión 2. Si bien implementan algunos HAL requeridos por compatibility_matrix.3.xml (como audio 4.0, salud 2.0, etc.), no eliminan android.hardware.radio.deprecated@1.0 , que está obsoleto en FCM Versión 3 (Android 9). Por lo tanto, estos dispositivos no pueden actualizar la versión de Target FCM a 3.

Obligar 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 la PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS compilación PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS y dejan la marca sin configurar para dispositivos lanzados con Android 9 o versiones anteriores.

  • 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 establecer el indicador de compilación PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS para verificar la compatibilidad de VINTF cuando se genera el paquete de actualización.

Para obtener más información sobre esta marca de compilación, consulte Actualización de dispositivos desde Android 10 .

Actualización de dispositivos desde Android 10

Android 10 presenta una nueva PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS compilación, PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS . Para los dispositivos lanzados con Android 10, esta marca se establece automáticamente en true . Cuando el indicador se establece en true , un script extrae la versión del kernel y las configuraciones del kernel de la imagen del kernel instalada.

  • 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 de kernel, realice una de las siguientes acciones:

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

Puede ver el código fuente del script de extracción de información del kernel extract_kernel.py .