So erstellen Sie ein benutzerdefiniertes ROM aus dem Android Open Source-Projekt

Wenn Sie mit dem Rooten Ihres Android-Telefons oder dem Herunterladen benutzerdefinierter ROMs wie dem sehr beliebten CyanogenMod oder seinem Nachfolger Lineage OS vertraut sind, haben Sie sich vielleicht gefragt – wie bauen die Leute diese ROMs? Wie viel Arbeit steckt genau in der Entwicklung eines angepassten Roms?

Dieser Leitfaden führt Sie durch die Grundlagen der Entwicklung Ihres eigenen benutzerdefinierten Android-ROMS. Es sollte beachtet werden, dass dies ein riesiges Unterfangen ist – wenn Sie keine Erfahrung mit dem Codieren oder Herumalbern in Linux-Terminals haben, möchten Sie vielleicht etwas Wissen unter Ihrem Gürtel haben, bevor Sie in dieses Deep-End eintauchen. Aber wenn Sie zumindest eine grundlegende Vorstellung von diesen Dingen haben, werde ich versuchen, die Dinge so einfach wie möglich zu erklären, damit Sie folgen können.

Grundsätzlich laden wir den rohen Android-Quellcode (AOSP) herunter und ändern ihn nach unseren Wünschen. Da es so viele Quellen gibt, aus denen Sie für verschiedene Geräte auswählen können, wird in diesem Handbuch einfach auf die als AOSP (Android Open Source Project) bekannte Masterquelle verwiesen.

Nun ist die Sache mit dem AOSP, dass der reine Quellcode keine gerätespezifischen Hardwareeigenschaften enthält. Für Laien funktioniert Hardware wie Ihre Kamera und GPU bei der Entwicklung mit dem AOSP nicht „out of the box“. Tatsächlich startet Ihr Gerät nicht einmal ohne diese Hardware-Binärdateien.

Wenn Sie für ein Telefon der Marke Google (Pixel, Nexus usw.) entwickeln, finden Sie die Hardware-Binärdateien direkt von Google. Wenn Sie jedoch ein ROM für ein Markentelefon (Sony, Samsung usw.) entwickeln, segnen Sie Ihr Herz, denn Sie werden mitfahren.

Einige Hersteller haben ihre eigenen Open-Source-Projekte oder veröffentlichen Entwicklungstools für angehende Entwickler, während andere Hersteller ihre proprietären Codes dicht halten. Hier ist eine kurze Liste von Open-Source-Projekten der beliebtesten Hersteller:

Samsung Open Source Release Center
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola Developers

Lassen Sie uns unter der Annahme fortfahren, dass wir ein ROM für die grundlegendste Vanille-Android-Erfahrung für ein Google Pixel-Gerät erstellen. Mit diesem Wissen unter Ihrem Gürtel, werden Sie in der Lage sein, auf eigene Faust zu verzweigen und beginnen maßgeschneiderte Versionen von bestimmten Herstellern ROMs zu entwickeln.

Anforderungen an dieses Handbuch:

  • Android Open Source Project
  • Pixel XL Phone oder ein Android-Emulator für Linux
  • 64–Bit-Linux-Betriebssystem – Ubuntu oder Linux Mint sind die anfängerfreundlichsten Distributionen, während BBQLinux speziell für Android-Entwickler entwickelt wurde.
  • Python
  • Ein bulliger Computer (das Kompilieren von Code benötigt viel Speicher und Speicherplatz!)

Einrichten Ihrer Build-Umgebung

Beginnen wir mit dem Einrichten des Android-Emulators auf Ihrem Linux-Computer. Unabhängig davon, ob Sie ein Google Pixel XL-Gerät haben oder nicht, ist es immer am sichersten, Ihr neues ROM auf einem Android-Emulator auszuprobieren, bevor Sie es auf Ihr Gerät flashen. Mein persönlicher Favorit ist Genymotion, also werde ich Sie durch die Installation dieses speziellen Emulators führen. Sie können jedoch auch diesen Leitfaden „Beste Android-Emulatoren“ lesen, da die meisten von ihnen auch Linux-Kompatibilität haben.

Besuchen Sie die Genymotion-Website, registrieren Sie ein Konto, überprüfen Sie es per E-Mail und laden Sie die ausführbare Datei auf Ihren Linux-Desktop herunter.

Öffnen Sie nun ein Linux-Terminal und geben Sie Folgendes ein:

Chmod +x genymotion-xxxxx.bin (ersetzen Sie xxxx durch die Versionsnummer im Dateinamen)
./genymotion-xxxxxx.bin

Drücken Sie Y, um das Genymotion-Verzeichnis zu erstellen. Geben Sie nun das Terminal ein:

cd genymotion && ./genymotion

