Interview mit Flar2, Entwickler von ElementalX Kernel Teil 1

Wir interviewen flar2, den Entwickler des ElementalX-Kernels, und vertiefen uns in Themen wie sein Privatleben, seine Entwicklungsarbeit und mehr.

Kürzlich durfte ich flar2 interviewen, den Mann hinter dem berühmten ElementalX-Kernel, und seine noch beliebtere ElementalX-Kernel-Manager-Anwendung. Er hat eine Version seines Kernels für eine Vielzahl von Geräten veröffentlicht, darunter OnePlus und Nexus-Geräte.

In diesem Teil fragen wir flar2 nach seinen Gedanken zu Android-Leistungsengpässen und mehr über sein Privatleben! Sie können auschecken Teil 2 dieses Interviews hier.


Hallo! Stellen Sie sich zunächst einmal vor, bevor wir zu den Fragen kommen.

Mein Name ist Aaron Segaert, auch bekannt als flar2. Die meisten Leute kennen mich als Entwickler des ElementalX-Kernels. Ich habe auch ein paar Apps.

Hatten Sie vorher Erfahrung mit Computern und Entwicklung? Wie ein Informatikstudium oder so?

Ich habe schon in jungen Jahren mit Computern angefangen. Mein erster Computer war ein Texas Instruments TI-99/4A. Ich habe das Programmieren in BASIC gelernt und meine Programme auf einer Kassette gespeichert (ja, ich bin alt). Dann kaufte unsere Familie einen 286-IBM-Klon, und ich verzichtete zu diesem Zeitpunkt auf das Programmieren, weil das früher war Das Internet war weithin bekannt und ich hatte keine Ressourcen oder kannte irgendjemanden, der darüber verfügte Computer. Ich habe an der Universität mit Informatik begonnen, bin aber im ersten Jahr durchgefallen. Ich bin nie wirklich zum Unterricht gegangen, weil ich zu sehr damit beschäftigt war, Spaß zu haben und mit meiner Band Auftritte zu spielen. Später kehrte ich zur Schule zurück und promovierte in Soziologie. Während meiner Studienzeit interessierte ich mich für Linux und Open Source, beschäftigte mich aber nie ernsthaft mit dem Programmieren. Ich habe hier und da kleinere Beiträge beigesteuert, aber größtenteils nur Skripte und kleine Programme für meine eigenen Zwecke erstellt. Ich habe meinen ersten Linux-Kernel wahrscheinlich um 2002 gebaut. Damals habe ich keinen eigenen Code geschrieben, sondern nur mit verschiedenen Patches und Build-Optionen experimentiert, um die Leistung zu steigern. Ich interessierte mich mehr für den Bau von Computern, das Übertakten und allgemein für den Versuch, Hardware dazu zu bringen, Dinge zu tun, die sie nicht tun sollte.

Hat Sie eine andere Entwicklung als die Android-App-Entwicklung und Kernel-Entwicklung interessiert?

Nicht wirklich, ich habe für fast alles, was ich am Computer tun musste, gute Tools gefunden. Der Grund, warum ich angefangen habe, an Kerneln und Apps für Android zu arbeiten, liegt darin, dass ich das Gefühl hatte, dass bestimmte Funktionen erforderlich sind und die vorhandenen Tools verbessert werden können. Zum Beispiel habe ich Button Mapper erstellt, weil ich wollte, dass die Home-Taste auf Samsung-Telefonen mehr kann, und mir gefielen die umgedrehten Zurück- und Letzten-Tasten nicht. Ich habe DevCheck durchgeführt, weil andere Systeminfo-Apps die Informationen, die ich sehen wollte, nicht klar und prägnant anzeigten. Der ElementalX-Kernel fügt neue Hardwarefunktionen hinzu und EX Kernel Manager steuert diese Funktionen und fügt einige Tools hinzu, die ich verwende, um die Entwicklung zu vereinfachen. Ich löse gerne Probleme und es macht Spaß, Dinge zurückzuentwickeln oder einem Telefon neue Hardwarefunktionen hinzuzufügen.

Wie sind Sie mit der Android-Entwicklung, insbesondere der Kernel-Entwicklung, in Kontakt gekommen?

