La Nexus 9 vient d’être décortiquée au niveau logiciel. L’occasion d’apprendre que les binaires propriétaires étaient désormais séparées du système. Un pan du projet de Jean-Baptiste Quéru (alias JBQ) vient enfin de voir le jour, facilitant le travail des ROM cookers.

JBQ

C’est par le biais d’un post sur le profil Google+ de Jean-Baptiste Quéru que l’on apprend la bonne nouvelle. Sur la Nexus 9, les binaires propriétaires sont (enfin !) séparées du reste du système. Les premières sont rangées dans la partition /vendor alors que le reste conserve sa place dans la partition /system. On ne sait pas encore si cela sera uniquement le cas sur les appareils Nexus ou sur tous les appareils sous Android Lollipop. Cette nouveauté va permettre à tout le monde de distribuer AOSP ou d’autres versions de manière publique pour la Nexus 9 et tous les appareils qui fonctionneront de la même manière. La raison : AOSP est sous licence open source (Apache) alors que les binaires propriétaires (pilotes, codecs, DRM, etc.) sont distribuées directement par les constructeurs, avec des licences différentes souvent fermées. Il est donc impossible à quiconque, sauf accord spécifique, de redistribuer les images AOSP à cause de la présence de ces binaires propriétaires. Mais cela va devenir possible grâce à la séparation entre le système et les binaires propriétaires. Le travail des ROM cookers sera également facilité, pour des ROM custom plus rapidement disponibles.

On imagine que ce fonctionnement sera étendu à tous les appareils des constructeurs qui jouent actuellement le jeu (comme par exemple Sony) en distribuant leurs binaires propriétaires avec AOSP. Mais il faudra attendre encore un peu avant d’en être certain. Android prend donc une tournure davantage open-source et cela va dans le sens des travaux que Jean-Baptiste Quéru avait réalisés lorsqu’il travaillait pour AOSP. Pour rappel, il avait claqué la porte l’an dernier d’AOSP en raison d’un différent avec Qualcomm : le constructeur avait refusé d’inclure, dans les dépôts d’AOSP, les pilotes nécessaires au fonctionnement de la Nexus 7 . La conséquence : il était impossible de télécharger AOSP et d’installer Android sur la Nexus 7 sans manipulation supplémentaire. Il fallait passer par Google pour se procurer les fameuses binaires propriétaires. Une entrave au fonctionnement open source d’Android.

Vers des ROM custom plus rapidement disponibles ?

Malheureusement, rares sont les constructeurs à jouer le jeu de l’open source et à intégrer leurs pilotes à AOSP. La plupart du temps, ils passent des accords avec Google qui se charge de les intégrer directement à Android, rendant alors très difficile la tâche des ROM cookers qui sont obligés de trouver des moyens détournés d’accéder aux pilotes pour réussir à porter une ROM custom sur ces appareils. On est très loin de la philosophie open source d’AOSP. Grâce à l’intégration des binaires propriétaires directement dans la partition /vendor, il devient possible de télécharger un AOSP pur, 100% open source, et de le compiler pour la Nexus 9, les pilotes étant déjà dans l’appareil. Enfin, dernière grosse nouveauté pour l’utilisateur : sur les appareils qui séparent la partition /vendor de la parition /system, il sera possible de télécharger une ROM custom sans que celle-ci ne contienne les pilotes de l’appareil. Un gain de temps puisque les ROM cookers n’ont plus à se soucier des pilotes !

On peut supposer que cette nouvelle manière de procéder (séparer les binaires propriétaires du système) a pu être réalisée grâce à la collaboration de Nvidia sur la Nexus 9. En effet, contrairement à Qualcomm, le constructeur a accepté d’intégrer les pilotes à AOSP. On imagine que si le Snapdragon 805 avait été choisi à la place du Tegra K1, cela n’aurait pas été possible. Une situation un peu cocasse puisque la question se pose aussi dans le monde des ordinateurs où Nvidia est réputé pour ne pas être très collaboratif pour fournir des pilotes efficaces sous Linux.