Le firmware est-il vraiment stocké dans une autre eMMC que le firmware Android ?
Non. Le firmware de la bande de base, le noyau et l'espace utilisateur Android sont tous stockés sur la même eMMC (il peut y avoir une exception mais je ne la connais pas). Certains SoCs ont partitions de la zone de démarrage qui sont quelque peu isolés au niveau matériel (généralement utilisés pour les chargeurs de démarrage) mais techniquement, ils sont aussi sur la même eMMC. Il en va de même pour les partitions RPMB (Replay Protected Memory Block).
Comment Android interagit-il avec le firmware de la bande de base ?
Vous avez bien compris que les processeurs de communication/bande de base (CP/BP ou modem) sont complètement isolés du processeur d'application (AP, qui exécute le système d'exploitation Android) et qu'ils exécutent leurs propres fonctions. RTOS . La communication entre le PA et la BP peut se faire par de multiples canaux possibles, mais la plupart sont propriétaires, tout comme les BP elles-mêmes (je ne sais pas trop pourquoi : si des géants comme Qualcomm sont garder les portes dérobées ou cachent leurs vulnérabilités en matière de sécurité, ou encore ne veulent pas mettre en jeu la vie privée des utilisateurs ). Sur les appareils Qualcomm, par exemple, sa mise en œuvre dans le noyau est appelée Shared Memory Device/Driver (SMD).
Le BP comprend également un processeur de signaux numériques (DSP) qui est utilisé pour le traitement multimédia. Le modem et le DSP ont tous deux leurs partitions montables sur eMMC (au moins sur les appareils Qualcomm) auxquelles ils accèdent par le biais du noyau en utilisant le mécanisme RPC. Ce site ancien document États :
"Aucun nouveau matériel n'est nécessaire. Une carte eMMC aura 2 partitions réservées au stockage du modem.
...
Toutes les demandes du modem seront traitées par un programme de l'espace utilisateur et le client RPC de stockage à distance fournira une interface à l'application utilisateur pour recevoir les demandes du modem et également pour envoyer le statut des demandes au modem."
L'implémentation dans le noyau ne comprend qu'un client RPC, tandis qu'un démon en espace utilisateur à source fermée ( Stockage à distance ) gère la communication réelle avec le modem. Bien que les défenseurs de la vie privée questions avec cette approche. Étant donné que les interfaces de noyau de SMD ou d'autres pilotes de communication ne sont pas documentées, seuls les blobs binaires à source fermée (HAL, fournis par les fournisseurs de SoC) dans l'espace utilisateur peuvent communiquer avec eux (par ex. rmt_storage
utilise E/S de l'espace utilisateur API), tandis que le cadre Android communique avec les HAL. Les implémentations de référence des HALs font partie de l'AOSP.
Est-il seulement monté pour la mise à jour du firmware du modem ?
Non. Le MODEM est généralement la première partition de l'eMMC avec un système de fichiers FAT, tandis que le DSP a EXT4. Les deux ont des entrées dans fstab
et sont montés à chaque démarrage. rmt_storage
fournit également un accès BP à l'IMEI qui est stocké sur des partitions signées comme EFS, MODEMST1, MODEMST2, FSG, FSC avec les fichiers du firmware du modem. Toutes ces partitions n'ont pas de système de fichiers mais sont des blobs binaires écrits sur des partitions brutes. Elles ne sont donc pas montées. Toutes ou certaines de ces partitions peuvent recevoir des mises à jour de firmware OTA des fournisseurs OEM/SoC.
Comme rmt_storage
, Couche d'interface radio Daemon ( rild
) est un autre HAL du fournisseur qui facilite la communication entre la pile téléphonique d'Android et l'interface LTE/3G/2G du modem par le biais du noyau en utilisant des protocoles de contrôle et de transfert de données comme RMNET, QMI, etc. D'autres composants isolés, notamment RPM, GPS, Modem Diagnostic Mode et TEE (pas sûr pour SE), communiquent également avec l'AP en utilisant des canaux de communication similaires dans le noyau (qui incluent également UART) et leurs HAL respectifs dans l'espace utilisateur. RPM (Resource and Power Management) et TEE (Qualcomm's TtustZone) ont aussi leurs partitions sur eMMC, les deux contiennent des binaires exécutables ELF.
RESSOURCES :