Brevet FR2909827A1 — publié le 20080613

TELEPHONE MOBILE CONFIGURABLE L'invention se rapporte à un téléphone mobile. Les téléphones mobiles connus comprennent un micrologiciel, appelé firmware en langue anglaise. Un tel micrologiciel est un ensemble ordonné d'instructions et de données stockées d'une façon qui est fonctionnellement indépendante d'une mémoire centrale d'un téléphone. Un tel logiciel est installé à l'usine lors de la fabrication du téléphone, de sorte qu'il doit être remplacé à chaque fois que le téléphone est remplacé. Dans le cadre de la présente demande, un micrologiciel est plus généralement l'ensemble du logiciel qui n'a pas lieu d'être modifié lorsque l'on personnalise le téléphone au niveau logiciel et qui par contre doit être changé lorsqu'on passe d'une implémentation matérielle du téléphone à une autre. Par exemple, le logiciel permettant de contrôler à bas niveau la communication radio du téléphone est considéré comme un micrologiciel. Dans le cas ou l'implémentation de la radio change, ce code la devra être modifié. Les téléphones mobiles connus comprennent en outre des applications correspondant à l'ensemble des logiciels fournissant une fonctionnalité directement à l'utilisateur du téléphone mobile. Une application implémente une interface utilisateur, qui permet à l'utilisateur de commander le logiciel et de visualiser le résultat. Par exemple, l'interface utilisateur permettant de composer un numéro de téléphone et de lancer l'appel est une application. Les téléphones mobiles connus comprennent également un logiciel médiateur, appelé middleware en langue anglaise et correspondant à l'ensemble du logiciel qui fournit des services aux applications tout en étant du code indépendant de la plateforme matérielle. Un même logiciel médiateur peut être utilisé par plusieurs 2909827 2 applications différentes. Typiquement, le logiciel médiateur est l'ensemble du logiciel qui n'est ni une application, ni une partie du micrologiciel. Par exemple, le logiciel en charge de mettre en oeuvre un appel téléphonique demandé par l'application susmentionnée et 5 qui pour cela envoie un certain nombre de commande au micrologiciel contrôlant l'interface radio est un logiciel médiateur appelé le gestionnaire d'appel, ou Cali Manager en langue anglaise. Ce logiciel peut être utilisé par plusieurs applications. Par exemple, l'application Contact , qui liste toutes les personnes 10 connues par l'utilisateur du téléphone mobile et enregistrées dans le téléphone mobile, peut permettre à l'utilisateur, une fois qu'il a sélectionné une personne de sa liste de contact, de l'appeler. Pour cela, l'application Contact va utiliser les services du logiciel médiateur Cali Manager . 15 Dans le cadre de la présente demande, on appellera couches logicielles hautes ou couches hautes, l'ensemble comprenant les applications et le logiciel médiateur, et couches logicielles basses, ou couches basses, le micrologiciel. 20 On appellera interface haute l'interface entre le logiciel médiateur et les applications. Cette interface fournit aux applications les services haut niveau dont elles ont besoin. Cette interface est indépendante de la plateforme matérielle du téléphone mobile, à 25 niveau de fonctionnalité équivalent. De façon connue en soi, lors de la construction d'un téléphone mobile, le code des différentes couches logicielles correspondant au micrologiciel, au logiciel médiateur et aux applications, est 30 développé, compilées puis assemblées de sorte à former une image monobloc. Cette image monobloc est ensuite chargée dans une mémoire du téléphone mobile afin d'être exécutée par un processeur de la plateforme matérielle du téléphone mobile. Lors d'une phase de 2909827 3 test, le code peut être modifié, recompilé et rechargé, jusqu'à obtention d'un code final correspondant à une image monobloc. Dans l'usine de fabrication des téléphones mobiles, les parties 5 matérielles du téléphone mobile sont d'abord assemblées, puis le code final est chargé dans une mémoire du téléphone mobile. Ce téléphone mobile peut alors être distribué vers la clientèle. Il est connu de pouvoir modifier les fonctionnalités des logiciels d'un 10 téléphone mobile, et ce, sans avoir à recommencer un développement complet du logiciel. Afin de modifier les fonctionnalités des logiciels d'un téléphone mobile, on connaît l'existence de paramètres configurables 15 accessibles par l'utilisateur. Les fonctionnalités d'un téléphone mobile peuvent donc être modifiées en modifiant ces paramètres, mais la personnalisation de téléphone mobile associée à cette modification est très restreinte. 20 Afin de modifier les fonctionnalités des logiciels d'un téléphone mobile, on connaît également le fait de charger dans le téléphone mobile une pluralité de jeux de codes finaux, inclus dans le même code monobloc, que l'utilisateur pourra sélectionner. Toutefois, les configurations sont fixées au moment de la construction du téléphone 25 mobile et ne peuvent donc pas être modifiées par l'utilisateur. Encore une fois, les possibilités de personnalisation par cette méthode de multi-configuration sont donc faibles. Afin de modifier les fonctionnalités des logiciels d'un téléphone 30 mobile, on connaît également des procédés visant à remplacer l'ensemble du code final par un nouveau code final, par les airs ou par un câble. Pour ce faire, on génère un fichier de différence entre l'ancienne version du code et la nouvelle version du code, et on télécharge ce fichier de différence dans le téléphone mobile. Le 2909827 4 nouveau code est alors construit directement à partir de l'ancien code et du fichier de différence à l'aide d'un moteur embarqué. Ce moteur embarqué est un code mis dans le téléphone mobile dès la fabrication du téléphone mobile. Ce procédé est avantageux dans le cas de corrections de problèmes logiciels, appelés bugs en langue anglaise, car il permet de corriger des problèmes sans avoir à demander à l'utilisateur de retourner son téléphone mobile à l'usine. 10 Toutefois, ce procédé ne permet pas une personnalisation du téléphone mobile par l'utilisateur car la création du nouveau code nécessite un cycle complet de développement qui est très coûteux. Il est donc difficile de produire des versions différentes d'un même 15 code selon différentes demandes. Par ailleurs, le nouveau code généré ne pourra être chargé que selon un modèle correspondant au modèle du code d'origine. 20 En outre, un même code ne pourra pas être réutilisé d'un téléphone mobile à un autre si les plateformes matérielles des téléphones mobiles sont différentes. Afin de modifier les fonctionnalités des logiciels d'un téléphone 25 mobile, on connaît également le fait d'ajouter des applications à un téléphone mobile, en magasin ou via un téléchargement. Pour ce faire, des moteurs, par exemple des moteurs JAVA, sont embarqués dans le téléphone mobile à la fabrication et permettent à l'utilisateur de télécharger des applications JAVA à leur demande. Ces 30 applications de personnalisation sont par exemple des jeux. Toutefois, dans ce cas, seules les applications du téléphone mobile peuvent être modifiées. La personnalisation du téléphone mobile est donc limitée. 5 2909827 5 On connaît aussi des procédés pour modifier l'interface utilisateur de téléphone mobile. Pour ce faire, un moteur d'interface est chargé en usine, lors de la fabrication du téléphone mobile. En téléchargeant un 5 fichier d'interface, il est alors possible, via le moteur d'interface, de modifier l'interface utilisateur. Toutefois, dans ce cas, seule l'interface utilisateur du téléphone mobile peut être modifiée. La personnalisation du téléphone mobile 10 est donc également limitée. Le problème que se propose de résoudre l'invention est d'améliorer les possibilités de personnalisation dans un téléphone mobile. 15 Ce problème est résolu par un téléphone mobile comprenant : - Une mémoire ; - Un premier bloc logiciel assemblé, stocké dans ladite mémoire, ledit premier bloc logiciel étant un assemblage de : o un micrologiciel comprenant une partie de code, apte, à 20 l'exécution, à réaliser une fonctionnalité, o des moyens de chargement agencés pour charger des couches logicielles hautes dans ledit téléphone mobile; o des moyens d'exécution aptes à exécuter lesdites couches logicielles hautes postérieurement à leur 25 chargement par lesdits moyens de chargement, de sorte à réaliser ladite fonctionnalité. Le téléphone mobile selon l'invention ne comprend donc pas de couches logicielles hautes au moment de l'assemblage sous la forme 30 du premier code logiciel. Grâce aux moyens de chargement et aux moyens d'exécution assemblé dans le premier code logiciel, un tel logiciel médiateur et des applications pourront être chargés et exécutés dans le téléphone mobile. Le téléphone mobile selon 2909827 6 l'invention est donc entièrement personnalisable par le chargement de couches logicielles hautes. En particulier, selon l'invention, ledit premier bloc logiciel assemblé 5 ne comprend pas de couches logicielles hautes. Par exemple, ledit premier bloc logiciel est constitué dudit micrologiciel, desdits moyens de chargement, et desdits moyens d'exécution. 10 Au contraire, dans les téléphones mobiles connus de l'art antérieur, le bloc logiciel chargé dans la mémoire de la plateforme matérielle du téléphone comprend déjà, sous une forme assemblée avec le micrologiciel, le logiciel médiateur et une partie ou toutes les 15 applications. Une telle personnalisation n'est donc pas possible avec un téléphone de l'art antérieur. Par ailleurs, puisque lors de l'étape de fabrication, l'ensemble des couches basses et hautes sont assemblées, à aucun moment de l'étape de fabrication d'un téléphone mobile, le téléphone mobile ne comprend un bloc assemblé 20 sans logiciel médiateur comme dans l'invention. Selon un mode de réalisation de l'invention, lesdits moyens d'exécution peuvent être agencés pour rediriger un appel desdites 25 couches logicielles hautes vers ladite partie de code du micrologiciel, de sorte à réaliser ladite fonctionnalité. Ainsi, une fois les couches logicielles hautes chargées dans le 30 téléphone grâce aux moyens de chargement, des fonctionnalités spécifiques du micrologiciel peuvent être réalisées grâce à la redirection faite par les moyens d'exécution. Une exécution de ces fonctionnalités est donc possible même si les couches logicielles hautes ne sont pas assemblées avec le micrologiciel dans le même 2909827 7 bloc logiciel. Ceci permet donc une personnalisation du téléphone mobile par des couches logicielles hautes, et notamment un logiciel médiateur et des applications, tout en maintenant les fonctionnalités du micrologiciel. De la sorte, l'utilisateur pourra personnaliser son téléphone mobile avec le logiciel médiateur et les applications de son choix. Le niveau de personnalisation d'un téléphone mobile est donc fortement amélioré selon l'invention. 10 Selon l'invention, les moyens de chargement et les moyens d'exécution forment une interface basse du téléphone mobile, c'est-à-dire une interface entre le micrologiciel et un logiciel médiateur. Dans le cadre de l'invention, le logiciel médiateur n'est toutefois pas 15 assemblé avec le micrologiciel. Afin de réaliser la redirection susmentionnée, dans le téléphone mobile, lesdits moyens d'exécution peuvent comprendre : 20 - un proxy comprenant une table de redirection agencée de sorte à rediriger ledit appel desdites couches logicielles hautes vers ladite partie de code du micrologiciel. Selon un exemple, ladite table de redirection comprend une 25 correspondance entre des fonctions susceptibles d'être appelées par lesdites couches logicielles, et des fonctions identiques dudit micrologiciel. Afin d'assurer que les appels des couches logicielles hautes seront 30 redirigées vers des fonctions du micrologiciel, les moyens de chargement comprennent un installeur agencé pour modifier des appels de fonctions desdites couches logicielles hautes de sorte à diriger les appels vers ledit proxy. De la sorte, on garantit que le proxy recevra bien les appels aux fonctions, et pourra donc rediriger 5 2909827 8 cet appel vers une partie de code correspondant dans le micrologiciel. Afin de faciliter la personnalisation du téléphone mobile selon 5 l'invention, lesdits moyens de chargement peuvent être aptes à charger lesdites couches logicielles hautes depuis un équipement distant dudit téléphone mobile par un protocole de transport de données. 10 De même lesdits moyens de chargement peuvent être aptes à charger lesdites couches logicielles hautes depuis une deuxième mémoire distincte de la première mémoire, vers la première mémoire. Cette deuxième mémoire peut être une carte SIM ou une mémoire externe du téléphone mobile. 15 L'invention se rapporte également à un système comprenant un téléphone mobile tel que précédemment décrit et des couches logicielles hautes assemblées comprenant au moins un logiciel médiateur et des applications, lesdites couches logicielles hautes 20 comprenant des parties de codes, codant, à l'exécution, pour un appel à des services dudit micrologiciel, lesdites couches logicielles hautes étant aptes à être exécutées par lesdits moyens d'exécution. L'invention se rapporte également à un procédé pour exécuter des 25 couches logicielles hautes sur un téléphone mobile tel que décrit précédemment, comprenant des étapes dans lesquelles : - on charge lesdites couches logicielles hautes dans le téléphone mobile; - on exécute lesdites couches logicielles hautes. 30 Ce procédé permet donc une personnalisation simple du téléphone mobile tel que précédemment décrit, l'exécution étant réalisée par les moyens d'exécution aptes à rediriger un appel des couches 2909827 9 logicielles hautes vers la partie de code du micrologiciel, de sorte à réaliser une fonctionnalité En particulier, ce procédé peut comprendre des étapes dans 5 lesquelles lesdites couches logicielles hautes comprennent une partie codant pour un appel à une fonction correspondant à un service dudit micrologiciel, et dans lequel : - ledit appel est redirigé vers ledit proxy ; - ledit proxy redirige ledit appel vers une partie de code dudit 10 micrologiciel codant, à l'exécution, pour ledit service. L'invention se rapporte également à un procédé de fabrication d'un téléphone mobile comprenant des étapes dans lesquelles : - on développe un micrologiciel comprenant une partie de code 15 apte, à l'exécution, à réaliser une fonctionnalité; - on développe des moyens de chargement aptes à charger des couches logicielles hautes dans ledit téléphone mobile ; - on développe des moyens d'exécution aptes à exécuter lesdites couches logicielles hautes postérieurement à leur 20 chargement par lesdits moyens de chargement, de sorte à réaliser ladite fonctionnalité ; - on assemble le micrologiciel, lesdits moyens de chargement et lesdits moyens d'exécution de sorte à former un premier bloc logiciel ; 25 - on charge dans une mémoire dudit téléphone mobile, ledit premier bloc logiciel. On décrit maintenant un mode de réalisation de l'invention en référence aux figures annexées dans lesquelles : 30 - FIG. 1 représente un téléphone mobile conforme à un mode de réalisation de l'invention ; - FIG. 2 représente un téléphone mobile conforme à un mode de réalisation de l'invention lorsqu'un contenu a été chargé dans le téléphone ; 2909827 10 - FIG. 3 représente un moteur compris dans un téléphone mobile selon un mode de réalisation de l'invention ; - FIG. 4 représente un procédé d'exécution d'un fonctionnalité issue d'un appel des couches logicielles hautes. La FIG. 1 représente un téléphone mobile 1 conforme à un mode de réalisation de l'invention. Ce téléphone mobile 1 comprend, dans une mémoire, un premier bloc logiciel assemblé 6. 10 Le premier bloc assemblé 6 comprend un micrologiciel 2 et un moteur 3 susceptible de réaliser notamment le chargement et l'exécution des couches logicielles haute comprenant un logiciel médiateur et des applications. 15 Sur la FIG. 2, on a représenté le téléphone mobile 1 de la FIG. 1 lorsque les couches logicielles hautes sont chargées. Ces couches logicielles hautes peuvent comprendre un logiciel médiateur 4 et des applications 5. 20 Le moteur 3 est par exemple un composant tel que décrit dans la demande WO 05/08509. Un exemple de moteur 3 selon un mode de réalisation de l'invention est illustré plus en détail sur la FIG. 3. Le moteur 3 comprend un contrôleur de service 7 permettant de fournir un certain nombre de services aux couches logicielles hautes 4 et 5 qui pourront être chargées dans le téléphone mobile 1. 30 Le contrôleur de service 7 comprend une ou plusieurs interfaces 73, par exemple du type API, permettant de réaliser un lien entre le moteur 3 et les couches logicielles hautes 4 et 5 qui pourront être chargées dans le téléphone mobile 1. 5 25 2909827 11 Le contrôleur de service comprend également une partie de code générique 71 indépendante de couches basses de la plateforme du téléphone mobile 1. Cette partie de code générique 71 peut donc ne pas être modifiée en cas de modification des couches basses du 5 téléphone mobile 1. Le contrôleur de service comprend également une partie de code spécifique 72 dépendant de couches basses de la plateforme du téléphone mobile 1. Cette partie de code spécifique 72 devra donc 10 être modifiée en cas de modification des couches basses du téléphone mobile 1. Pour chaque interface 73 du contrôleur de service 7, la partie de code spécifique 72 et la partie de code générique 71 sont tels qu'un 15 service associé à l'interface 8 peut être exécuté. L'interface 73 comprend par exemple un service permettant d'afficher un caractère sur l'écran du téléphone mobile 1, par exemple sous la forme d'une fonction affiche car. Le moteur 3 comprend également un chargeur 14 apte à charger, éventuellement à distance, les couches logicielles hautes dans le terminal mobile 1, d'en vérifier les propriétés et de stocker ces couches logicielles hautes 4 et 5 dans le terminal mobile 1. 25 Le moteur 3 comprend en outre un contrôleur de protocole de transport 9 permettant d'utiliser un protocole de transport disponible sur les couches basses du téléphone mobile 1 pour exécuter le chargement réalisé par le chargeur 14. Ce protocole de transport est 30 par exemple un protocole connu du type TCP/IP, WAP, ou FTP. Le transport de données peut être un transport filaire ou sans fil depuis un équipement distant apte à transférer des données. 20 2909827 12 Le moteur 3 comprend également un installeur 10 chargé de l'installation des couches logicielles hautes dans la mémoire du téléphone mobile 1. 5 Le moteur 3 comprend également un lanceur 8, apte à réaliser le lancement de l'exécution des couches logicielles hautes chargées par le chargeur 14. Le lanceur 8 est également apte à réaliser toute l'exécution des couches logicielles hautes si cette exécution nécessite une étape d'interprétation du code des couches logicielles 10 hautes par un processeur du téléphone mobile 1. De façon générale, le lanceur 8 permet donc l'exécution des couches logicielles hautes chargées par le chargeur 14. Le moteur 3 comprend enfin un proxy 11 apte à rediriger des 15 demandes de services issues des couches logicielles hautes vers les services offerts par le contrôleur de service 7, lorsque les couches logicielles hautes s'exécutent. Le proxy 11 utilise en particulier une table de redirection liant chaque service de l'interface 73 avec l'emplacement où se trouve ce service dans les couches logicielles 20 basses du téléphone mobile 1, c'est-à-dire notamment vers le micrologiciel 2. Ce proxy 11 est par exemple tel que décrit dans la demande la demande WO 05/08509 sous l'appellation PLUG. 25 En particulier, le proxy 11 est agencé pour rediriger un processeur du téléphone mobile 1 vers l'endroit où se trouve le service désiré dans le micrologiciel 2. Le proxy 11 comprend pour ce faire une fonction d'aiguillage, apte à prendre en paramètre les identifiants des 30 fonctions cibles appelées par les couches logicielles hautes. Ces identifiants sont stockées dans une pile ou un registre du processeur de sorte à assurer la redirection vers les fonctions correspondantes du micrologiciel 2. 2909827 13 La fonction d'aiguillage du proxy 11 est réalisée à partir d'une table de correspondance entre des identifiants des fonctions appelées par les couches logicielles hautes et les adresses de ces fonctions dans le micrologiciel 2. On décrit maintenant plus en détail les couches logicielles hautes 4 et 5 destinées à être chargées dans le terminal mobile 1 par l'intermédiaire notamment du chargeur 14. 10 Les couches logicielles hautes comprennent un code devant être exécuté, des données utilisables, pouvant utilisées par le code, et des données spécifiques comprenant par exemple la liste des services utilisés par les couches logicielles hautes, ainsi que des informations d'identification des couches logicielles haute 15 comprenant notamment leur origine, numéro de version, ou certificat. Ces données spécifiques sont générées par un générateur qui sera décrit plus en détail par la suite. On décrit maintenant plus en détail la façon dont sont générées ces 20 couches logicielles hautes destinées à être chargées dans le téléphone mobile selon l'invention. Dans les couches logicielles hautes, un logiciel médiateur 4, des applications 5 ainsi que différentes parties d'une interface avec un 25 utilisateur sont codées d'une façon connue en soi. Lorsque ces couches logicielles hautes ont besoin d'utiliser les services des couches logicielles basses du téléphone mobile 1, elles passent par un des services de l'interface 73 du moteur 3. Ainsi, les 30 couches logicielles hautes n'utilisent jamais d'interface avec les couches logicielles basses du terminal mobile 1. 5 2909827 14 Le code des couches logicielles hautes est donc programmé de sorte à ne pas faire référence aux couches logicielles basses du terminal mobile 1, mais toujours à l'interface 73 du moteur 3. 5 Par exemple, si ces couches logicielles hautes doivent utiliser un service d'affichage d'un caractère sur un écran du téléphone mobile 1, elles feront référence, dans leur code, à l'interface 73 comprenant l'instruction affiche_car. 10 Une fois le code de ces couches logicielles hautes réalisé, ce code est manipulé par un générateur. Le générateur prend en entrée le code source ou objet à inclure dans les couches logicielles hautes, compile les différentes parties du code, et assemble toutes les parties de code entre elles. 15 Pour ce faire, le générateur remplace préalablement les appels à l'interface 8 par du code générique appelé STUB. Ce code générique STUB sera modifié par l'installeur 10 du moteur 3 à l'installation des couches logicielles hautes dans le téléphone mobile 1 afin de 20 permettre l'exécution des services sur le micrologiciel 2 du téléphone mobile 1. L'utilisation d'une adresse sans signification particulière du type STUB permet de détecter ce type d'adresse et de la remplacer par une adresse d'entrée du proxy 11. 25 Par exemple, la fonction affiche_car est remplacée par une fonction STUB du type stub(affiche_car). L'utilisation de ces fonctions STUB sera détaillée par la suite. Hormis cette spécificité, le générateur utilise un procédé standard de 30 génération de code par compilation et assemblage bien connu de l'homme du métier. Le générateur peut en outre dépendre des particularités des langages supportés par le moteur 3, notamment C, C++, JAVA ou XML. 2909827 15 En plus de ces modifications portant sur les fonctions STUB, le générateur ajoute un certain nombre d'informations additionnelles qui seront utilisées par le moteur 3. Par exemple, le générateur va générer les données spécifiques comprenant notamment la liste des 5 services utilisés par le code originel, en particulier la fonction affiche_car. Il peut aussi ajouter, dans ces données spécifiques, un certain nombre d'identifiants permettant de garantir par exemple l'origine voire l'intégrité des couches logicielles hautes ou un numéro de version. 10 A ce stade, les couches logicielles hautes 4 et/ou 5 peuvent également être cryptées. On décrit maintenant l'interaction entre le téléphone mobile 1 et les 15 couches logicielles hautes selon l'invention. Lorsque le téléphone mobile 1 est démarré, le chargeur 14 examine, via le contrôleur de protocole de transport 9, s'il existe des couches logicielles hautes à charger dans une mémoire du téléphone mobile 20 1. Les couches logicielles hautes peuvent par exemple être contenues dans une mémoire externe SIM du téléphone mobile 1, ou une carte mémoire du téléphone mobile 1, ou accessibles à distance dans une 25 base de données via un protocole de transport. Ce protocole de transport peut être tout protocole de transport de données, par exemple Bluetooth, GPRS, WAP, ou TCP/IP. Si des couches logicielles hautes à charger sont détectées par le 30 chargeur 14, une notification est déclenchée de sorte à avertir un utilisateur du téléphone mobile 1. Cet utilisateur peut alors accepter ou refuser l'installation des couches logicielles hautes sur son terminal mobile 1. 2909827 16 Si l'utilisateur décide d'accepter l'installation des couches logicielles hautes sur son téléphone mobile 1, ces couches logicielles hautes sont d'abord chargées. 5 Le chargeur 14 réalise cette étape de chargement en utilisant un des protocoles de transport fournis par le contrôleur de protocole de transport 9. Le chargeur 14 contrôle certaines informations des couches logicielles hautes afin de vérifier leur intégrité. Par exemple, 10 le chargeur 14 vérifie que le service affiche_car nécessité par les couches logicielles hautes est bien disponible au niveau de l'interface 73 du moteur 3. Le chargeur 14 peut également être amené à demander un certain 15 nombre de certificats ou d'autorisations avant d'autoriser le chargement des couches logicielles hautes. Le chargement peut notamment n'être autorisé qu'en fonction d'un paiement ou de la réalisation d'une transaction financière. Il peut également n'être autorisé qu'après vérification des droits de l'utilisateur du téléphone 20 mobile 1 sur les couches logicielles hautes à charger. Le chargeur 14 réalise alors le chargement des couches logicielles hautes. Les couches logicielles hautes sont alors stockées dans une mémoire d'exécution du téléphone mobile 1 dans un format 25 exécutable par le moteur 3 et notamment le lanceur 8. Le stockage dans le format exécutable par le moteur 3 peut être réalisé soit en flux tendu lors du téléchargement, soit une fois le chargement terminé. 30 Une fois les couches logicielles chargées et stockées dans la mémoire d'exécution du terminal mobile 1, l'installeur 10 est apte à modifier les fonctions STUB des couches logicielles afin que l'appel à ces fonctions STUB lors de l'exécution se traduise par un appel au 2909827 17 proxy 11. Pour ce faire, la fonction STUB est redirigée sur le point d'entrée d'une fonction proxy du moteur 3. Une fois cette installation terminée, le code des couches logicielles 5 hautes peut être exécuté de manière connue en soi. Lorsque le code des couches logicielles hautes fait appel à un service du moteur 3, c'est donc le proxy 11 qui est réellement appelé. Par exemple, lorsque le code des couches logicielles hautes cherche 10 à accéder au service affiche_car, la fonction proxy(affiche_car) est en fait appelée. Grâce à la table de localisation des services du proxy, cette fonction proxy(affiche_car) sera alors redirigée vers une fonction affiche_car 15 des couches logicielles basses et notamment du micrologiciel 2. Ainsi, l'exécution des coucheslogicielles hautes s'effectue comme si le code de ces couches avait été assemblé avec le code des couches basses comme dans l'art antérieur. De nouvelles couches logicielles hautes peuvent alors être chargées dans le téléphone mobile 1 par le procédé tel que précédemment décrit. 25 Il est entendu que les couches logicielles hautes peuvent être exécutées sur n'importe quel type de terminal comprenant un moteur 3 tel que précédemment décrit. On décrit maintenant un procédé d'exécution des couches logicielles 30 hautes selon mode de réalisation de l'invention en référence à la FIG. 4. Sur la FIG. 4, le logiciel médiateur 5 a été préalablement chargé dans le téléphone mobile 1. Le logiciel médiateur comprend un 20 2909827 18 morceau de code 12 codant, à l'exécution, pour un appel à une fonction correspondant à un service ne pouvant être fourni que par le micrologiciel 2. 5 Selon l'invention, cette fonction est implémentée dans le logiciel médiateur 5 sous la forme d'une fonction générique STUB. L'installeur 10 détecte alors 21 la fonction STUB correspondant à la partie de code 12. L'installeur 10 redirige alors cette fonction STUB vers une entrée du proxy 1 1 . A l'exécution, l e proxy 1 1 , par 10 l'intermédiaire d'une table de redirection, transforme 23 cet appel en un appel à une fonction équivalente 13 du micrologiciel 2 de sorte à réaliser le service correspondant à la fonction appelée. Le chargement de différentes couches logicielles hautes comprenant 15 notamment un logiciel médiateur 4 et des applications 5 comme précédemment décrit permet une personnalisation améliorée du téléphone mobile 1. Le téléphone mobile 1 peut notamment être commercialisé par un 20 fabricant de téléphone mobile à moindre coût, la personnalisation du téléphone étant réalisée par le suite par un utilisateur du téléphone mobile 1 par le chargement des couches logicielles hautes 4 et 5. 25 REVENDICATIONS 1. Téléphone mobile (1) comprenant : - Une première mémoire ; - Un premier bloc logiciel assemblé (6), stocké dans ladite première mémoire, ledit premier bloc logiciel étant un assemblage de : o un micrologiciel (2) comprenant une partie de code (13), apte, à l'exécution, à réaliser une fonctionnalité, o des moyens de chargement (10, 14) agencés pour charger des couches logicielles hautes (4, 5) dans ledit téléphone mobile (1) ; o des moyens d'exécution (8, Il) aptes à exécuter lesdites couches logicielles hautes postérieurement à leur chargement par lesdits moyens de chargement, de sorte à réaliser ladite fonctionnalité. 2. Téléphone mobile selon la revendication 1 dans lequel ledit premier bloc logiciel assemblé (6) ne comprend pas de couches logicielles hautes. 3. Téléphone mobile selon l'une des revendications 1 ou 2 dans lequel ledit premier bloc logiciel est constitué dudit micrologiciel, desdits moyens de chargement, et desdits moyens d'exécution. 4. Téléphone mobile selon l'une des revendications 1 à 3, dans lequel les moyens d'exécution sont agencés pour rediriger un appel desdites couches logicielles hautes (4, 5) vers ladite partie de code du micrologiciel, de sorte à réaliser ladite fonctionnalité. 5. Téléphone mobile (1) selon la revendication 4 dans lequel lesdits moyens d'exécution comprennent : 30 2909827 20 - un proxy (Il) comprenant une table de redirection agencée de sorte à rediriger ledit appel desdites couches logicielles hautes vers ladite partie de code. 5 6. Téléphone mobile (1) selon la revendication 5 dans lequel ladite table de redirection comprend une correspondance entre des fonctions susceptibles d'être appelées par lesdites couches logicielles, et des fonctions identiques dudit micrologiciel. 10 7. Téléphone mobile (1) selon la revendication 5 ou 6 dans lequel les moyens de chargement (10, 14) comprennent un installeur (10) agencé pour modifier des appels de fonctions desdites couches logicielles hautes de sorte à diriger les appels vers ledit proxy. 15 8. Téléphone mobile (1) selon l'une des revendications précédentes dans lequel lesdits moyens de chargement (10, 14) sont aptes à charger lesdites couches logicielles hautes depuis un équipement distant dudit téléphone mobile par un protocole de transport de données. 20 9. Téléphone mobile (1) selon l'une des revendications précédentes dans lequel lesdits moyens de chargement sont aptes à charger lesdites couches logicielles hautes depuis une deuxième mémoire distincte de ladite première mémoire, vers ladite première mémoire. 10. Téléphone mobile (1) selon la revendication 9 dans lequel ladite deuxième mémoire est une mémoire amovible. 1 1 . Téléphone mobile (1) selon la revendication 10 dans lequel ladite 30 mémoire amovible est une carte SIM dudit téléphone mobile. 25 2909827 21 12. Système comprenant un téléphone mobile selon l'une quelconque des revendications précédentes, et des couches logicielles hautes assemblées comprenant au moins un logiciel médiateur (4) et des applications (5), lesdites couches logicielles hautes comprenant des 5 parties de codes, codant, à l'exécution, pour un appel à des services dudit micrologiciel (2), lesdites couches logicielles hautes étant aptes à être exécutées par lesdits moyens d'exécution. 13. Procédé pour exécuter des couches logicielles hautes sur un 10 téléphone mobile selon l'une quelconque des revendications, 1 à 11 comprenant des étapes dans lesquelles : - on charge lesdites couches logicielles hautes dans le téléphone mobile (1) ; - on exécute lesdites couches logicielles hautes. 15 14. Procédé selon la revendication 13 dans lequel lesdites couches logicielles hautes comprennent une partie codant pour un appel à une fonction correspondant à un service dudit micrologiciel (2), et dans lequel : 20 - ledit appel est redirigé (22) vers ledit proxy ; - ledit proxy redirige (23) ledit appel vers une partie de code dudit micrologiciel codant, à l'exécution, pour ledit service. 15. Procédé de fabrication d'un téléphone mobile comprenant des 25 étapes dans lesquelles : - on développe un micrologiciel (2) comprenant une partie de code apte, à l'exécution, à réaliser une fonctionnalité; - on développe des moyens de chargement (10, 14) aptes à charger des couches logicielles hautes (4, 5) dans ledit téléphone mobile (1) ; - on développe des moyens d'exécution (8, Il) aptes à exécuter lesdites couches logicielles hautes postérieurement à leur chargement par lesdits moyens de chargement, de sorte à réaliser ladite fonctionnalité ; 2909827 22 - on assemble le micrologiciel, lesdits moyens de chargement et lesdits moyens d'exécution de sorte à former un premier bloc logiciel ; 5 - on charge dans une mémoire dudit téléphone mobile, ledit premier bloc logiciel.