Android : un code sans trop de défauts… grâce au noyau Linux

Un audit du code d’Android mené par Coverity dévoile un OS Open Source faisant largement mieux que la moyenne en matière de défauts. Avec 359 bogues recensés, le code reste globalement sécurisé, tiré vers le haut par un noyau Linux de qualité. Les développements spécifiques à Android sont quant à eux plus défectueux.

Android, qui motorise aujourd’hui l’essentiel des terminaux mobiles aux Etats-Unis, et occupe la seconde place du marché mondial des OS mobiles offre-t-il à ses utilisateurs un code suffisamment sécurisé ? Oui et non, semble aujourd’hui répondre le spécialiste d'analyse de code source Coverity à la publication de l’édition 2010 de son Open Source Integrity Report.

Après avoir passé au crible les lignes de code de la version 2.6.32 d’Android (nom de code Froyo), qui habite notamment le terminal HTC Droid Incredible, il apparait que l’OS initié par Google affiche quelque 359 bogues, dont 25 % classés très critiques par Coverity. 88 défauts, souligne la société, qui favorisent principalement la corruption de mémoire, l’accès non autorisé  à la mémoire, aux ressources. Bref des défauts susceptibles de provoquer des troubles sérieux en matière de sécurité, de menacer l'intégrité des données et de planter le système. L’étude ajoute également que la nature de ces bogues implique généralement une correction avant toute mise en production et commercialisation. C’est du moins de ce que semblent pratiquer les clients de Coverity, confirme la société dans son rapport. Si Google ne semble pas être un client des outils de la société, Coverity semble avoir transmis les résultats de ses tests à Mountain View 60 jours avant leur publication, comme le soulignent nos confrères de Forbes.

Si tout n'est donc pas parfait, le check-up d'Android ne révèle toutefois rien d’alarmant, si on le compare aux autres chiffres sortis par les outils d’audit de Coverity. En dépit de ces 359 défauts, dont 88 critiques, Android est nettement en dessous de la moyenne enregistrée par les autres projets Open Source, constate la société. Ainsi avec 0,47 défaut pour chaque 1000 lignes de code, le noyau Android affiche une densité de défauts inférieure à la moyenne (qui est de 1 défaut pour 1000 lignes de code). “Le noyau Android utilisé dans le HTC Droid Incredible contient presque moitié moins de bogues que la moyenne généralement constatée pour un logiciel de cette taille", commente Coverity, qui du coup classe Android parmi les logiciels ayant atteint le Integrity Level 1 (un rang où sont rassemblés les logiciels en dessous de la moyenne en terme de densité de défauts). Proche de Linux donc, sur lequel, rappelons-le, Android repose.

coverityjpg

Reste que les briques de code propres à Android - celles qui ne font pas partie du noyau Linux - affichent des résultats bien moins bons. La communauté de développeurs Android aurait donc fourni du code défectueux, contenant deux fois plus de défauts en moyenne que le noyau Linux. Rien d’anormal à cela, souligne encore Coverity. Et d'expliquer : “les composants et pilotes spécifiques à Android ont été produits récemment et du code nouveau est plus propice à fournir une densité de défauts plus élevée, même s’il est testé avec rigueur. De plus, le noyau Linux repose sur un long historique d’analyse statistique ; les défauts du passé ont donc déjà été corrigés.”

A cela s’ajoute également le phénomène de fragmentation de la communauté, rappelle la société, qui explique qu’Android, comme l’Open Source en général, repose sur des centaines de contributeurs, provenant de Google, de la communauté Android et des constructeurs OEM de terminaux. Ce qui a pour conséquence de rendre la tâche un peu plus difficile quand il s’agit de partager la responsabilité du code, souligne en substance Coverity dans son rapport.

Pour approfondir sur Editeurs