Entretien avec Flar2, développeur du noyau ElementalX, partie 1

click fraud protection

Nous interviewons flar2, le développeur du noyau ElementalX et abordons des sujets tels que sa vie personnelle, son travail de développement et bien plus encore.

J'ai récemment eu l'occasion d'interviewer flar2, l'homme derrière le célèbre noyau ElementalX, et son application encore plus populaire ElementalX Kernel Manager. Il a publié une version de son noyau pour une vaste gamme d'appareils, notamment OnePlus et les appareils Nexus.

Dans cette partie, nous demandons ce que Flar2 pense des goulots d'étranglement des performances d'Android et plus encore sur sa vie personnelle! Vous pouvez consulter partie 2 de cette interview ici.


Salut! Présentez-vous tout d’abord avant de passer aux questions.

Je m'appelle Aaron Segaert, également connu sous le nom de flar2. La plupart des gens me connaissent en tant que développeur du noyau ElementalX. J'ai aussi quelques applications.

Aviez-vous auparavant une expérience en informatique et en développement? Comme un diplôme en informatique ou quelque chose comme ça ?

J'ai commencé avec l'informatique quand j'étais très jeune. Mon premier ordinateur était un Texas Instruments TI-99/4A. J'ai appris à coder en BASIC et j'ai sauvegardé mes programmes sur une cassette (oui, je suis vieux). Ensuite, notre famille a acheté un clone IBM 286, et j'ai abandonné le codage à ce moment-là parce que c'était avant Internet était largement connu et je n'avais aucune ressource ni même connaissais quelqu'un d'autre qui avait un ordinateur. J'ai commencé l'informatique à l'université, mais j'ai raté en première année. Je ne suis jamais vraiment allé en cours parce que j'étais trop occupé à m'amuser et à jouer avec mon groupe. Plus tard, je suis retourné aux études et j'ai obtenu un doctorat en sociologie. Pendant mes années d'étudiant, je me suis intéressé à Linux et à l'open source, mais je ne me suis jamais lancé dans la programmation sérieuse. J'ai contribué à des éléments mineurs ici et là, mais j'ai surtout créé des scripts et de petits programmes pour mes propres besoins. J'ai probablement construit mon premier noyau Linux vers 2002. À l'époque, je n'écrivais pas mon propre code, j'expérimentais seulement différents correctifs et options de construction pour améliorer les performances. J'étais plus intéressé par la construction d'ordinateurs, l'overclocking et, de manière générale, j'essayais de faire en sorte que le matériel fasse des choses qu'il n'était pas censé faire.

Est-ce qu'un développement autre que le développement d'applications Android et le développement du noyau vous intéresse ?

Pas vraiment, j'ai trouvé de bons outils disponibles pour presque tout ce que je devais faire sur ordinateur. La raison pour laquelle j'ai commencé à travailler sur des noyaux et des applications pour Android est parce que je sentais qu'il y avait un besoin pour certaines fonctionnalités et qu'il y avait une marge d'amélioration sur les outils existants. Par exemple, j'ai créé Button Mapper parce que je voulais que la touche d'accueil des téléphones Samsung fasse plus, et je n'aimais pas les touches inversées et récentes. J'ai créé DevCheck parce que d'autres applications d'informations système n'affichaient pas les informations que je souhaitais voir de manière claire et concise. Le noyau ElementalX ajoute de nouvelles fonctionnalités matérielles et EX Kernel Manager contrôle ces fonctionnalités et ajoute quelques outils que j'utilise pour faciliter le développement. J'aime résoudre des problèmes et c'est un défi amusant de faire de l'ingénierie inverse ou d'ajouter de nouvelles fonctionnalités matérielles à un téléphone.

Comment êtes-vous entré en contact avec le développement Android, en particulier le développement du noyau?