Ich habe Mobiltelefone schon immer gehasst und mich lange dagegen gewehrt. Meine Frau und ich teilten uns ein einfaches Klapphandy mit einem Minimaltarif, das hauptsächlich für Notfälle genutzt wurde. Im Jahr 2012 brannte unser Haus und wir waren fast drei Monate außer Haus. Alle unsere Versorgungsnetze waren abgeschaltet, und wir beschlossen, unseren Festnetzanschluss nicht wieder anzuschließen, also besorgten wir uns ein Smartphone, das, glaube ich, ein LG P war. Mir wurde klar, dass es wie ein Mini-Computer war und ich beschloss, dass ich einen eigenen Mini-Computer brauchte, also kaufte ich mir ein HTC One V.

Da ich so ziemlich alles bastele und modifiziere, habe ich sofort XDA entdeckt und festgestellt, dass Android-Telefone nicht nur mit Linux laufen, sondern auch übertaktet werden können. Ich bin schon lange Linux-Benutzer, also habe ich einen der Kernel geforkt und war begeistert. Ich kaufte mir bald ein günstiges Acer-Tablet und fing an, mit der Hardware und dem Kernel herumzuspielen, weil ich wollte, dass es USB-OTG hat. Es stellte sich heraus, dass die Hardware nicht dazu in der Lage war, aber so begann ich, mehr über mobile Hardware zu lernen. Ich habe nie öffentlich einen Kernel für das LG-, Acer-Tablet oder One V veröffentlicht, sondern für jeden meine eigenen Kernel gebaut und benutzerdefinierte ROMs installiert, was damals notwendig war, da Android noch nicht ausgereift war.

Ich war bald über das One V hinausgewachsen und habe es gegen ein HTC One XL eingetauscht, und das war die Geburtsstunde von ElementalX.

Was war ursprünglich das Ziel von ElementalX und wie hat sich das in den letzten Jahren verändert?

Das Ziel von ElementalX bestand schon immer darin, nützliche Hardwarefunktionen hinzuzufügen, ohne die Stabilität oder Leistung zu beeinträchtigen, und etwas herauszubringen, auf das sich die Benutzer verlassen können, wenn es funktioniert. Für mich steht die Stabilität immer an erster Stelle, weil mein Telefon zuverlässig sein muss. Keine zufälligen Neustarts oder Dinge wie die nicht funktionierende Kamera. Die Philosophie ist über die Jahre gleich geblieben. Ich halte die Dinge einfach und füge Hardwarefunktionen hinzu, die ich nützlich finde. Dinge wie Weckgesten, Modus für hohe Helligkeit, Vibrationsanpassung, Klangsteuerung, Unterstützung für weitere Dateisysteme, Joysticks usw.

Ich arbeite hart daran, meine Kernel auf dem neuesten Stand, einfach zu installieren und so weitgehend kompatibel wie möglich zu halten. Einige Benutzer sind enttäuscht, dass ich nicht viele Patches von CAF oder Upstream-Linux hinzufüge, aber mein Hauptziel ist es, ein sehr stabiles Produkt ohne seltsame Probleme bereitzustellen. Viele meiner Benutzer sind keine Leute, die viel auf XDA posten, sondern Power-User, die ein bestimmtes Bedürfnis befriedigen möchten von einem benutzerdefinierten Kernel oder von Leuten, die gelegentlich gerne an ihrer Hardware basteln, aber kein Hardcore sind Flashaholics. Ich möchte, dass Menschen, die nicht die neuesten Android-Entwicklungen verfolgen, ElementalX problemlos nutzen können.

Es gibt viele andere Kernel, die mit Upstream-Patches experimentieren. In ElementalX verwende ich einen sorgfältig ausgewählten Satz an Patches und Optimierungen. In meiner Karriere außerhalb von Android messe ich Dinge, die schwer zu messen sind, und nutze Beweise, um Richtlinien zu entwickeln und Ratschläge zu geben. Ich wende die gleichen Prinzipien auf die Kernel-Entwicklung an und verwende im Allgemeinen keine Patches, es sei denn, es gibt einen messbaren Nutzen. Ein Beispiel hierfür ist der Batteriemonitor im EX Kernel Manager. Es bietet eine Möglichkeit, die Auswirkungen von Batterieoptimierungen und Kerneländerungen objektiv zu messen. Die schwebenden Monitore in DevCheck sind ein weiteres Tool, das ich für die Entwicklung verwende, hauptsächlich zur Überwachung der CPU Frequenzen und Temperaturen bei verschiedenen Anwendungsfällen wie Spielen, Ansehen von Videos oder im Internet Stöbern.

