Contexte et découverte
Le 11 septembre, l’équipe de Minitap a consulté le dépôt public Artemis publié par Google pour l’automatisation de téléphones mobiles. En comparant les fichiers, ils ont constaté que plusieurs modules, notamment la connexion aux appareils Android, étaient identiques à ceux du projet mobile‑use, développé en interne et publié sous licence Apache 2.0. Les instructions de l’agent « Hopper », les exemples de messagerie WhatsApp et même un bug de lecture de fichier partagé figuraient mot pour mot dans les deux bases de code.
Un examen de l’historique Git a révélé que les premiers commits d’Artemis mentionnaient les auteurs Pierre‑Louis Favreau, Jean‑Pierre Lo et Nicolas Dehandschoewercker. En août, un force‑push a remplacé ces informations par un nouvel auteur, supprimant toute trace des contributeurs originaux. Le commit concerné ne modifiait aucun fichier autre que le champ author du fichier de métadonnées.
// version initiale du package.json
"author": "Pierre‑Louis Favreau, Jean‑Pierre Lo, Nicolas Dehandschoewercker"
// version après le force‑push
"author": "Google AI Team"
Analyse du code et des exigences de licence
Le code partagé comprend une fonction connectToDevice() qui utilise exactement les mêmes appels ADB et la même logique de gestion d’erreurs que celle de mobile‑use (ligne 42‑58). La duplication dépasse le simple « inspiration » : les signatures de fonctions, les commentaires et même les identifiants de variables sont conservés, ce qui constitue une copie directe au sens du droit d’auteur.
La licence Apache 2.0, appliquée à mobile‑use, impose explicitement dans son article 4 la conservation des mentions de droit d’auteur et des avis de licence lors de toute redistribution. Elle requiert également l’inclusion d’un fichier NOTICE contenant les attributions originales. Aucun de ces éléments n’apparaît dans le README d’Artemis, ni dans le fichier NOTICE du dépôt, ce qui constitue une violation contractuelle de la licence.
Le même bug que les développeurs de mobile‑use ont identifié – un fichier results.txt qui échoue à la lecture lors de la deuxième exécution – persiste dans la version initiale d’Artemis. La correction ultérieure, introduite dans un commit séparé, confirme que le code était bien dérivé, car le correctif cible exactement la même ligne de code incriminée.
Implications pour l’écosystème open source
Lorsque des acteurs majeurs réutilisent du code sans attribution, le mécanisme de confiance qui sous‑tend les projets open source s’érode. Les contributeurs perdent la visibilité nécessaire pour obtenir du feedback, des contributions ou des opportunités commerciales. De plus, l’absence d’attribution complique la traçabilité des vulnérabilités : un correctif publié par l’auteur original peut ne jamais être intégré dans le fork non crédité, augmentant le risque d’exposition.
Sur le plan juridique, la non‑conformité à la licence Apache 2.0 expose Google à des réclamations de violation de droits d’auteur, même si l’entreprise possède des ressources légales importantes. La suppression des métadonnées d’auteur via un force‑push constitue également une altération de l’historique Git, ce qui va à l’encontre des bonnes pratiques de transparence et de reproductibilité des builds.
Réponses et perspectives
Minitap a ouvert un ticket public sur le dépôt Artemis et a contacté directement les équipes Google, demandant la réintégration des attributions et la mise à jour du fichier NOTICE. À ce jour, aucune réponse officielle n’a été fournie. Le cas souligne la nécessité d’outils automatisés de détection de duplication de code et de vérification de conformité de licence dans les pipelines CI/CD, afin d’éviter que des projets de grande envergure ne reproduisent involontairement des violations.
En attendant, les mainteneurs de projets open source sont encouragés à publier leurs historiques de commits complets, à activer la protection contre les force‑push et à recourir à des services de scanning de licences (ex. FOSSology, ScanCode) avant toute publication externe.