J'ai toujours détesté les téléphones portables et j'y ai longtemps résisté. Ma femme et moi partagions un téléphone à clapet basique avec un forfait minimal qui était principalement utilisé en cas d'urgence. En 2012, nous avons eu un incendie chez nous et sommes restés éteints pendant près de trois mois. Tous nos services publics ont été coupés et nous avons décidé de ne pas reconnecter notre ligne fixe. Nous avons donc acheté un smartphone, qui était un LG P, je pense. J'ai réalisé que c'était comme un mini-ordinateur et j'ai décidé que j'avais besoin de mon propre mini-ordinateur, j'ai donc acheté un HTC One V.

Depuis que je bricole et modifie à peu près tout, j'ai immédiatement découvert XDA et découvert que non seulement les téléphones Android fonctionnaient sous Linux, mais qu'ils pouvaient également être overclockés. Je suis un utilisateur Linux depuis longtemps, alors j'ai forké l'un des noyaux et je suis devenu accro. J'ai rapidement acheté une tablette Acer bon marché et j'ai commencé à jouer avec ce matériel et ce noyau parce que je voulais qu'elle soit équipée d'un port USB OTG. Il s'est avéré que le matériel n'était pas performant, mais c'est ainsi que j'ai commencé à en apprendre davantage sur le matériel mobile. Je n'ai jamais publié publiquement de noyau pour les tablettes LG, Acer ou One V, mais j'ai construit mes propres noyaux pour chacun et installé des ROM personnalisées, ce qui était nécessaire à l'époque, car Android n'était pas encore mature.

J'ai vite dépassé le One V et j'ai échangé contre un HTC One XL et c'est à ce moment-là qu'ElementalX est né.

Quel était l’objectif initial d’ElementalX et comment cela a-t-il changé ces dernières années ?

L'objectif d'ElementalX a toujours été d'ajouter des fonctionnalités matérielles utiles, sans compromettre la stabilité ou les performances, et de proposer quelque chose sur lequel les gens peuvent compter pour simplement travailler. Je donne toujours la priorité à la stabilité car j’ai besoin que mon téléphone soit fiable. Pas de redémarrages aléatoires ou des choses comme la caméra qui ne fonctionne pas. La philosophie est restée la même au fil des années. Je garde les choses simples et ajoute des fonctionnalités matérielles que je trouve utiles. Des éléments tels que les gestes de réveil, le mode haute luminosité, le réglage des vibrations, le contrôle du son, la prise en charge de davantage de systèmes de fichiers, de joysticks, etc.

Je travaille dur pour garder mes noyaux à jour, faciles à installer et aussi largement compatibles que possible. Certains utilisateurs sont déçus que je n'ajoute pas beaucoup de correctifs provenant de CAF ou de Linux en amont, mais mon objectif principal est de fournir un produit très stable sans problèmes étranges. Beaucoup de mes utilisateurs ne sont pas des gens qui publient beaucoup sur XDA, ce sont des utilisateurs expérimentés qui ont un besoin spécifique satisfait. par un noyau personnalisé, ou par des personnes qui aiment occasionnellement bricoler leur matériel mais qui ne sont pas hardcore des accros du flash. Je souhaite que les personnes qui ne suivent pas tous les derniers développements Android puissent utiliser ElementalX sans problème.

Il existe de nombreux autres noyaux qui expérimentent des correctifs en amont. Dans ElementalX, j'utilise un ensemble de correctifs et d'optimisations soigneusement sélectionnés. Dans ma carrière en dehors d'Android, je mesure des choses difficiles à mesurer et j'utilise des preuves pour élaborer des politiques et fournir des conseils. J'applique les mêmes principes au développement du noyau et n'utilise généralement pas de correctifs sauf s'il y a un avantage mesurable. Le moniteur de batterie dans EX Kernel Manager en est un exemple. Il offre un moyen de mesurer objectivement l’effet des ajustements de la batterie et des modifications du noyau. Les moniteurs flottants dans DevCheck sont un autre outil que j'utilise pour le développement, principalement pour surveiller le processeur. fréquences et températures lors de différents cas d'utilisation comme les jeux ou le visionnage de vidéos ou du Web navigation.

