Actualizaciones de paquetes de servicios

Los paquetes de servicios se pueden actualizar como paquetes APEX, independientemente de las actualizaciones completas del sistema. En SDV, el administrador de actualizaciones de SDV administra este proceso de actualización. Para que se aplique una actualización, debes reiniciar el dispositivo.

Se admiten dos tipos de APEX para las actualizaciones de paquetes de servicios:

  • APEX preinstalado: Ya existe una versión anterior del paquete APEX en una de las particiones de solo lectura (/system, /system_ext, /product, /vendor y /odm).

  • APEX nuevo: No existe ningún paquete de APEX con el mismo nombre (como se declara en apex_manifest.json) en ninguna de las particiones de solo lectura.

APEX preinstalado

Este es el método más común y recomendado para actualizar los paquetes de servicios. Para que esta actualización sea válida, el nuevo paquete de APEX debe cumplir con los siguientes requisitos:

  • Tener el mismo nombre de paquete en apex_manifest.json que el APEX preinstalado

  • Declara un código de versión más alto en apex_manifest.json que en el APEX preinstalado.

  • Firma el APEX con el mismo par de claves que el APEX preinstalado.

Nuevo APEX

Si bien usar APEX preinstalados es la práctica recomendada de seguridad, se admiten APEX nuevos. Cuando se usa este enfoque, los socios son responsables de mantener protocolos de seguridad integrales. Estas responsabilidades incluyen lo siguiente:

  • Administrar de forma segura las claves de firma que se usan para estos APEX

  • Establecer un proceso sólido para identificar y bloquear paquetes maliciosos

  • Convertir los nuevos APEX en APEX preinstalados en las actualizaciones del sistema posteriores siempre que sea posible

Para instalar o actualizar un nuevo APEX, se requieren las siguientes configuraciones.

Cómo preinstalar claves públicas de confianza

Para instalar un nuevo APEX, su clave de firma pública debe estar preinstalada en la partición de destino. Coloca la clave pública en /partition/etc/brand_new_apex/, donde /partition/ representa la partición con la que se asocia el APEX según las reglas de Treble. Por ejemplo, si se verifica la firma de un APEX con una clave pública en /vendor/etc/brand_new_apex/, se comportará como un APEX de proveedor. El sistema rechazará cualquier APEX nuevo que no esté firmado con una clave que corresponda a una clave pública preinstalada.

Bloquea un nuevo APEX malicioso

Si se identifica un nuevo APEX como malicioso después de la instalación, se debe bloquear con una actualización del sistema. Para ello, agrega el nombre del paquete APEX a un archivo de lista de bloqueo en /partition/etc/brand_new_apex/blocklist.json. Esta lista de bloqueo debe colocarse en la partición de destino del APEX (la misma partición en la que se preinstaló su clave pública). Cada partición tiene su propio archivo de lista de bloqueo dedicado.