Wie haben sich die Änderungen an Android in den letzten Jahren auf Ihre Arbeit ausgewirkt?

Manchmal ist es schwierig, mit den vielen Sicherheitsänderungen umzugehen, aber ich verstehe sie. Wenn ich mich nicht irre, ist Android mittlerweile weiter verbreitet als Windows, was es zu einem Angriffsziel macht. Böse Menschen werden jeden erdenklichen Winkel nutzen, um Android-Benutzer auszunutzen.

Das Verhindern von Änderungen an der Systempartition ist offensichtlich der Schlüssel zum Schutz der Integrität eines Geräts. Ich erinnere mich, als HTC 2012 oder 2013 damit begann und es mir wie das Ende der Welt vorkam. Zu dieser Zeit war das Schreiben in /system für Root, die Bearbeitung von build.prop, die Installation privilegierter Apps, das Entfernen von Bloatware und praktisch jeden gängigen Mod erforderlich. Viele der damaligen Anpassungen umfassten Dinge wie Deodexierung und Modifikation des Frameworks. Lange Zeit war von HTC kein Kernel-Quellcode verfügbar, daher habe ich ein Kernel-Modul erstellt, um den Systemschreibschutz im Standardkernel zu deaktivieren, womit ich zunächst als Entwickler bekannt wurde. Aber im Laufe der Zeit, als Schutzfunktionen wie Verity zu einem Standardbestandteil von Android wurden, zwang es zu Innovationen und Verbesserungen Lösungen wie Chainfires systemloses Root und jetzt gibt es Magisk, das alle möglichen Dinge kann systemlos.

Ein weiteres großes Problem ist SELinux, das dazu führte, dass eine Menge Apps nicht mehr funktionierten. Viele Benutzer haben es gehasst und bis heute gibt es Leute, die SELinux im permissiven Modus ausführen, was eine sehr schlechte Idee ist. Ich würde sagen, dass SELinux die wichtigste Sicherheitsfunktion von Android ist. Um ein Beispiel für die Bedeutung von SELinux zu geben: Als ich das Pixel XL zum ersten Mal bekam, war kein Root verfügbar, aber der Dirty Cow-Exploit machte Schlagzeilen. Ich wollte unbedingt mit der Kernel-Entwicklung beginnen, was bedeutet, sysfs-Dateien zu durchsuchen oder zu ändern, was Root erfordert. Ich habe eines der Proof-of-Concepts von Dirty Cow kompiliert und konnte Befehle als Root ausführen, aber SELinux hinderte mich daran, irgendetwas Interessantes zu tun. Ich musste die boot.img ändern, um SELinux freizügig zu machen. Ich hätte möglicherweise vollen Zugriff erhalten, ohne den Kernel zu ändern, aber es hätte viele, viele Stunden gedauert. Abgesehen davon bleibt es bei der Durchsetzung von SELinux, es ist die Hauptverteidigungslinie gegen Malware. Erfahren Sie, wie Sie mit sepolicy-inject bestimmte Richtlinien nach Bedarf ändern.

Als Nougat auf den Markt kam, wurden zunächst fast alle /sys und /proc für Benutzer-Apps unsichtbar. Root war schon immer notwendig, um Änderungen vorzunehmen, aber plötzlich war Root einfach notwendig, um /sys und /proc zu lesen. Es gibt definitiv Informationen in diesen Dateisystemen, die zur Ausnutzung eines Geräts verwendet werden können, daher mussten Einschränkungen hinzugefügt werden. Es gibt aber auch viele Informationen, die Benutzer sehen können sollten. Warum sollte Root erforderlich sein, um den aktuellen I/O-Planer, die GPU-Frequenz oder den Typ der Panel-Hardware anzuzeigen? Ich musste viele Änderungen an DevCheck vornehmen, um damit umzugehen, und viele Benutzer waren verwirrt darüber, warum die Informationen nach dem Update auf Nougat nicht mehr verfügbar waren. Schließlich wurden einige der Beschränkungen für sysfs-Pfade aufgehoben.

Abgesehen davon gefallen mir aus Sicht der App-Entwicklung die meisten API-Änderungen an Android, auch wenn sie mich dazu zwingen, viele Änderungen an meinen Apps vorzunehmen. Diese Veränderungen sind in der Regel zum Besseren.


Schauen Sie sich Teil 2 dieses Interviews an!