Stand von CyanogenMod auf dem Samsung Galaxy S2.

Seit nun fast einem Jahr benutze ich auf meinem geliebten Samsung Galaxy S2 nicht mehr die originale samsungsche Android-Version, sondern die der Aftermarket-Firmware-Truppe CyanogenMod. Deren Android-Paket ist schlank und hält sich weitgehend an die originalen Android-Vorgaben und ist vor allem aktuell. Während CyanogenMod derzeit Pakete mit Android 4.2.2 und 4.3 anbietet, ist bei Samsung für das Galaxy S2 immer noch Android 4.1.2 das Maß der Dinge. Zwar baut Samsung inzwischen weitgehend stabile Firmware zusammen – aktuelles Android gibt es aber nur für aktuelle Modelle.

Das Samsung Galaxy S2 und der aktuelle Status bei CyanogenMod.

Auch wenn das Galaxy S2 zu den im CyanogenMod-Projekt unterstützten Geräten gehört, gibt es ein zentrales Manko: Die Entwicklung ist unter anderem für dieses Smartphone beta. Das liegt daran, dass der unter anderem im Galaxy S2 verbaute Prozessor aus der Samsung-Prozessorserie Exynos 4 nicht vollständig unterstützt werden kann. Das liegt offenkundig daran, dass nicht jeder Programmcode, der zur Anpassung von Treibern mit diesem Prozessor notwendig ist, als Open Source zur Verfügung steht.

Dazu vielleicht ein kleiner Exkurs: Moderne Smartphone besitzen Prozessoren, die viele Funktionen in einem Chip integrieren. Das geschieht aus Platz- und Energiespargründen. Samsung baut unter anderem eine eigene Prozessorserie, eben die Exynos-Serie. Um nun alle Funktionen dieses Chips nutzen zu können, braucht man einen Satz an Treibern, die zwischen Android und dem Prozessor vermitteln können. Dazu braucht es eine gewisse Unterstützung des Prozessorherstellers und leider ist da Samsung offenbar etwas schwerhörig.

Das führte dann zu ein paar „Effekten“: Während nämlich für andere Geräte die Entwicklung voranschritt und nach und nach zu einem richtigen Release führte, war das Galaxy S2 einer der wenigen Geräte, die immer nur Software im Alpha-Stadium bekamen. Aber auch hier noch ein kleiner Exkurs:

Die Entwicklungsschritte bei CyanogenMod.

CyanogenMod-Versionen haben mehrere Entwicklungsschritte:

  • Die so genannten Nightlies sind das Ergebnis der täglichen Entwicklungsarbeit im Projekt und quasi Alpha-Software. Diese werden zu nächtlicher pazifischer Zeit (bei uns am Vormittag) automatisch (!) aus der vorhandenen Code-Basis für die offiziell unterstützten Geräte erstellt. „Automatisch“ ist vor allem deshalb mit einem Ausrufezeichen versehen, weil hier tatsächlich relativ wenig Qualitätssicherung vorgenommen wird. Bastelt ein Entwickler an einem Fragment des Codes, spielt den zurück auf den Server und wird dann dieses Fragment einige Stunden später zu einem Nightly verarbeitet – ob das Fragment nun funktioniert oder nicht. Weil also Nightlies mitunter „roughen“ Code enthalten können, kann es durchaus passieren, dass ein Nightly auch mal defekt ist und ein Smartphone reif für eine Neuinstallation macht. Nightlies sind also eigentlich nur etwas für Entwickler und für Leute, die regelmäßig Backups machen.
  • Sehr spezielle Versionen sind die so genannten Experimentals. Vor diesen Builds sei ausdrücklich gewarnt, denn diese sind speziell zum Experimentieren von einzelnen Features gedacht und können sehr „rough“ sein. Meist werden hier Kernel-Geschichten ausprobiert oder neue Treiber und deshalb haben Experimentals eigentlich wirklich nur auf reinen Testgeräten etwas zu suchen. Dummerweise bleiben auf den Download-Seiten die Experimental-Builds sehr lange zum Download, was den ein oder anderen dazu verleitet, sich diese mal zu installieren. Wie gesagt: Nicht tun, wenn man nicht den blassesten Schimmer hat, was der Zweck des Experimentals ist.
  • Der erste Schritt zu einer stabilen Version sind die Milestones oder auch einfach nur „M“ genannt. Für Milestones werden schon die ersten Bugreports akzeptiert und was hier im Featureumfang dabei ist, wird später höchstwahrscheinlich auch in der fertigen Firmware drin sein. Milestones können ebenfalls fehlerbehaftet sein und haben oft Software an Bord, die noch im Rohbau ist, aber immerhin sieht man hier schon mal, wo es lang gehen wird.
  • Wird lange genug entwickelt und der Programmcode für ein Gerät verbessert, kommt das Stadium der Release Candidats. Ein RC ist im Prinzip eine Vorstufe für einen echten Release und an einem RC wird auf jeden Fall von Hand nachgearbeitet. Sprich: Für ein RC können und werden Bugreports angenommen mit dem Ziel, den RC zu verbessern und zu stabilisieren, aber (weitgehend) nicht mehr mit neuen Features auszustatten). RC sind also quasi Beta-Software. Auch sie können noch Fehler enthalten, sind aber für gewöhnlich schon sehr gut (und werden, wenn es mehrere RC gibt, immer besser).
  • Ist auch der RC-Prozess erfolgreich durchlaufen und alles an Fehlern abgearbeitet, kommt das Stable, das ist dann die offizielle Software. Die ist dann „ausgehfertig“ und wird dann auch unterstützt, beispielsweise mit Support oder mit späteren Wartungs-Updates.