Jetzt werden Sie aufgefordert, den Installationsvorgang zu starten, also klicken Sie einfach weiter, bis Sie zum Fenster Virtuelle Geräte hinzufügen gelangen. Wählen Sie „Pixel XL“ unter der Option Gerätemodell und schließen Sie die Installation ab. Sie können das virtuelle Gerät testen, wenn Sie möchten, es wird im Grunde wie ein Pixel XL-Telefon auf Ihrem Desktop sein.

Lassen Sie uns nun Python einrichten:

$ apt-get install python

Jetzt müssen wir das Java Development Kit auf Ihrem Linux-Rechner einrichten. Öffnen Sie das Linux-Terminal und geben Sie die folgenden Befehle ein:

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

Jetzt müssen Sie das Linux-System konfigurieren, um den Zugriff auf USB-Geräte zu ermöglichen. Führen Sie den folgenden Code im Linux-Terminal aus:

Dadurch wird das erforderliche 51-Android heruntergeladen.txt-Datei, die den oben genannten USB-Gerätezugriff ermöglicht. Öffnen Sie die .txt-Datei und ändern Sie es Ihren Linux-Benutzernamen enthalten, dann legen Sie die .txt-Datei an folgendem Speicherort: (als Root-Benutzer). Schließen Sie nun Ihr Gerät über USB an Ihren Computer an, damit die neuen Regeln automatisch wirksam werden.

Herunterladen der Android-Quelle

Der AOSP wird auf Git gehostet, daher werden wir ein Tool namens Repo verwenden, um mit Git zu kommunizieren.

Zuerst müssen wir einen /bin-Ordner in Ihrem Home-Verzeichnis einrichten. Geben Sie die folgenden Befehle in das Linux-Terminal ein:

$ mkdir ~/bin
$ PATH=~/bin:$PATH

Jetzt werden wir das Repo-Tool herunterladen, also geben Sie in das Linux-Terminal ein:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+ x ~/bin/repo

Nachdem Repo installiert ist, müssen wir jetzt ein leeres Verzeichnis erstellen, um Ihre Arbeitsdateien zu speichern. Geben Sie also Folgendes in das Linux-Terminal ein:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Jetzt konfigurieren wir Git mit Ihrem Namen und Ihrer E–Mail-Adresse.

$ git config -globaler Benutzer.name „Ihr Name“
$ git config -globaler Benutzer.e-Mail-Adresse [email protected]

Jetzt weisen wir Repo an, das neueste Master-Manifest von AOSP von Git abzurufen:

$ repo init -u https://android.googlesource.com/platform/manifest

Wenn dies erfolgreich durchgeführt wurde, erhalten Sie eine Meldung, dass Repo in Ihrem Arbeitsverzeichnis initialisiert wurde. Sie finden auch ein „.repo“ Verzeichnis innerhalb des Client-Verzeichnisses. Jetzt laden wir den Android-Quellbaum herunter mit:

$ repo sync

Erstellen der Android-Quelle

Hier kommen die zu Beginn dieses Handbuchs erwähnten Hardware-Binärdateien ins Spiel. Gehen wir zur AOSP-Treiberseite und laden Sie die Pixel XL-Binärdateien für Android 7.1.0 (NDE63P) herunter. Sie möchten sowohl das Herstellerimage als auch die Hardwarekomponenten herunterladen. Extrahieren Sie sie also auf Ihren Desktop und führen Sie das selbstextrahierende Skript aus dem Stammordner aus. Wählen Sie, ob die Binärdateien im Stammverzeichnis des zuvor erstellten Arbeitsverzeichnisses installiert werden sollen.

Geben Sie nun in Ihr Linux-Terminal ein:

$ make clobber
$ source build/envsetup.sh

Jetzt wählen wir das zu erstellende Ziel aus, geben Sie also Folgendes ein:

$ lunch aosp_marlin-userdebug
$ setpaths
$ make -j4

Dort haben wir jetzt ein Android-ROM aus der Quelle „gebaut“. Testen wir es also im Emulator, indem wir Folgendes in das Terminal eingeben:

$ emulator

Spielen Sie also ein wenig im Emulator herum. Wie Sie sehen können, ist eine reine Vanille-Android-Erfahrung ziemlich minimal, und deshalb passen die Hersteller den AOSP an ihre Bedürfnisse an. Sie könnten also dieses ROM, das wir gerade gebaut haben, auf Ihr Gerät flashen, wenn Sie wollten, aber ohne irgendwelche Verbesserungen hinzuzufügen, wäre eine rein Vanille-Android-Erfahrung in der Tat eine sehr langweilige Sache.

Was Hersteller normalerweise mit dem AOSP machen, ist, ihn zu forken, ihre eigenen proprietären Binärdateien hinzuzufügen, die Benutzeroberfläche anzupassen, ein Boot-Logo hinzuzufügen usw. Es ist im Grunde nur malen über die Lager Android ROM, und so wird das auch Ihr nächstes Ziel sein.

Bleiben Sie dran, denn im zweiten Teil dieses Handbuchs werden Schriftarten, Themen und eine Boot-Animation zu Ihrem ROM hinzugefügt!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.