Desarrollo del manifiesto del dispositivo

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

Desarrolla nuevos dispositivos

Cuando definas la versión de FCM de destino del dispositivo para dispositivos nuevos, sigue estos pasos:

  1. Abandonar DEVICE_MANIFEST_FILE y PRODUCT_ENFORCE_VINTF_MANIFEST no definida.
  2. Implementa HALs para la versión de destino de FCM.
  3. Escribe el archivo de manifiesto del dispositivo correcto.
  4. Escribe la versión de destino de FCM en el archivo de manifiesto del dispositivo.
  5. Establece DEVICE_MANIFEST_FILE.
  6. Establece PRODUCT_ENFORCE_VINTF_MANIFEST en true.

Lanza dispositivos nuevos

Cuando se lanza un nuevo dispositivo, su versión inicial de destino de FCM debe determinada y declarada en el manifiesto del dispositivo como el “target-level” en el atributo de nivel superior elemento <manifest>.

Por ejemplo, los dispositivos que se lanzan con Android 9 deben tener como destino la versión de FCM 3 (la versión superior disponible en este momento) Para declarar esto en el manifiesto del dispositivo, haz lo siguiente:

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

Actualiza la imagen del proveedor

Cuando se actualiza la imagen del proveedor para un dispositivo anterior, los proveedores pueden optar por implementar versiones nuevas de HAL y aumentar la versión de destino de FCM.

Actualizar HAL

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

  • Se lanzaron los dispositivos Google Pixel 2 y Pixel 2 XL con la versión de FCM de destino 2, que implementó la HAL de audio 2.0 requerida android.hardware.audio@2.0::IDeviceFactory/default
  • Para la HAL de audio 4.0 que se lanzó con Android 9, los dispositivos Google Pixel 2 y Pixel 2 XL pueden usar una OTA completa para actualizar a la HAL 4.0, que implementa android.hardware.audio@4.0::IDeviceFactory/default
  • Aunque compatibility_matrix.2.xml especifica audio 2.0. solo se cumple el requisito de una imagen de proveedor con la versión 2 de FCM de destino se flexibilizaron porque el framework de Android 9 (versión de FCM) 3) Considera que el audio 4.0 reemplaza la HAL de audio 2.0 en términos de funcionalidad.

En resumen, dado que compatibility_matrix.2.xml requiere El audio 2.0 y compatibility_matrix.3.xml requieren audio 4.0, el son los siguientes:

Versión de FCM (sistema) Versión de destino de FCM (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

Actualiza la versión de destino de FCM

Durante una actualización de imagen de proveedor, los proveedores también pueden aumentar el FCM objetivo versión para especificar la versión de FCM de destino con la que funciona la imagen del proveedor actualizada tus amigos. Para cambiar la versión de FCM de destino de un dispositivo, los proveedores deben hacer lo siguiente:

  1. Implementa todas las versiones nuevas y obligatorias de HAL para la versión de destino de FCM.
  2. Modifica las versiones de HAL en el archivo de manifiesto del dispositivo.
  3. Modifica la versión de destino de FCM en el archivo de manifiesto del dispositivo.
  4. Quita las versiones obsoletas de HAL.

Por ejemplo, los dispositivos Google Pixel y Pixel XL lanzados con Android 7.0 por lo que su versión de destino de FCM debe ser, al menos, heredada. Sin embargo, el dispositivo manifiesto declara la versión 2 de FCM de destino porque la imagen del proveedor se actualizó para cumplir con el 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 las quitan versiones obsoletas de HAL, la versión de destino de FCM no se puede actualizar.

Por ejemplo, los dispositivos Google Pixel 2 y Pixel 2 XL tienen como objetivo la versión 2 de FCM. Si bien implementan algunas HALs requeridas por compatibility_matrix.3.xml (como audio 4.0, estado 2.0, etc.), no quitan android.hardware.radio.deprecated@1.0, que es obsoleto en la versión 3 de FCM (Android 9). Por lo tanto, estos Los dispositivos no pueden actualizar la versión de destino de FCM a 3.

Obligar los requisitos del kernel durante la actualización inalámbrica

Cómo actualizar dispositivos con Android 9 o versiones anteriores

En dispositivos con Android 9 o versiones anteriores, asegúrate de que se cumplan las siguientes CL elementos seleccionados:

Estos cambios introducen la marca de compilación PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS y abandona el marca no establecida para los dispositivos lanzados con Android 9 o menor.

  • Cuando actualizas a Android 10, ocurre lo siguiente: Clientes inalámbricos en dispositivos con Android 9 o versiones anteriores no verifican correctamente los requisitos del kernel en el paquete inalámbrico. Estos cambios son necesarios para eliminar los requisitos de kernel de la versión OTA generada .
  • Cuando actualizas a Android 11, es opcional configurar la Marca de compilación PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS para verificar VINTF la compatibilidad cuando se genera el paquete de actualización.

Para obtener más información sobre esta marca de compilación, consulta Cómo actualizar dispositivos desde Android 10.

Cómo actualizar dispositivos a partir de Android 10

Android 10 presenta una nueva marca de compilación: PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS Para dispositivos que se lanzó con Android 10, se configura automáticamente en true. Cuando la marca se establece en true, una secuencia de comandos extrae la versión y el kernel de la imagen de kernel instalada.

  • Cuando actualizas a Android 10, el paquete de actualización OTA contiene y configuración de kernel. Clientes inalámbricos en dispositivos con Android 10 Leer esta información para comprobar compatibilidad.
  • Cuando se actualiza a Android 11, se genera la generación de paquetes inalámbricos. lee la versión y la configuración de kernel para comprobar la compatibilidad.

Si la secuencia de comandos no puede extraer esta información para tu imagen de kernel, realiza una de lo siguiente:

  • Edita la secuencia de comandos para que admita tu formato de kernel y contribuya al AOSP.
  • Establece BOARD_KERNEL_VERSION en la versión de kernel. y BOARD_KERNEL_CONFIG_FILE a la ruta de acceso del kernel compilado archivo de configuración .config. Se deben actualizar ambas variables cuando se actualiza la imagen del kernel.
  • Como alternativa, establece PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS a false para omitir la verificación de los requisitos del kernel. Esto no se recomienda porque se oculta cualquier incompatibilidad y solo se descubre al ejecutar pruebas de VTS después de la actualización.

Puedes ver el código fuente de la secuencia de comandos de extracción de información del kernel. extract_kernel.py