Weil es nun bei allen Geräten, die die Exynos-4-Prozessorreihe einsetzen, noch diverse Punkte gibt, die noch nicht abgearbeitet sind, hängen diese Geräte in der Entwicklung hinterher. Um die Versionsnummern zu verstehen, braucht es noch einen kleinen Exkurs:

CyanogenMod-Versionen.

Die Versionsnummern bei CyanogenMod unterscheidet sich von der Android-Versionierung und sieht folgendermaßen aus:

  • CyanogenMod 7: Android 2.3.x
  • CyanogenMod 9: Android 4.0.x
  • CyanogenMod 10: Android 4.1x
  • CyanogenMod 10.1: Android 4.2.x
  • CyanogenMod 10.2: Android 4.3.x

Derzeit (Stand Ende August) gibt es offiziell für die meisten Geräte CyanogenMod 7, 9, 10 und 10.1 als offizielle Stables. Sprich: Da CyanogenMod 10.1 derzeit auf Android 4.2.2 basiert, gibt es für die meisten Geräte, die mit CyanogenMod 10.1 Stable laufen, Android 4.2.2. Das relativ neue Android 4.3.0 ist derzeit für die unterstützten Geräte in der Nightly-Phase und durchläuft damit die obigen Prozesse.

Das Dilemma mit Exynos-4-Geräten im CyanogenMod-Projekt.

Weil nun die Entwicklung bei Exynos-4-gepowerten Geräten hinterherhinkt, gibt es für diese Geräte bisher noch gar keine Stables. Die Entwicklungsarbeit beim Galaxy S2 begann mit CyanogenMod 7, ging über Version 9, 10, 10.1 und 10.2, aber immer nur gab es Nightlies und bisher noch nie ein Release Candidate oder gar ein Stable.

Das mag jetzt auf den ersten Blick kein größeres Problem sein, ist aber eines: Denn während man mit einem Release Candidate oder mit einem Stable irgendwann eine stabile Firmware hat, die dann auch einige Monate lang unverändert bleibt, ist der Nightly-Prozess gewissermaßen eine kleine Lotterie. Die meisten Nightlies laufen zuverlässig, aber manchmal gibt es eben Blindgänger und defekte Nightly-Versionen. Und wenn dann jemand so eine Version installiert, darf er mitunter länger daran arbeiten, sein Handy wieder aufwendig wiederherzustellen und/oder zu rooten. Sprich: Nightlies gibt es jeden Tag und die installiert man sich auch gern mal, aber letztendlich muss man immer auf der Hut sein, regelmäßig das CyanogenMod-Forum mitlesen und immer ein Backup für den Ernstfall in der Hinterhand haben.