Comment les changements apportés à Android au cours des dernières années ont-ils affecté votre travail ?

Il est parfois difficile de gérer les nombreux changements de sécurité, mais je les comprends. Si je ne me trompe pas, Android est désormais plus utilisé que Windows, ce qui en fait une cible. Les mauvaises personnes vont utiliser tous les angles possibles pour exploiter les utilisateurs d’Android.

Empêcher la modification de la partition système est évidemment essentiel pour protéger l’intégrité d’un périphérique. Je me souviens quand HTC a commencé à faire cela en 2012 ou 2013 et cela semblait être la fin du monde. À l'époque, il était nécessaire d'écrire dans /system pour root, éditer build.prop, installer des applications privilégiées, supprimer les bloatwares et pratiquement tous les mods populaires. De nombreuses personnalisations à l'époque impliquaient des choses comme la désodexation et la modification du framework. Pendant longtemps, aucune source de noyau n'était disponible auprès de HTC, j'ai donc créé un module de noyau pour désactiver la protection en écriture du système dans le noyau d'origine, pour lequel je me suis d'abord fait connaître en tant que développeur. Mais au fil du temps, à mesure que des protections telles que Verity sont devenues un élément standard d'Android, cela a forcé l'innovation et l'amélioration. des solutions comme la racine sans système de Chainfire et maintenant il y a Magisk qui fait toutes sortes de choses sans système.

Un autre problème important est SELinux, qui a empêché de nombreuses applications de fonctionner. De nombreux utilisateurs l'ont détesté et il y a encore aujourd'hui des gens qui utilisent SELinux en mode permissif, ce qui est une très mauvaise idée. Je dirais que SELinux est la fonctionnalité de sécurité la plus importante d'Android. Pour donner un exemple de l'importance de SELinux, lorsque j'ai acheté le Pixel XL pour la première fois, il n'y avait pas de racine disponible, mais l'exploit Dirty Cow faisait l'actualité. J'avais hâte de commencer le développement du noyau, ce qui signifie rechercher ou modifier les fichiers sysfs, ce qui nécessite root. J'ai compilé l'une des preuves de concept de Dirty Cow et j'ai pu exécuter des commandes en tant que root, mais SELinux m'a empêché de faire quelque chose d'intéressant. J'ai dû modifier le boot.img pour rendre SELinux permissif. J'aurais peut-être obtenu un accès complet sans modifier le noyau, mais cela aurait pris de très nombreuses heures. Tout cela pour dire, laissez SELinux s'appliquer, c'est la principale ligne de défense contre les logiciels malveillants. Apprenez à utiliser sepolicy-inject pour modifier des politiques spécifiques selon vos besoins.

Lorsque Nougat est arrivé, au début, presque tous les fichiers /sys et /proc sont devenus invisibles pour les applications utilisateur. Root a toujours été nécessaire pour apporter des modifications, mais du coup, root était simplement nécessaire pour lire /sys et /proc. Il y a certainement des informations dans ces systèmes de fichiers qui peuvent être utilisées pour exploiter un périphérique, il a donc été nécessaire d'ajouter des restrictions. Mais il existe également de nombreuses informations que les utilisateurs devraient pouvoir voir. Pourquoi root devrait-il être requis pour voir le planificateur d'E/S actuel, la fréquence du GPU ou le type de matériel du panneau? J'ai dû apporter de nombreuses modifications à DevCheck pour résoudre ce problème, et de nombreux utilisateurs ne comprenaient pas pourquoi les informations n'étaient plus disponibles après la mise à jour vers Nougat. Finalement, certaines restrictions sur les chemins sysfs ont été levées.

En dehors de cela, du point de vue du développement d'applications, j'aime la plupart des modifications de l'API apportées à Android, même si elles m'obligent à apporter de nombreuses modifications à mes applications. Ces changements sont généralement pour le mieux.


Découvrez la deuxième partie de cette interview !