ROM: Unterschied zwischen den Versionen

Aus Android Wiki
Keine Bearbeitungszusammenfassung
K (Änderungen von 62.153.224.69 (Diskussion) wurden auf die letzte Version von Md 42 zurückgesetzt)
Markierung: Zurücksetzung
(31 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Als ROM (engl. Read Only Memory) wird die [[Firmware]] eines [[Smartphone]]s bezeichnet. Das in einem Smartphone üblicherweise vorinstallierte ROM wird Stock-ROM genannt. Ein vom Benutzer installiertes als Custom-ROM.
Als '''ROM''' (engl. '''R'''ead '''O'''nly '''M'''emory) wird bei [[Smartphone]]s die [[Firmware]] bezeichnet. Das in einem Smartphone üblicherweise vorinstallierte ROM wird Stock-ROM genannt, ein vom Benutzer installiertes als Custom-ROM.


== Stock-ROM ==
== Stock-ROM ==
 
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]]-[[HTC Sense|Sense]], [[Samsung]]-[[TouchWiz]]) der Gerätehersteller.
Das Stock-ROM ist die offizielle [[Firmware]], welche vom Hersteller ab Werk vorinstalliert ausgeliefert wird. Es besteht aus dem Android-Quellcode und beeinhaltet Modifizierungen und Erweiterungen (z. B. [[HTC]]-[[HTC Sense|Sense]], [[Samsung]]-[[TouchWiz|Samsung TouchWiz]]) der Gerätehersteller, die zumeist nicht Quelloffen (Closed-Source) sind.


== Custom-ROM ==
== Custom-ROM ==
 
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.
Man unterscheidet bei Custom-ROMs zwischen solchen, die nur eine modifizierte Version der Stock-ROM 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 ===
=== Allgemein ===
Ein Custom-ROM kommt meist von nicht-kommerziellen Entwicklern und kann aus verschiedenen Gründen entwickelt werden. Zum Beispiel sind die User 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.
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.


Dabei verändert der Entwickler nicht immer nur den Funktionsumfang oder optimiert das System. Oft wird auch das Aussehen des ROMs durch den Entwickler oder dem Team verändert, der [[Launcher]] oder der [[Lockscreen]] verändert. 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 User, hilfreich sein oder als störend empfunden werden.
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-[[App]]s deklarierte Apps, zu User-Apps zu wandeln. Dadurch wird es für den User einfacher, diese Apps zu deinstallieren.
Auch ist es möglich, bestimmte, im Stock-ROM als System-[[App]]s 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.
Üblich ist es zudem, dass in Custom-ROMs der [[Root]]-Zugriff bereits vorhanden ist.
Zeile 20: Zeile 18:
=== AOSP-ROM ===
=== AOSP-ROM ===


Ein AOSP ('''A'''ndroid '''O'''pen '''S'''ource '''P'''roject)-ROM basiert auf dem reinen Android-Sourcecode, wie Google ihn bereitstellt. Das heißt, es sind weder geschlossene (Closed-Source), Herstellereigene oder Bedienoberflächen spezifische Besonderheiten, noch proprietäre Google-Apps (wie z. B. Maps, Latitude, Market) vorhanden.<ref>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</ref> Letztere werden jedoch meist durch einen Update-Trick automatisch und legal nachinstalliert.<ref>[http://de.wikipedia.org/wiki/CyanogenMod#Lizenzierungskontroverse Artikel ''CyanogenMod'' auf Wikipedia]</ref>
Ein AOSP ('''A'''ndroid '''O'''pen '''S'''ource '''P'''roject)-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.<ref>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</ref> Letztere werden jedoch meist durch einen Update-Trick automatisch und legal nachinstalliert.<ref>[[Wikipedia:de:CyanogenMod#Lizenzierungskontroverse|Artikel ''CyanogenMod'' auf Wikipedia]]</ref>
 
=== Beispiele für CustomROMs ===
 
* [http://www.cyanogenmod.org/ CyanogenMod (CM)] – wurde für sehr viele Geräte angeboten, und es gibt viele [[Fork|Forks]] und inoffizielle Versionen die auf CM basieren; der Nachfolger ist [[LineageOS]]
* [http://www.resurrectionremix.com/ Resurrection Remix]
* [[OxygenOS]] und [[HydrogenOS]] vom chinesischen Smartphone-Produzenten [[OnePlus]]
* [http://www.paranoidandroid.co/ Paranoid Android]
* [[MIUI]] von der chinesischen Firma [[Xiaomi]]
* [[CarbonROM]]
* [[Android_Open_Kang_Project|Android Open Kang Project (AOKP)]]<ref>{{Cite web | url = http://www.androidpolice.com/2012/10/28/android-open-kang-project-aokp-jelly-bean-reaches-milestone-1-major-bugs-fixed-last-update-till-4-2/ | title = Android Open Kang Project (AOKP) Jelly Bean Reaches Milestone 1 - Major Bugs Fixed, Last Update Till 4.2 | date = 2012-10-28 | accessdate = 2016-06-17 | publisher = androidpolice.com | author = Jeremiah Rice | language = en }}</ref>
* [[slashyslash|/e/]]<ref>{{Cite web | url = https://www.googlewatchblog.de/2018/09/neues-custom-rom-google/ | title = Neues Custom ROM ’slashyslash‘ verspricht ein komplett Google-freies Android – erste Beta verfügbar | author = Jens Minor | accessdate = 2018-09-16 | date = 2018-09-15 | publisher = googlewatchblog.de}}</ref>
 
=== offiziell/inoffiziell ===
...am Beispiel von Cyanogenmod (CM):
 
Jeder der möchte kann ja eine ROM sich bauen.<br />
Und jeder kann auch die Quellen nutzen, somit zum Beispiel auch die von CyanogenMod. <br />
Wenn jetzt jemand sich ein ROM unter anderem aus den Quellen von CM baut, ist es eine inoffizielle ROM.<br />
 
Wenn jetzt ...<br />
: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. <br />
...beachtet wird, kann sie als offiziell gekennzeichnet werden.  <ref> Submitting A Port - CyanogenMod :  https://wiki.cyanogenmod.org/w/Doc:_Submitting_A_Port <br />
Android-Hilfe: http://www.android-hilfe.de/thema/motorola-g4-play-cyanogenmod.796202/#post-10170881</ref>
 
== Entwicklergruppen ==
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<ref>http://www.android-hilfe.de</ref>.
 
=== ROM-"Köche" ===
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<ref>Ein Interface zum Ändern einer Kernel-Einstellung während des Betriebs.</ref> und andere Tuning-Ansatz-Stellen.
 
=== ROM-Portierer ===
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'') [[CustomROM kompilieren|kompilieren]]. Dies erfordert Kenntnisse über die Hardware, Entwicklung und den Build-Prozess des ROMs.
 
=== ROM-Entwickler ===
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 ===
[[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 ==
== Einzelnachweise ==
Zeile 26: Zeile 62:
<references />
<references />


 
[[Kategorie:Software]]
[[Kategorie:Allgemein]]
[[Kategorie:Abkürzungen]]
[[Kategorie:Begriffe]]

Version vom 6. November 2018, 23:10 Uhr

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

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

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

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

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

offiziell/inoffiziell

...am Beispiel von Cyanogenmod (CM):

Jeder der möchte kann ja eine ROM sich bauen.
Und jeder kann auch die Quellen nutzen, somit zum Beispiel auch die von CyanogenMod.
Wenn jetzt jemand sich ein ROM unter anderem aus den Quellen von CM baut, 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

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"

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

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

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

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

  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.