ROM

Aus Android Wiki

Als ROM (engl. Read Only Memory) wird bei Smartphones die Firmware bezeichnet. Das in einem Smartphone üblicherweise vorinstallierte ROM wird Stock-ROM genannt, ein vom Benutzer installiertes als Custom-ROM.

Stock-ROM[Bearbeiten | Quelltext bearbeiten]

Das Stock-ROM ist die offizielle Firmware, welche vom Hersteller ab Werk vorinstalliert wird. Es besteht aus dem Android-Betriebssystem und beinhaltet Modifizierungen und Erweiterungen (z. B. HTC-Sense, Samsung-TouchWiz) der Gerätehersteller.

Custom-ROM[Bearbeiten | Quelltext bearbeiten]

Man unterscheidet bei Custom-ROMs zwischen solchen, die nur eine modifizierte Version des Stock-ROMs sind, und denen, die auf den Android-Quellcode aufbauen. Ein Custom-ROM ist eine inoffizielle Firmware und wird nicht oder nur sehr selten von Geräteherstellern unterstützt.

Allgemein[Bearbeiten | Quelltext bearbeiten]

Ein Custom-ROM kommt meist von nicht-kommerziellen Entwicklern und kann aus verschiedenen Gründen entwickelt werden. Zum Beispiel sind die Benutzer mit dem Stock-ROM im Funktionsumfang oder der Leistung bzw. der Akkulaufzeit nicht zufrieden. Ist die Nachfrage vorhanden und gibt es interessierte Entwickler, entstehen meist verschiedenste Versionen von Custom-ROMs, die wahlweise auf dem Stock-ROM vom Hersteller basieren, auf andere Custom-ROMs aufbauen oder aus dem Android-Quellcode neu erstellt wurden.

Es geht dem Entwickler nicht immer um den Funktionsumfang oder die Optimierung des Systems. Oft wird durch den Entwickler oder das Team auch das Erscheinungsbild der Bedienoberfläche verändert, beispielsweise der Launcher oder der Lockscreen. In einigen Projekten werden auch die vorinstallierten Apps erweitert, sodass zum Beispiel Backup-Tools, Taskmanager oder ähnliches, die man normalerweise erst über den Google Play Store manuell nachinstallieren müsste, bereits ab der Installation vorhanden sind. Dies kann, je nach Benutzer, hilfreich sein oder als störend empfunden werden.

Auch ist es möglich, bestimmte, im Stock-ROM als System-Apps deklarierte Apps zu User-Apps zu wandeln. Dadurch wird es für den Benutzer einfacher, diese Apps zu deinstallieren.

Üblich ist es zudem, dass in Custom-ROMs der Root-Zugriff bereits vorhanden ist.

AOSP-ROM[Bearbeiten | Quelltext bearbeiten]

Ein AOSP (Android Open Source Project)-ROM basiert auf dem reinen Android-Sourcecode, wie Google ihn bereitstellt. Das heißt, es sind weder geschlossene (Closed Source), Hersteller-eigene oder Bedienoberflächen-spezifische Besonderheiten, noch proprietäre Google-Apps (wie z. B. Maps, Latitude, Play-Store) vorhanden.[1] Letztere werden jedoch meist durch einen Update-Trick automatisch und legal nachinstalliert.[2]

Beispiele für CustomROMs[Bearbeiten | Quelltext bearbeiten]

  • LineageOS wird für sehr viele Geräte angeboten, und es gibt viele Forks und inoffizielle Versionen, die auf Lineage basieren. LineageOS selbst basiert auf dem reinen Android Sourcecode, wie Google ihn bereit stellt und ist der Nachfolger des inzwischen eingestellten CyanogenMod (CM)
  • Resurrection Remix
  • OxygenOS und HydrogenOS vom chinesischen Smartphone-Produzenten OnePlus
  • Paranoid Android
  • MIUI von der chinesischen Firma Xiaomi
  • CarbonROM
  • Android Open Kang Project (AOKP)[3]
  • /e/[4] - hat sich zum Ziel gesetzt, proprietären Code und sämtliche Referenzen zu Google-Servern aus dem Quellcode zu entfernen. /e/ wird von einer gemeinnützigen Stiftung entwickelt und bietet das ROM inzwischen für mehr als 140 Gerät an, zudem gibt es neue und Refurbished-Smartphones auch mit /e/ vorinstalliert zu kaufen. /e/ basiert auf LineageOS.

