Mises à jour des packs de services

Les bundles de services peuvent être mis à jour en tant que packages APEX, indépendamment des mises à jour complètes du système. Dans SDV, ce processus de mise à jour est géré par le gestionnaire de mises à jour SDV. Pour qu'une mise à jour prenne effet, vous devez redémarrer l'appareil.

Deux types d'APEX sont compatibles avec les mises à jour des bundles de services :

  • APEX préinstallé :une version antérieure du package APEX existe déjà sur l'une des partitions en lecture seule (/system, /system_ext, /product, /vendor et /odm).

  • Nouvel APEX: aucun package APEX portant le même nom (tel que déclaré dans apex_manifest.json) n'existe sur l'une des partitions en lecture seule.

APEX préinstallé

Il s'agit de la méthode la plus courante et recommandée pour mettre à jour les bundles de services. Pour que cette mise à jour soit valide, le nouveau package APEX doit répondre aux exigences suivantes :

  • Avoir le même nom de package dans apex_manifest.json que l'APEX préinstallé.

  • Déclarer un code de version supérieur dans apex_manifest.json à celui de l'APEX préinstallé.

  • Signer l'APEX avec la même paire de clés que l'APEX préinstallé.

Nouvel APEX

Bien que l'utilisation d'APEX préinstallés soit la meilleure pratique en matière de sécurité, les nouveaux APEX sont compatibles. Lorsque vous utilisez cette approche, les partenaires sont responsables du maintien de protocoles de sécurité complets. Ces responsabilités incluent les éléments suivants :

  • Gérer de manière sécurisée les clés de signature utilisées pour ces APEX.

  • Établir un processus robuste pour identifier et bloquer les packages malveillants.

  • Convertir les nouveaux APEX en APEX préinstallés dans les mises à jour ultérieures du système chaque fois que cela est possible.

Pour installer ou mettre à jour un nouvel APEX, les configurations suivantes sont requises.

Préinstaller des clés publiques de confiance

Pour installer un nouvel APEX, sa clé de signature publique doit être préinstallée sur la partition cible. Placez la clé publique dans /partition/etc/brand_new_apex/, où /partition/ représente la partition à laquelle l'APEX est associé en vertu des règles Treble. Par exemple, si la signature d'un APEX est validée par rapport à une clé publique dans /vendor/etc/brand_new_apex/, il se comportera comme un APEX de fournisseur. Le système rejettera tout nouvel APEX qui n'est pas signé par une clé correspondant à une clé publique préinstallée.

Bloquer un nouvel APEX malveillant

Si un nouvel APEX est identifié comme malveillant après l'installation, il doit être bloqué à l'aide d'une mise à jour du système. Pour ce faire, ajoutez le nom du package APEX à un fichier de liste de blocage dans /partition/etc/brand_new_apex/blocklist.json. Cette liste de blocage doit être placée sur la partition cible de l'APEX (la même partition où sa clé publique a été préinstallée). Chaque partition possède son propre fichier de liste de blocage dédié.