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:
- Abandonar
DEVICE_MANIFEST_FILE
yPRODUCT_ENFORCE_VINTF_MANIFEST
no definida. - Implementa HALs para la versión de destino de FCM.
- Escribe el archivo de manifiesto del dispositivo correcto.
- Escribe la versión de destino de FCM en el archivo de manifiesto del dispositivo.
- Establece
DEVICE_MANIFEST_FILE
. - Establece
PRODUCT_ENFORCE_VINTF_MANIFEST
entrue
.
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:
- Implementa todas las versiones nuevas y obligatorias de HAL para la versión de destino de FCM.
- Modifica las versiones de HAL en el archivo de manifiesto del dispositivo.
- Modifica la versión de destino de FCM en el archivo de manifiesto del dispositivo.
- 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. yBOARD_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
afalse
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