offiziell/inoffiziell[Bearbeiten | Quelltext bearbeiten]

...am Beispiel von Cyanogenmod (CM):

Jeder der möchte kann sich eine eigene ROM bauen.
Und jeder kann auch offene Quellen nutzen, somit zum Beispiel auch die von CyanogenMod.
Baut sich jemand unter anderem aus den Quellen von CM eine ROM, so ist es eine inoffizielle ROM.

Wenn jetzt ...

neben der Nutzung entsprechender Repos von CyanogenMod auch die Code-Konformität/-Güte, strikte Einhaltung der Coding Style Guides (AOSP/Cyanogen), Verfügbarkeit der (Kernel-)Sourcen, evtl. Support durch den Device-Hersteller, hohe Anzahl verkaufter/genutzter Geräte (= hohe Akzeptanz, dadurch mehr Support durch mehr Personen mit entsprechenden Skills), mindestens hinreichende Skills/Erfahrung des Developers, langfristige Verfügbarkeit (als Device-Maintainer) etc.

...beachtet wird, kann sie als offiziell gekennzeichnet werden. [5]

Entwicklergruppen[Bearbeiten | Quelltext bearbeiten]

Neben den Herstellern, die die Stock ROM entwickeln, gibt es, wie bereits erwähnt, auch ROM's aus der Usergemeinschaft, der sogenannten Community. Diese ROM's basieren dabei auf verschiedenen Basen, daher haben sich einige Entwicklerlevel bzw. Entwicklergruppen gebilde, die verschiedene Vorgehensweisen bei der Entwicklung einer ROM verfolgen und anwenden[6].

ROM-"Köche"[Bearbeiten | Quelltext bearbeiten]

ROM-Köche arbeiten auf bestehenden ROMs und verbessern deren Performance durch Tweaks in build.prop, init.d usw. Ausserdem entfernen sie ggf. die Bloatware. Sie arbeiten mit Tools die man bspw. ROM-Kitchen nennt. Dies erfordert Kenntnisse darüber, welche Einstellungen was bewirken, sysctl[7] und andere Tuning-Ansatz-Stellen.

ROM-Portierer[Bearbeiten | Quelltext bearbeiten]

Sie portieren ROMs wie CyanogenMod oder AOKP/AOSP-basierte auf Geräte, für die es dieses ROM bisher nicht gab. Hierbei erstellen sie einen Device-Tree für dieses Gerät und das ROM aus dem Quellcode (Sourcen) kompilieren. Dies erfordert Kenntnisse über die Hardware, Entwicklung und den Build-Prozess des ROMs.

ROM-Entwickler[Bearbeiten | Quelltext bearbeiten]

User in dieser Stufe entwickeln an ROMs wie CyanogenMod oder AOKP/AOSP-basierte, indem sie neue Features in das ROM einbauen, verändern oder entfernen. Anschließend wird die ROM aus dem Quellcode kompiliert. Dies erfordert Kenntnisse über die Entwicklung, Android, den Build-Prozess des ROM's, sowie der Aufbau eines ROM's.

Kernel-Entwickler[Bearbeiten | Quelltext bearbeiten]

Kernel-Entwickler arbeiten an dem Kernel, und kompilieren diesen aus dem Quellcode. Zusätzlich können Änderungen an der RAM-Disk durchgeführt werden. Das erfordert Kenntnisse über Entwicklung, Android und Kernel-Architektur.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. http://source.android.com/faqs.html#how-can-i-get-access-to-the-google-apps-for-android-such-as-maps, Quelle keine Google Apps auf AOSP-ROMS
  2. Artikel CyanogenMod auf Wikipedia
  3. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  4. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  5. Submitting A Port - CyanogenMod : https://wiki.cyanogenmod.org/w/Doc:_Submitting_A_Port
    Android-Hilfe: http://www.android-hilfe.de/thema/motorola-g4-play-cyanogenmod.796202/#post-10170881
  6. http://www.android-hilfe.de
  7. Ein Interface zum Ändern einer Kernel-Einstellung während des Betriebs.