Dazu kommt, dass die Entwicklungsarbeit im Nightly-Stadium irgendwann abrupt endet. Das ist kein Problem, wenn aus Nightlies irgendwann ein Release Candidate und daraus dann ein Stable entstanden ist, denn das bleibt ja. Wenn es aber kein RC und kein Stable gibt, sondern nur Nightlies und irgendwann die Entwicklungsarbeit dann auf eine neuere Android-Version geht, bleibt man mitunter als Nutzer mit einer letzten Nightly-Version auf breiter Flur.

Das Samsung Galaxy S2 und CyanogenMod 10.1 und 10.2.

So geschehen jetzt aktuell mit CyanogenMod 10.1 und 10.2. Von der Version 10.1 gab es das letzte Nightly am 13. August. Dieses Nightly läuft stabil und gut, wäre eigentlich auch RC- und Stable-fähig, ist es aber aus oben genannten Gründen mit den Problemen mit Exynos 4 eben nicht. Dennoch: Dieses Nightly läuft mit Android 4.2.2 und ist ein guter Kompromiss.

Am 14. August begann für viele Geräte, die offiziell für die Unterstützung von CyanogenMod 10.2. So gab es auch für das Galaxy S2 mit dem Nightly vom 14. August automatisch CyanogenMod 10.2 und damit Android 4.3. Und damit begann das Dilemma. Denn tatsächlich hat das Galaxy S2 mit den ersten Nightlies von CyanogenMod 10.2 noch eine ganze Reihe von Problemen: Der Bildschirm flackert, die Systemeinstellungen sind teilweise sehr deutlich umorganisiert worden und generell hat das Galaxy S2 das Designproblem, dass es noch einen Hardware-Home-Button hat und mit CyanogenMod 10.2 die Unterstützung noch nicht wirklich rund ist.

Nun wäre das ja kein Problem, wenn man sagen könnte: „Okay, CyanogenMod 10.2 ist Nightly, mach‘ das nicht drauf, wenn du nicht mutig bist, sondern installiere das letzte Stable!“ Das geht aber beim Galaxy S2 leider nicht, weil es bisher gar kein Stable gab. Man kann derzeit also nur auf das letzte Nightly von CyanogenMod 10.1 zurückgreifen, das funktioniert und aber selbst von Hause aus, da Nightly, nicht gepflegt wird. Zu allem Unglück kam dann auch noch, dass vor einigen Tagen im einem CyanogenMod-10.2-Nightly für das Galaxy S2 ein mittelschweres Unglück im Boot-Modul existierte, der dazu führte, dass eine Reihe von Galaxy S2 mit dem jeweiligen Nightly gar nicht mehr starteten konnten und aufwendig wieder zurückgesetzt werden mussten.

Das alles schafft eine Menge Unfrieden, das man im CyanogenMod-Forum auch so lesen kann. Und eigentlich haben die CyanogenMod-Entwickler – zu einem Großteil freiwillige Programmierer und Entwickler rund um den Globus – daran gar keine Schuld.

Ein RC! Ein RC!

Heute Vormittag dann gab es eine Überraschung auf dem Downloadserver von CyanogenMod: Ein Release Candidate von CyanogenMod 10.1! Das zwar den Besitzern eines Galaxy S2, die sich mit 10.2-Nightlies herumärgern, nicht sonderlich hilft, aber zumindest für CyanogenMod 10.1 endlich eine Perspektive in Richtung Stable darstellt. Und tatsächlich: Der Release Candidate läuft. Und zwar richtig nett, flüssig, schnell und zuverlässig.

Was nun tun, wenn man ein Gerät mit Exynos-4-Prozessor und/oder ein Samsung Galaxy S2 besitzt? Von CyanogenMod 10.2 ist derzeit noch abzuraten, das ist noch sehr am Anfang der Entwicklungsarbeit und läuft auf dem Galaxy S2 nur leidlich gut. Mit dem RC von 10.1 gibt es aber nun zumindest eine Perspektive, dass CyanogenMod 10.1 endlich in eine Stable-Version für das Galaxy S2 erscheinen dürfte. Zwar gibt es in Sachen Exynos-4-Prozessor noch einige offene Punkte, aber die erachtet man im CyanogenMod-Projekt offenbar als nicht so fatal, als dass man sich nicht schon mal mit RC befassen könnte.

Wer also auf seinem Galaxy S2 schon 10.2 hat und sich damit ärgert, sollte überlegen, ob er sein Smartphone nicht vielleicht nochmal plattmacht und das RC von 10.1 installiert und vorerst damit arbeitet.