Vous ne pourrez pas y parvenir en utilisant uniquement des outils userland, comme ceux que vous décrivez, du moins pas pendant l'exécution d'Android.
La raison en est que le RIL ouvre le dispositif radio (généralement un nœud de dispositif sous /dev/*
) en tant que service linux de bas niveau et, bien qu'il dispose d'un verrou exclusif sur le dispositif, rien d'autre ne peut lire ou écrire sur la radio. Le RIL communique ensuite avec la plate-forme Android pour tous les événements liés à la radio.
Cela pourrait être fait avec quelques extensive en modifiant le noyau Linux sous-jacent (il s'agit d'un code source ouvert, ce qui est tout à fait possible si vous n'avez pas peur de vous salir les mains en C), ou en remplaçant le démon RIL (ce qui n'est pas aussi facile, car le démon rild
es no Il n'est donc pas possible de savoir quelle est la mise en œuvre sous-jacente sans faire de l'ingénierie inverse). Cette dernière solution empêchera Android de l'utiliser correctement, à moins que vous ne trouviez un canal de compatibilité pour assurer la communication par procuration entre le nouveau RIL et le RIL existant - et même dans ce cas, il y a de fortes chances qu'Android s'embrouille lorsqu'il essaiera de passer un appel (sachant que le modem ne devrait pas être actuellement en service, mais obtenir une réponse de la radio disant qu'elle est en service).
Si ce n'est pas le cas, vous pouvez également y parvenir en remplaçant l'application Téléphone et en utilisant des API de plate-forme entièrement natives. Mais je pense que cela ne fonctionnera pas (du moins d'après ma connaissance du fonctionnement des radios HTC). Dans un appareil HTC, lorsque vous passez un appel, Android informe rild
qui passe l'appel, et ensuite rild
indique à la radio qu'il doit acheminer tout le son de l'appel par le haut-parleur du combiné et acheminer tout le son capté par le microphone dans l'appel téléphonique. La plate-forme Android ne gère pas elle-même l'acheminement du son de l'appel.
Tout ce qui précède nécessite de rooter l'appareil et d'installer une ROM personnalisée au minimum.