SlideShare ist ein Scribd-Unternehmen logo
Communitygetriebene Android Systemerweiterungen

                                           Marc Seeger
                                   Computer Science and Media
                                  Hochschule der Medien Stuttgart
                                   e-mail: mail@marc-seeger.de
                                             17. Januar 2010


1. Einleitung                                              2. Installation der Modifikationen
                                                                                       ¨
                                                           Das Ver¨ ndern und Hinzufugen von
                                                                   a
Die Android Plattform hat seit der Ver¨ ffentlichung
                                         o
                                                           Systembestandteilen erfordert sowohl unter Linux
der ersten auf Android basierten Ger¨ te eine große
                                       a
                                                           im Desktop-Umfeld, als auch auf der Android
Entwicklercommunity um sich gebildet. Diese
                                                           Plattform entsprechende Privilegien. Diese
                                      ¨
Community erstellt nicht nur eine Fulle an
                                                           Privilegien lassen sich unter Android auf zwei Arten
Anwendungen, sondern erweitert auch die Plattform
                                                           erreichen. Entweder man hat die M¨ glichkeit
                                                                                                o
und das darunter liegende Betriebssystem selbst.
                                                           Programme mit Rechten des root-Benutzers zu
Die Quelloffenheit der Plattform erm¨ glicht es
                                        o
                                 ¨                         starten um im laufenden System Modifikationen
Entwicklern mit tiefgreifenden Anderungen zu
                                                           vornehmen zu k¨ nnen, oder man besitzt Zugriff auf
                                                                             o
experimentieren und diese einer breiten
 ¨                                                         den Boot-Prozess und kann somit direkt ein
                        ¨
Offentlichkeit zur Verfugung zu stellen. Durch den
                                                           entsprechend erweitertes Betriebssystem
Linux Kern der Android Plattform wird es auch
                                                           einspielen.
Entwicklern ohne Erfahrungen im
                                                           Im Normalfall unterliegt der Boot-Prozess dem
Embedded-System Umfeld erm¨ glicht, einen
                                 o
                                                           Hardware-Hersteller und der Zugriff wird durch
einfachen Einstieg in die Systementwicklung fur ¨
                                                           diesen entsprechend eingeschr¨ nkt. Da
                                                                                           a
Mobiltelefone zu finden.
                                                           Android-Endger¨ te jedoch w¨ hrend ihrer Lebenszeit
                                                                             a           a
Die Systemerweiterungen erm¨ glichen
                                o
                                                           einige offizielle Softwareupdates erfahren, besteht in
                                         ¨
risikobereiten Endnutzern das Hinzufugen von
                                                           allen F¨ llen zumindest die M¨ glichkeit
                                                                  a                      o
Features, welche im Auslieferungszustand des
                                                           entsprechend kryptografisch signierte Updates
Mobilger¨ tes nicht vorgesehen sind. Diese Features
          a
                                                           einzuspielen.
                                 ¨
erstrecken sich von der Unterstutzung neuer
                                                           Am Beispiel des HTC Dream k¨ nnen die typischen
                                                                                          o
Audioformate bis zur Erh¨ hung des CPU Takts. Die
                          o
                                                           Sicherheitsvorkehrungen von Android
von den Entwicklern bereitgestellten Modifikationen
                                                           Mobiltelefonen gut beobachtet werden. Dies erlaubt
lassen sich mit unterschiedlichem Aufwand auf die
                                                           auch die Erl¨ uterung der Schritte, welche von der
                                                                         a
Endger¨ te einspielen. Android erm¨ glicht somit als
        a                            o
                                           ¨               Entwicklercommunity unternommen wurden, um
erste Mobilplattform eine Grundlegende Anderung
                                                           diese Vorkehrungen auszuhebeln.
des vom Hersteller vorgegebenen Betriebssystems.
Eine interessante Fragestellung in diesem Bereich
                                    ¨
sind auch die rechtlichen Hintergrunde bei der
Verbreitung und Nutzung der Modifikationen.                 2.1. Root-Zugriff
Dieses Paper erl¨ utert zuerst die Voraussetzungen
                 a                                         Der Root-Zugriff auf dem Mobiltelefon hat die selbe
  ¨
fur die Modifikationen. Danach folgt eine Definition         Bedeutung wie auf auf Desktop Rechnern. Er
der unterschiedlichen Bereiche in welche die                                    ¨
                                                           erm¨ glicht die Ausfuhrung von Programmen als
                                                               o
Modifikationen gegliedert werden k¨ nnen. Jeder
                                      o                    privilegierter Systemuser. Diese Privilegien erlauben
Bereich wird hierbei durch entsprechende Beispiele         unter anderem den unbeschr¨ nkten Zugriff auf
                                                                                          a
verdeutlicht. Schlussendlich wird die                      Hardware und Dateisystem des Systems.
lizenzrechtliche Situation zur Verbreitung der             Um die in diesem Paper vorgestellten Erweiterungen
Modifikationen betrachtet.                                  nutzen zu k¨ nnen, ist es gr¨ ßtenteils notwendig
                                                                        o              o
                                                           Zugriff auf diese Systembereiche zu haben. Es


                                                       1
existieren heutzutage viele Android Distributionen             service console /system/bin/sh
der Community, welche einen Root-Zugriff von
Haus aus bereitstellen. Es ist jedoch nicht m¨ glich
                                              o
diese auf einem Telefon im Auslieferungszustand
einfach einzuspielen. Die Recovery Partition welche
 ¨                                    ¨     ¨
fur den Flashprozess zust¨ ndig ist, uberpruft die
                          a
kryptografische Signatur des zu flashenden Images.           Da der init Prozess als Standard Input (stdin) das
Das System weigert sich daher eine Datei                   /dev/console Device gesetzt hat, wird nach diesem
einzuspielen welche nicht von Google                       Befehl jegliche Eingabe an /dev/console mit
beziehungsweise dem Netzbetreiber kryptografisch                                   ¨
                                                           Root-Privilegien ausfuhrt.
signiert wurde.                                            Dies ist im Normalfall ungef¨ hrlich, da der Benutzer
                                                                                           a
   ¨
Glucklicherweise ist es m¨ glich die Recovery
                          o                                keinen direkten Zugriff auf /dev/console besitzt. Zu
Partition aus dem laufenden System heraus zu               dieser Zeit wurde dem System beim booten jedoch
ersetzen, falls es dem Benutzer gelingt Root-Rechte                                      ¨
                                                           ein ”console=”-Parameter ubergeben welcher
zu erlangen. Der erste Angriffspunkt ist also das          /dev/console auf mehrere Devices lauschen l¨ sst. Im
                                                                                                            a
erreichen von Root-Rechten um dadurch entweder             Normalfall sollte /dev/console nur auf den seriellen
direkt Erweiterungen einzuspielen oder die                 Port lauschen um ein Debugging (z.B. durch den
Recovery Partition zu ersetzen um ein Flashen mit          Kundendienst) zu erm¨ glichen. Im Falle des G1
                                                                                    o
unsignierten Images zu erm¨ glichen.
                             o                             lauschte /dev/console jedoch auch auf das virtuelle
Der zweite Angriffspunkt ist der Bootloader des            Konsolen Device ”tty0”. Die von Linux bekannten
Ger¨ tes. Der sogenannte ”Engineering Bootloader”,
     a                                                     virtuellen Konsolen sind bei einem System wie
welcher sich auf Entwicklerger¨ ten befindet, erlaubt
                                  a                        Android eigentlich nicht n¨ tig, da der Benutzer nur
                                                                                        o
Entwicklern einen Systemzugriff via USB schon              ¨
                                                           uber eine grafische Oberfl¨ che (auf Framebuffer
                                                                                        a
w¨ hrend der Bootloader-Phase des Systemstarts.
  a                                                        Basis) mit seinem System interagiert und keine
Mit dem Entwicklertool Fastboot lassen sich so in          Konsolen als Eingabem¨ glichkeit ben¨ tigt. Der
                                                                                     o               o
Kombination mit dem Engineering Bootloader                 Kernel des HTC Dream wurde jedoch mit gesetztem
                                                ¨
beliebige Partitionen mit unsignierten Images uber         ”CONFIG VT” Parameter kompiliert und bot
USB flashen. In Endbenutzer-Ger¨ ten ist die USB
                                    a                                         ¨       ¨
                                                           deshalb Unterstutzung fur die virtuellen Konsolen.
Kommunikation mit dem Bootloader deaktiviert.              Alle diese einzelnen Probleme laufen zusammen
Gelingt es einem Benutzer im laufenden System              wenn der Benutzer eine Taste auf der
Root-Rechte zu erlangen, kann der aktuelle                                              a       ¨
                                                           Hardwaretastatur des Ger¨ tes druckt. Der
Bootloader durch sein Engineering Pendant ersetzt          Tastaturtreiber leitet jeglichen Tastendruck auf
werden und erlaubt somit beliebig erweiterte               vorhandene virtuelle Konsolen weiter. Dies bedeutet
System-Images einzuspielen.                                dass tty0 jegliche Eingabe erh¨ lt. Von dort gelangt es
                                                                                             a
Die n¨ chsten 2 Abschnitte erl¨ utern wie die
       a                        a                          durch den gesetzten Boot Parameter an
Umgehung der Signaturmechanismen in der Praxis             /dev/console, welches die eingehenden
umgesetzt wurde.                                           Kommandos mit Root-Rechten ausfuhrt.    ¨
                                                           Um von außen Root-Zugriff auf das Ger¨ t zu  a
                                                                          ¨
                                                           erlangen genugt somit schon die Eingabe von
2.1.1   Die erste L¨ sung
                   o                                                             ¨
                                                           ”telnetd” und das drucken der Enter Taste. Dadurch
                                                           wird der im System mitgelieferte Telnet Daemon
Als das HTC Dream als erstes Android-Endger¨ t auf
                                                 a         gestartet. Mit laufendem Telnet Daemon kann dann
den Markt kam, besaß die installierte Android              ¨
                                                           uber das Netzwerk auf das Ger¨ t zugegriffen werden.
                                                                                              a
                                                ¨
Version eine Schwachstelle welche unglaubwurdiger          Dieser Zugriff kann dazu benutzt werden den
nicht sein konnte. Das Ger¨ t interpretierte
                             a                                              ¨                     ¨
                                                           Bootloader zu uberschrieben. Das fuhrt dazu, dass
Texteingaben in jedem beliebigen Teil des Systems          auch unsignierte Systemimages eingespielt werden
als Kommando. Besonders Kritisch wurde dieser              k¨ nnen.
                                                             o
Fehler dadurch, dass jegliche Eingabe auch noch mit                                               ¨
                                                           Da signierte Images mit dieser unglucklichen
                       ¨
Root-Rechten ausgefuhrt wurde.                             Kombination von Fehlern in Umlauf sind k¨ nnen o
             ¨
Der Grund fur dieses Verhalten lag in einer                                                           ¨
                                                           Besitzer des G1 ein Downgrade durchfuhren falls die
Kombination vieler Konfigurationseinstellungen.                          ¨
                                                           Sicherheitslucke in sp¨ teren Versionen geschlossen
                                                                                   a
Ein Teil davon ist die init.rc Datei, welche beim                                          ¨
                                                           wird. In diesem Fall gibt es fur HTC und die
                    ¨
Systemstart ausgefuhrt wird und folgende Zeile             Netzbetreiber keine einfache L¨ sung mehr diese
                                                                                              o
enth¨ lt:
     a                                                       ¨
                                                           Lucke zu schließen.


                                                       2
2.1.2   Die aktuelle Situation                              Hier w¨ re als Beispiel die Integration des ”Brainfuck
                                                                   a
                                                            Scheduler” in den Android Kernel zu nennen.
Neuere Handsets als das G1 wurden mit Versionen             Der Systembereich besteht aus Erweiterungen
der Android Plattform ausgeliefert auf denen dieser         bestehender Systemkomponenten z.B. durch
                              ¨
Fehler behoben wurde. Da fur diese Telefone keine           Plugins zur Wiedergabe von bisher nicht
kompatiblen ”fehlerhaften” Images im Umlauf sind,                   ¨
                                                            unterstutzten Medienformaten oder der
muss der Root-Zugriff auf eine andere Art hergestellt       Implementation von Funktionalit¨ t welche die
                                                                                                 a
werden.                                                     aktuelle Hardware zwar bieten k¨ nnte, jedoch in der
                                                                                               o
Das Tool ”FlashRec”[1] nutzt dazu mehrere Exploits          offiziellen Entwicklungsversion von Android so
im Linux Kernel. Durch diese Exploits gelingt es                           ¨
                                                            nicht zur Verfugung steht. Ein Beispiel w¨ re die
                                                                                                       a
einen Flashvorgang des Recovery Images mit den              Implementation des Bluetooth Object Exchange
erforderlichen Root-Privilegien zu starten.                 Protokolls (OBEX) welches den Dateitransfer
  ¨
Fur Firmware-Images welche vor August 2009                                          ¨
                                                            zwischen Endger¨ ten uber Bluetooth erm¨ glicht.
                                                                              a                          o
ver¨ ffentlicht wurden wird von FlashRec eine
    o                                                       Der Applikationsbereich konzentriert sich auf die
             ¨
Sicherheitslucke genutzt welche unter dem Namen             Erweiterung vorhandener Applikationen oder die
ADV-2009-2272 in der National Vulnerability                 Portierung von Applikationen neuerer Endger¨ te auf
                                                                                                            a
Database ver¨ ffentlicht[2] wurde. Dieser Exploit
               o                                            ¨
                                                            altere Android-Versionen. Hier w¨ re z.B. die
                                                                                                a
nutzt eine Schwachstelle des Kernels bei Socket             Integration von Multitouch in den Android
Operationen um beliebigen Code mit                          Webbrowser zu nennen.
                      ¨
Root-Privilegien ausfuhren zu k¨ nnen. Die
                                o                           Im Folgenden werden die einzelnen Bereiche uber ¨
                                  ¨
genaueren Interna des Exploits wurden den Umfang            Beispielprojekte verdeutlicht.
des Papers sprengen, k¨ nnen jedoch auf der Seite
                        o
der National Vulnerability Database nachgelesen
                                      ¨
werden. Das Realisieren des Exploits uber Socket
Verbindungen wird auch beim Installieren des Tools          4. Erweiterungen auf Kernel Ebene
erkennbar. Der Benutzer muss dem Tool Zugriff auf
                                         ¨                  Die Erweiterungen auf der Kernel Ebene dienen zum
das Bluetooth Subsystem genehmigen. Uber das
                                                            Großteil der Erh¨ hung der Performanz des
                                                                            o
Bluetooth Subsystem kann vom Programm der
                                                            Gesamtsystems. Einige von ihnen legen jedoch
Socket erstellt werden welcher den Exploit
                                                                                              ¨
                                                            gleichzeitig auch den Grundstein fur andere
erm¨ glicht.
     o
                                                            Modifikationen im System- oder
  ¨
Fur Firmware-Images die zwischen August 2009 und
                                                            Anwendungsbereich.
November 2009 ver¨ ffentlicht wurden benutzt das
                    o
                             ¨
Tool die Kernel Sicherheitslucke CVE-2009-3547[3].
        ¨
Diese Lucke erlaubt Angreifern durch
                                            ¨
race-conditions im pipe Systemcall die Ausfuhrung           4.1. BFS - Der ”Brainfuck Scheduler”
von beliebigem Code mit Root-Privilegien. In                In heutigen Betriebssystemen k¨ mpfen zu jedem
                                                                                             a
unserem Fall leitet der Code das Flashen des                Zeitpunkt mehrere Prozesse darum, ihren
Recovery Images ein.                                                                                 ¨
                                                            Programmcode auf dem Prozessor ausfuhren zu
                                                              ¨
                                                            durfen. Die grundlegende Instanz des
                                                            Betriebssystems, welche sich mit dieser
3. Gruppierung der                                          Ressourceneinteilung besch¨ ftigt wird ”Scheduler”
                                                                                         a
   Modifikationen                                            genannt. Insbesondere bei den begrenzten
                                                                                                     ¨
                                                            Ressourcen von Mobilger¨ ten muss er fur eine
                                                                                      a
Die von unabh¨ ngigen Entwicklern in die Android
               a                                            Balance aus Hintergrundprozessen (z.B. die
Plattform integrierten Erweiterungen wurden lassen                                               ¨
                                                            Aktualisierung der Location-Daten uber Google
sich grob in drei Bereiche gliedern:                                                ¨
                                                            Latitude) und einem flussigen Ablauf der
   • Kernel                                                 Benutzeroberfl¨ che sorgen.
                                                                            a
   • System                                                        ¨
                                                            Ursprunglich konnte man im Android Quellcode,
   • Applikationen                                          wie auch im regul¨ ren Linux Kernel den Completely
                                                                              a
Der Kernelbereich befasst sich mit Erweiterungen            Fair Scheduler (kurz: CFS) in der Datei sched fair.c
die aus der offiziellen Linux Kernelentwicklung              vorfinden. Dieser Scheduler ist im Gegensatz zu
stammen. Zum Zeitpunkt ihrer Ver¨ ffentlichung
                                     o                      seinen Vorg¨ ngern (z.B. dem O(1)-Scheduler)
                                                                         a
sind diese Erweiterungen im Normalfall jedoch auf           weitgehend frei von komplexen Heuristiken und
keinem offiziellen Android Endger¨ t im Einsatz.
                                   a                        Statistiken. Es findet keine Priorisierung von


                                                        3
einzelnen Tasks statt, stattdessen werden alle             Bedarf in Con Kolivas Dokument zum BFS Design[5]
Prozesse gleich behandelt. Der Prozess welcher             nachgelesen werden.
schon am l¨ ngsten auf CPU Zeit warten musste wird
            a                                              Ob es in direktem Zusammenhang steht ist nicht
als n¨ chster aktiviert. Erg¨ nzend muss noch
     a                      a                              bekannt, jedoch gab es einige Wochen sp¨ ter einen
                                                                                                  a
angemerkt werden, dass es in neueren Kernel                commit[6] welcher BFS dem offiziellen Android
Versionen die M¨ glichkeit gibt Prozesse zu ”Task
                  o                                                           ¨
                                                           Sourcecode hinzufugte.
               ¨
Groups” zu bundeln. Die Auswahl erfolgt dann
prim¨ r auf Gruppenebene um zu verhindern dass
     a
                     ¨
einzelne Benutzer uber eine große Anzahl an                4.2. Das Compcache Modul
Prozessen das gesamte System blockieren.                   Eines der gr¨ ßten Probleme im t¨ glichen Einsatz
                                                                        o                    a
Mitte 2009 entwickelte Con Kolivas jedoch eine             von mobilen Endger¨ ten ist der begrenzte
                                                                                 a
Alternative zum CFS Scheduler da dieser, in seinen         Arbeitsspeicher. Besonders in Systemen (wie z.B.
         ¨
Augen, fur interaktionsbasierte                            Android) in denen der Endnutzer mehrere
Endanwendersysteme ungeeignet sei. Ein Zitat aus           Programme parallel laufen lassen kann wird
seiner BFS-FAQ[4] zum ”hakeligen” Verhalten des            Arbeitsspeicher schnell zur knappen Ressource.
CFS auf seiner neuen Hardware lautete wie folgt:           Die normale Herangehensweise auf Desktop
                                                           Systemen ist, Teile der Festplatte quasi als
    It’s not a profound effect in CFS and that’s             ¨
                                                           ”Uberlauf” zu nutzen und aktuell nicht genutzte
    admirable. It just doesn’t behave the way I
                                                           Programmteile vom RAM auf die Festplatte zu
    feel the scheduler should being forward
                                                           verschieben. Mobile Endger¨ te besitzen jedoch
                                                                                         a
    looking only (not calculating sleep) and it
                                                           Flashspeicher der in der Anzahl von
    doesn’t really make the most of a relatively
                                                                                               ¨
                                                           Schreibzugriffen begrenzt ist und uber die Zeit
    lightly loaded machine without many many
                                                           degradiert. Neben diesem ”wear-leveling” Problem
    cpus. So I threw it all out and wrote exactly
                                                           verlangsamt eine Auslagerung auf den langsameren
    the opposite.
                                                           Flashspeicher das gesamte System und sollte
Um die Gegenl¨ ufigkeit zur aktuellen Schedulern zu
               a                                           vermieden werden.
verdeutlichen nannte er seine Kreation BFS, den            Hier ist der Einsatzort des Compcache Moduls[10].
”Brainfuck Scheduler” und ver¨ ffentlichte die
                               o                                          ¨
                                                           Anstatt den ”Uberlauf” des Arbeitsspeichers auf die
bereits erw¨ hnte FAQ Datei[4], welche seine
           a                                               Festplatte bzw. den Flashspeicher zu verlagern,
Motivation und die Grundidee verdeutlichte.                nimmt das Modul einen Teil des Arbeitsspeichers
Er charakterisierte das Verhalten des Schedulers               ¨
                                                           dafur. Dieser Teil wird als Blockdevice mit dem
darin mit folgenden Worten:                                                               ¨
                                                           Namen ”ramzswap” zur Verfugung gestellt. Der
                                                           Vorteil dabei ist, dass die Daten welche auf das
    It was designed to be forward looking only,            Blockdevice geschrieben werden, transparent
    make the most of lower spec machines, and              komprimiert werden. Dies vergr¨ ßert die Menge an
                                                                                             o
    not scale to massive hardware. ie [sic] it is a        Daten die (gleichzeitig) im schnellen RAM gehalten
    desktop orientated scheduler, with                     werden k¨ nnen und ist zugleich bei Weitem
                                                                     o
    extremely low latencies for excellent                  schneller als der Zugriff auf einen entsprechenden
    interactivity by design [...]                          internen Flashspeicher des Mobilger¨ tes.
                                                                                                 a
Durch die Optimierung auf Interaktion und                  Die Community selber ist sich jedoch noch
leistungsschwache Systeme ergibt sich eine                         ¨
                                                           unschlussig ob der zus¨ tzliche Arbeitsspeicher das
                                                                                    a
interessante Einsatzm¨ glichkeit in Mobiltelefonen.
                       o                                   Gesamtsystem wirklich beschleunigt oder ob der
Dies erkannte auch Steve Kondik, der Community             zus¨ tzliche Overhead sich negativ auf die
                                                               a
besser als ”Cyanogen” bekannt. Er ist Autor der wohl                               ¨
                                                           Gesamtperformance fur ein normales
beliebtesten Android-Distribution ”Cyanogenmod”.           Benutzungsschema auswirkt.
Er war auch der Erste der BFS auf Android portierte
und ein lauff¨ higes Image ver¨ ffentlichte, welches
              a               o
die Endnutzer mit recht wenig Aufwand auf ihre             4.3. Erh¨ hung des CPU Taktes
                                                                   o
Telefone einspielen konnten. Das Userfeedback                  ¨
                                                           Das Ubertakten von Computern ist in der PC
attestierte dem neuen Scheduler eine subjektiv             Community seit Jahren schon ein beliebtes Mittel
  ¨
flussigere Bedienbarkeit des Gesamtsystems.                 um gekaufter Hardware mehr Leistung zu entlocken.
                                     ¨
Genauere Details des Schedulers wurden den                 Die Geschwindigkeit einer CPU wird durch zwei
Rahmen des Papers sprengen, k¨ nnen jedoch bei
                                 o                         Merkmale bestimmt:


                                                       4
• den Bustakt                                            Modul. Im Bluetooth Standard sind neben den
  • den Multiplikator                                      Grundlegenden Eigenschaften wie z.B. Frequenzen
Multipliziert man diese 2 Angaben erh¨ lt man die
                                       a                   und Sicherheitsmodelle auch sogenannte ”Profile”
Nenngeschwindigkeit des Prozessors(z.B. 12 * 133.33                                          ¨
                                                           festgelegt. Diese Profile stehen fur eine
MHz = 1600 MHz).                                           entsprechend standardisierte Funktionalit¨ t wie z.B.
                                                                                                         a
W¨ hrend in normalen Heimcomputern die
  a                                                        das Hands-Free Profile (kurz: HFP), welches jegliche
Prozessoren immer mit der vom Prozessorhersteller          Details bei der Kommunikation mit
vorgegebenen maximalen Geschwindigkeit getaktet            Auto-Freisprechanlagen festlegt.
                             ¨
werden, sieht die Situation fur Mobilger¨ te anders
                                         a                   ¨
                                                           Fur den Endanwender ist das OBject EXchange
                      ¨
aus. Um potentielle Uberhitzung oder zu großen             Protokoll (kurz OBEX) interessant. Es dient als
Stromverbrauch zu vermeiden werden Prozessoren                          ¨
                                                           Grundlage fur viele andere Profile wie z.B. Object
 ¨
kunstlich gedrosselt.                                      Push Profile oder Generic Object Exchange Profile.
                ¨
Ein Beispiel dafur ist das HTC Dream, auch bekannt         Diese Profile erm¨ glichen es z.B. Visitenkarten
                                                                              o
als ”Google Dev Phone 1” oder ”T-Mobile G1”. Es                                            a        ¨
                                                           elektronisch zwischen Endger¨ ten zu ubertragen
besitzt einen 528 MHz Qualcomm MSM7201A                    oder Fotos an ein anderes Bluetooth-Ger¨ t (z.B. den
                                                                                                       a
ARM11 Prozessor, welcher jedoch im                         eigenen Laptop) zu senden.
Auslieferungszustand des Ger¨ tes auf 384 MHz
                               a                           Das HTC Dream konnte im Auslieferungszustand
begrenzt ist.                                              zwar Bluetooth-Freisprecheinrichtung benutzen,
Die Begrenzung ist jedoch rein softwareseitig und                                              ¨         ¨
                                                           jedoch existierte keinerlei Unterstutzung fur das
kann, entsprechende root-Rechte vorausgesetzt,                                                  ¨
                                                           OBEX Protokoll um Dateitransfers uber Bluetooth
aufgehoben werden.                                         abzuwickeln.
Programme wie setcpu[7] erlauben die Auswahl des           Dies ist insbesondere deswegen verwunderlich, weil
CPU Governor und die Anpassung der minimalen               bereits einige Open-Source Implementationen des
und maximalen Frequenzen.                                                      ¨
                                                           OBEX Protokolls fur Linux existieren. Diese
Durch die erh¨ hte Leistung entsteht auch ein
              o                                                                                            ¨
                                                           Implementationen bildeten die Grundlage fur einige
erh¨ hter Stromverbrauch, jedoch nur zu den
    o                                                      erfolgreiche Kommandozeilen Experimente. Die
Zeitpunkten in denen die CPU wirklich rechnen              funktionierenden Tools stehen unter dem Namen
muss. Bei normaler Interaktion mit dem Ger¨ t wird
                                              a                                                          ¨
                                                           ”android-obex”[8] als Sourcecode zur Verfugung.
somit zwar mehr Strom verbraucht, jedoch nur uber¨         Eine entsprechende grafische
 ¨                                    a ¨
kurzere Intervalle. Somit kann das Ger¨ t flussiger         Endbenutzer-Applikation stand kurze Zeit sp¨ ter im
                                                                                                             a
bedient werden. Insbesondere Spiele, die im                                           ¨
                                                           Android Market zur Verfugung. Die einzige
Normalfall eine andauernde Auslastung der CPU              Einschr¨ nkung zur Nutzung dieser Applikationen
                                                                    a
                           ¨
garantieren werden dem ubertakteten System wohl            ist, dass man Root-Zugriff auf sein Ger¨ t ben¨ tigt
                                                                                                     a      o
                                   ¨
mehr Energie entlocken als einem Aquivalenten              um die entsprechenden Kommandos an das
System mit Begrenzung des CPU Takts.                       Bluetooth Subsystem abgeben zu k¨ nnen.
                                                                                                 o
                                                                         ¨
                                                           Als Beispiel fur eine der ersten grafische
                                                                                                   ¨
                                                           Applikationen welche Dateitransfers uber OBEX
5. Erweiterungen auf System                                vornehmen konnten sei ”Bluex” genannt. Der Preis
                                                           der Applikation f¨ llt mit 2 USD recht gering aus.
                                                                             a
   Ebene
Die Erweiterungen auf Systemebene verschaffen
dem Enduser neue Features welche                           5.2. Unterst¨ tzung von FLAC
                                                                       u
Unzul¨ nglichkeiten der vom Hersteller zur
      a                                                    Eine weitere Systemerweiterung die sich großer
    ¨
Verfugung gestellten Firmware beheben sollen.                                                  ¨
                                                           Beliebtheit erfreut ist die Unterstutzung des FLAC
                                                                     ¨
                                                           Formats fur das Multimedia-Subsystem.
                                                                                             ¨
                                                           FLAC ist der de-facto Standard fur verlustfrei
5.1. Integration des OBEX Protokolls                       komprimierte digitale Audiodateien. Es ist ein
Die Integration des OBEX Protokolls[11] ist                offenes Format und findet als Archivformat bei
              ¨
Beispielhaft fur eine Erweiterung, bei der die             audiophilen Menschen großen Anklang. Es eignet
Hardware des Endger¨ tes entsprechende
                       a                                   sich auf Grund seiner geringen CPU Anforderungen
M¨ glichkeiten bietet, jedoch von Softwareseite eine
  o                                                                            ¨
                                                           beim Decodieren fur vergleichsweise langsame
Einschr¨ nkung herrscht. Im Falle von OBEX war die
        a                                                  CPUs wie sie in Smartphones und anderen mobilen
Hardware das im HTC Dream verbaute Bluetooth               Systemen vorkommen.


                                                       5
Das Sch¨ ne an dieser Erweiterung ist, dass sie auf
         o                                                   besitzt einen internen Speicher von 256 Megabyte.
das OpenCORE Media Framework aufsetzt. Dieses                Um mehr als eine Hand voll Musik, Bilder oder
                                   ¨
Framework bildet die Grundlage fur die erweiterbare          Videos auf dem Ger¨ t vorhalten zu k¨ nnen, besitzt
                                                                                  a                o
                      ¨
Multimedia-Unterstutzung in Android. Der Android             es wie die meisten Smartphones eine M¨ glichkeit
                                                                                                      o
Quellcode bindet OpenCORE mit den Formaten aac,              den internen Speicher durch den Einsatz einer
gsm amr, mp3 und sbc ein[9]                                  Speicherkarte (meist im Micro SD Format) zu
Bereits im Dezember 2008 wurde im offiziellen                 erweitern. Leider hilft diese Erweiterung dem
Android Bugtracker unter der Ticketnummer                    Endkunden nicht, wenn ihm durch große
                                     ¨
1461[13] der Wunsch nach Unterstutzung des FLAC              Applikationen der interne Speicher knapp wird.
Formates deutlich. Leider hat es ein Jahr sp¨ ter noch
                                                a                                                          ¨
                                                             Gizmodo(.com) berichtete, dass als Grund fur diese
                 ¨
keine offizielle Anderung des Tickets gegeben. Es             Praxis die Angst vor Raubkopien genannt wurde. Es
existieren Ende Dezember 2009 jedoch schon uber   ¨          wird laut Aussage von einem Google Mitarbeiter
100 Kommentare die diesen Wunsch bekr¨ ftigen.a                        ¨
                                                             jedoch fur kommende Android Versionen an einer
Zum 31. Juli 2009 wurden jedoch von Kenny Root 3                                                             ¨
                                                             L¨ sung gearbeitet, die Applikationen verschlusselt
                                                               o
Patches eingereicht, welche den FLAC Support in              auf der SD Karte abzulegen.
                ¨
Android nachrusten. Um Patches zum offiziellen                Der aktuelle Stand ist jedoch, dass es offiziell nicht
                               ¨
Android Repository hinzuzufugen muss ein Review              m¨ glich ist. Da Android ein Linux basiertes System
                                                                o
Prozess angestoßen werden. Dieser Prozess besteht            ist, wird die SD Karte jedoch intern nur als weiterer
aus drei Schritten. Der erste Schritt ist ein Upload         Ordner in das Dateisystem ”gemounted”. Dem
der Patches in das ”Gerrit” genannte Code Review             laufenden System steht die Karte unter dem Pfad
System unter http://review.source.android.com.                                ¨
                                                             /sdcard zur Verfugung.
Schritt zwei ist eine Zustimmung durch berechtigten          Da die interne Systempartition mit dem
Personen. Jedes Projekt im Android Source Tree hat           Dateisystem YAFFS2 formatiert ist, beherrscht sie
                                 ¨
eine Liste von Leuten die einer Anderung                     das erstellen von ”symbolischen Links”. Diese stellen
              o                           ¨
zustimmen k¨ nnen. Je nach Projekt mussen ein oder           eine Indirektion dar um einen Verweis auf einen
                                     ¨
mehrere berechtigte Personen der Anderung                    anderen Ordner bereitzustellen. Will man nun ein
zustimmen. Sollte dies geschehen sein, sind die              Programm auf die SD Karte auslagern, kann man
Patches bei Schritt drei angekommen und werden in            einfach den Ordner des Programmes vom internen
den offiziellen Android Source Tree gemerged.                 Flash auf die SD Karte verschieben und einen
Von den FLAC Patches befinden sich zwei aktuell im                                                     ¨
                                                             entsprechenden symbolischen Link zurucklassen.
Zustand ”Review in Progress”, der dritte Patch wurde                              ¨         ¨
                                                             Da Programme nur uber die ublichen Dateisystem
schon in das offizielle Repository gemerged.                  APIs auf Dateien zugreifen und diese APIs mit
Um dem langsamen offiziellen Prozess zu entgehen,                                                        ¨
                                                             symbolischen Links umzugehen wissen, andert sich
wurde das Addon schon vor l¨ ngerer Zeit in die
                               a                              ¨
                                                             fur die Anwenderprogramme selber nichts.
                                    ¨
”Cyanogen” Android Distribution ubernommen und               Die erste Vorbereitung welche der Benutzer fur  ¨
kann damit schon auf aktuellen Ger¨ ten genutzt
                                       a                     diesen Prozess selbst treffen werden muss ist, auf
werden.                                                      der SD Karte eine Ext3 bzw Ext2 formatierte
Die offizielle Webseite [12] des Projektes macht nur                                                 ¨
                                                             Partition einzurichten. Leider unterstutzt das
auf eine Limitierung aufmerksam: Es wird nur FLAC                              ¨
                                                             normalerweise fur SD Karten vom System
                                            ¨
mit einer Sampletiefe von 16 Bit unterstutzt. Dies           eingesetzte FAT32/vfat die Posix Access Control
sollte jedoch kein großes Problem darstellen, da             Listen zur Rechteverwaltung von Dateien nicht und
FLAC Dateien zum Großteil von Audio CDs erzeugt              ist damit nicht mit dieser Modifikation kompatibel.
werden, welche selber nur 16 Bit Sampletiefe                 Die zweite Voraussetzung ist ein Kernel der mit
besitzen.                                                             ¨       ¨
                                                             Unterstutzung fur das Ext Dateisystem kompiliert
                                                             wurde. Im Auslieferungszustand bietet Android nur
                                                                      ¨       ¨
                                                             Unterstutzung fur das YAFFS und FAT32 (aka vfat)
5.3. Apps2SD                                                 Dateisystem. Da jedoch bei Android ein normaler
                                                             Linux Kernel zum Einsatz kommt, ist die EXT
Die M¨ glichkeit der Auslagerung von Programmen
      o                                                               ¨
                                                             Unterstutzung nur eine Konfigurationseinstellung
auf die Speicherkarte (”Apps2SD”) ist ein sehr               vor dem Kompilieren und ben¨ tigt keinen weiteren
                                                                                              o
beliebtes Thema in der Android Community.                    Aufwand.
Das HTC Dream war das erste Android Smartphone               Vorteile dieser Erweiterung sind der dadurch quasi
welches von einem Mobilfunkanbieter verkauft                                         ¨
                                                             unbeschr¨ nkte Platz fur Programme und die
                                                                         a
wurde. Dieses von T-Mobile ”G1” getaufte Endger¨ t
                                               a


                                                         6
M¨ glichkeit nach einer Systemwiederherstellung die
   o                                                       Erstellen von kompletten System Backups, was
vorher installierten Programme mit einem                                   ¨
                                                           insbesondere fur Entwickler von großer Bedeutung
                 ¨
Kommando zuruck zu bekommen.                               ist.
Diese Modifikation hat jedoch nicht nur Vorteile. Sie       Teil der erweiterten Recovery Images sind auch
nimmt dem Benutzer die M¨ glichkeit die SD Karte
                             o                             Tools welche z.B. die Partitionierung von SD-Karten
im laufenden Betrieb entfernen zu k¨ nnen. Dadurch
                                     o                     erm¨ glichen. Die im vorherigen Kapitel
                                                                o
dass im System ein pl¨ tzliches fehlen von
                      o                                    besprochene ”Apps2SD” Erweiterung kann somit
Programmen nicht vorgesehen ist, k¨ nnten
                                     o                                  ¨                                 ¨
                                                           vollst¨ ndig uber die neuen Bordmittel durchgefuhrt
                                                                  a
unvorhersagbare Probleme auftreten. Des Weiteren           werden.
ist die Setup Prozedur recht komplex und sollte mit        Die beliebteste Distribution des Recovery Image ist
                   ¨
Vorsicht durchgefuhrt werden. Schlussendlich ist es,       das sogenannte ”Pimped out recovery image with
je nach SD Karte, auch m¨ glich dass eine
                          o                                new features”[14] welches von Steve ’Cyanogen”
Verlangsamung der Programme durch den                      Kondik erweitert wurde. Die Installation kann aus
permanenten SD Karten Zugriff auftritt. Die                dem laufenden System erfolgen und beschr¨ nkt sich
                                                                                                       a
Automatisierung des kompletten Prozesses ist heute         auf die Eingabe eines simplem Kommandos in
jedoch bei vielen Android Distributionen (z.B. der         einem Terminal-Emulator:
                                         ¨
”Cyanogen” Distribution) gegeben bzw. uber ein
erweitertes Recovery Image realisierbar.
Um den USB-Modus des Mobiltelefons weiterhin                   flash image recovery
auch auf Systemen nutzen zu k¨ nnen welche keine
                                o                              /sdcard/cm-recovery-1.4.img
         ¨       ¨
Unterstutzung fur das EXT Dateisystem bieten ist es
ratsam eine seperate FAT32 formatierte Partition auf
der SD Karte zu erstellen um weiterhin einen
einfachen Zugriff auf Bilder und Musikdateien zu
                                                           5.4.1   APN Listen
erm¨ glichen.
     o

                                                           Die Konfiguration der Datenverbindung eines
5.4. Funktionsumfang des ”Recovery                         Mobilger¨ tes ist sicherlich eine der komplexeren
                                                                     a
      Image”                                               Aufgaben mit denen sich ein Smartphone-Besitzer
                                                           konfrontiert sehen kann.
Die Erh¨ hung des Funktionsumfangs des ”Recovery
         o                                                 Im Normalfall sind auf Mobilger¨ ten welche durch
                                                                                             a
                             ¨
Image” ist quasi ein Muss fur den Hobby-Entwickler.        einen Mobilfunkprovider verkauft werden diese
Die bisher auf dem Markt befindlichen                       Daten automatisch hinterlegt. Das Hauptaugenmerk
Android-basierten Endger¨ te haben einen
                            a                              liegt hierbei auf dem Access Point Name (kurz: APN).
mehrstufigen Systemstart.                                   Beim Aufbau einer Datenverbindung wird der im
                                   ¨       ¨
Zu Beginn der Startsequenz wird uberpruft ob                                                          ¨
                                                           Telefon hinterlegte APN mit an das Netz ubergeben.
                                      ¨
gewisse Tastenkombinationen gedruckt sind. Eine                                            ¨
                                                           Das Netz ermittelt daraufhin uber eine DNS Anfrage
dieser Kombinationen (beim G1 z.B. Home-Key und            an welchen Gateway die Anfrage weitergeleitet
            o          ¨
die rote H¨ rertaste) fuhrt dazu, dass das                 werden muss. Dieses Gateway leitet die Anfragen
Mobiltelefon nicht das volle Android Betriebssystem        des Nutzers aus dem Netz des Mobilfunkproviders
startet sondern das System die ”Recovery” Partition        in das Globalen Internet weiter. Sollte ein falscher
bootet. Diese Partition beinhaltet ein (Linux)                                ¨
                                                           APN an das Netz ubergeben werden, findet keine
Minimalsystem welches nur zum Update/der                   Weiterleitung der Pakete ins Internet statt.
Wiederherstellung der eigentlichen Systempartition                               ¨
                                                           Die Mobilger¨ te verfugen im Auslieferungszustand
                                                                          a
gedacht ist.                                               ¨
                                                           uber eine Liste der APNs von Vertragspartnern.
Erweiterungen dessen Funktionsumfanges                     Kleinere Provider oder lokale Provider bei
beginnen beim Einspielen eines neuen Kernels mit           Importger¨ ten bleiben in desen Listen jedoch oft
                                                                      a
         o                           ¨
einer gr¨ ßeren Dateisystemunterstutzung (z.B.             außen vor. Die Zusammenarbeit der Community
          ¨
wichtig fur ”Apps2SD”).                                    beim Sammeln von entsprechenden Netz und APN
Eine der attraktivsten Erweiterungen, genannt                                 ¨
                                                           Kombinationen fuhrt zu umfangreichen APN Listen
”Nandroid”, verschafft dem Benutzer die                                                               ¨
                                                           welche eine manuelle Einrichtung meist uberflussig ¨
M¨ glichkeit, den gesamten NAND Flash des Systems
  o                                                        macht.
auf die SD Karte zu sichern und bei Bedarf auch
             ¨
wieder zuruckzuspielen. Dies erm¨ glicht das
                                    o


                                                       7
6. Erweiterungen auf Applikations                          Da Google dem Android Open-Source Projekt in
                                                           regelm¨ ßigen Abst¨ nden neue Releases des Systems
                                                                   a            a
   Ebene                                                   beisteuert bieten die offiziellen Android Sourcen oft
Auf Applikationsebene sind in diesem Umfeld selten             a                             ¨
                                                           zus¨ tzliche Features welche in alteren Ger¨ te nicht
                                                                                                       a
komplette Neuentwicklungen zu finden. Es sind               existieren.
meist kleine Patches bzw Konfigurations¨ nderungen
                                      a                    Dies konnte insbesondere beim Erscheinen der
an vorhandenen Anwendungen.                                Android Releases mit den Codenamen ”Donut” bzw
                                                           ”Eclaire” und deren konsequenter Portierung auf das
                                                           HTC Dream beobachtet werden. Hierbei wurden z.B.
6.1. Better Browser                                        Features wie PPTP/L2TP VPN und WPA Enterprise
Der ”Better Browser”[15] ist eine Erweiterung des                             ¨
                                                           Support hinzugeugt, welche zu dieser Zeit nur im
Standardwebbrowsers um u.a. Multitouch-Gesten.             experimentellen ”Donut” Release zu finden waren.
Da der Webkit-basierende Android Browser unter             Ein weiteres Beispiel sind oft einzelne Widgets
Open-Source Lizenz steht, konnten zus¨ tzliche
                                         a                 welche in sp¨ teren Handymodellen
                                                                         a
Features mit vergleichbar geringem Aufwand                 beziehungsweise Systemversionen aufgetaucht sind.
implementiert werden.                                      Widgets sind kleine Programme welche direkt auf
Die zus¨ tzlichen Features welche im originalen
        a                                                  dem Homescreen des Ger¨ te laufen und nicht
                                                                                       a
Browser nicht vorhanden sind erstrecken sich von           explizit gestartet werden.
                           ¨
einfachen kosmetischen Anderungen bis hin zu               Hierzu sind z.B. das Power Widget (zusammen mit
neuer Funktionalit¨ t. Einer der gr¨ ßten
                    a              o                       dem ”App Fuel Gauge” Systemfeature) oder das HTC
                                ¨
Unterschiede ist der Support fur Multitouch. Die           Twitter-Widget zu nennen. Diese Widgets erlauben
              ¨
vom iPhone ublichen ”pinch” Gesten um                      eine einfache Aktivierung von Services (Bluetooth,
Ausschnitte von Webseiten zu vergr¨ ßern werden
                                      o                    GPS, ...) respektive die Interaktion mit dem
dadurch bei entsprechendem Kernel (mit                     Micro-Blogging Dienst Twitter.
                              ¨
Multitouch Support) unterstutzt. Kosmetische               Insbesondere bei den Widgets von HTC stellt sich
¨
Anderungen wie das Deaktivieren der Zoom Buttons           jedoch oft die Frage nach der Legalit¨ t der weiteren
                                                                                                 a
gehen Hand in Hand mit neuen Gesten wie z.B. die           Verbreitung der Widgets, da diese nicht unter
Double-tap Geste um die Zoomstufe zu erh¨ heno             offenen Lizenzen stehen.
oder die Triple-tap Geste um die Zoomstufe zu
verringern. Beachtlich ist hierbei dass die
”Triple-Tap” Geste im Android SDK nicht
                                                           7. Lizenzfrage
vorgesehen ist sondern von Hand implementiert              Bei der Verbreitung von ”flash-fertig” Image Dateien
wurde.                                                     ¨                                     ¨
                                                           uber Entwicklerforen stellt sich naturlich noch die
Die letzte gr¨ ßere Erweiterung des Browsers ist das
             o                                             Frage der Lizenzen der Einzelkomponenten.
”Mobile Web Settings” Feature. Es erm¨ glicht die
                                        o                  W¨ hrend Großteile des Systems unter einer freien
                                                             a
 ¨
Ubertragung eines beliebigen HTTP User Agents.             Lizenz stehen, sind einige Anwendungen (z.B.
Dieser von vielen Seiten ausgewertet um zu                 Google Maps) propriet¨ r und deren Verbreitung
                                                                                    a
                       ¨
entscheiden ob eine fur Mobilger¨ te optimierte
                                   a                       ohne Zustimmung des Rechteinhabers ist
Version der Seite ausgeliefert wird. Durch den             umstritten. Hier ist es interessant zu sehen, welche
ge¨ nderten User Agent wird es dem Android Ger¨ t
   a                                              a        Systembestandteile der Android Smartphones unter
erm¨ glicht eine z.B. auf iPhones spezialisierte
     o                                                     welche Lizenz fallen.
Ansicht bestimmter Webseiten zu erhalten falls der         Die im offiziellen Android Repository
Webseitenbetreiber die Android Plattform bisher            (http://android.git.kernel.org/) bereitgestellten
noch nicht als Mobilger¨ t erkennt.
                         a                                 Komponenten befinden sich alle unter der Apache
                                                           v2 Open Source Lizenz.
                                                                                                         ¨
                                                           Einige der Hauptkomponenten (neben den ublichen
6.2. Backports                                             Linux Systembibliotheken) sind:
Die Community hat auch eine Reihe von                        • Das OpenCORE Media Framework
”Backports” hervorgebracht. Dies sind                        • Die Tesseract Open Source OCR Engine
Softwarekomponenten welche auf neueren                       • Der radio interface layer (”ril”)
Handymodellen erschienen sind und von                        • Andwendungen wie z.B. Alarm Clock, Browser,
                ¨
Entwicklern auf alteren Hardwaremodellen lauff¨ hig
                                              a                 Calendar, Calculator, Camera, Contacts, Email,
gemacht werden.                                                 IM, Music, Voice Dialer, Sound Recorder


                                                       8
W¨ hrend diese Komponenten ausreichen um ein
  a                                                         8. Fazit
Lauff¨ higes System herzustellen, gibt es jedoch noch
     a
einige Bestandteile welche sich auf aktuellen               Die Beliebtheit der einzelnen Modifikationen spricht
Endger¨ ten finden, jedoch nicht unter einer freien
        a                                                    ¨
                                                            fur sich. Es gab in der Geschichte der Mobiltelefone
           ¨
Lizenz verfugbar sind:                                      noch keine anderen Zeitpunkt an dem eine gr¨ ßere
                                                                                                            o
                                                                                                 ¨
                                                            Anzahl Endbenutzer tiefgreifenden Anderungen an
  •   Google Maps                                                                          ¨
                                                            ihrem Mobiltelefon durchgefuhrt haben.
  •   YouTube                                               Insgesamt kann man sagen dass sich die
  •   Google Voice                                          Bereitschaft von Endbenutzern stark erh¨ ht hat, ihr
                                                                                                       o
  •                                               ¨
      Google Talk (ein Instant Messaging Client fur         Endger¨ t eigenst¨ ndig zu modifizieren. Benutzer
                                                                    a         a
      Googles XMPP basierende Chat Platform)                                                 ¨
                                                            des Apple iPhone konnten sich uber einen
  •   Google Android Market                                 ”Jailbreak” schon lange vor dem offiziellen
  •   Google Search                                         Marktstart des Appstore zus¨ tzliche Applikationen
                                                                                         a
  •                                            ¨
      Gmail (ein spezialisierter eMail client fur           installieren. Benutzer des Palm Pre wird es durch
      Googles Mailservice)                                  ”Preware” erm¨ glicht ihr Ger¨ t mit zus¨ tzlichen
                                                                            o             a         a
  •   Der Google Calendar Provider (um eine                 Programmen und Erweiterungen zu versehen.
      synchronisation zu Googles                            Durch das Aufkommen von unix- bzw
      Online-Kalenderdienst bereitzustellen)                linuxbasierten Endger¨ ten wird es nun auch
                                                                                     a
                                                            Programmierern erm¨ glicht Erweiterungen zu
                                                                                    o
Diese Software ist Teil der sogenannten ”Google             schreiben, welche vorher keinerlei Erfahrung mit
Experience” und wird von Google an die Hersteller           Embedded Systems hatten.
der Endger¨ te bzw. an Provider verkauft.
            a                                               Trotz der relativ großen Verbreitung der
Interessant ist hierbei die anf¨ ngliche
                               a                            Modifikationen gibt es bisher keine Hersteller die
Argumentation von Steve Kondik (besser bekannt              versucht haben rechtliche Schritte gegen eben jene
unter seinem Pseudonym”cyanogen”). Er verbreitete           Softwareprojekte zu unternehmen. Palm CEO Josh
die ”Google Experience” Anwendungen als Teil                Rubenstein ging auf der Consumer Electronics Show
seiner Images. Darin sah er jedoch kein Problem, da         2010 sogar soweit, die Ergebnisse der Entwickler
die Images nur auf ”Google Experience” Ger¨ ten
                                              a             Community lobend in seiner Keynote zu erw¨ hnen.
                                                                                                           a
lauff¨ hig waren. Der Einsatz der Anwendungen
       a                                                    Einzig bei der Verbreitung von bestehendem
erfolgte also stets von Leuten die durch den Kauf des       intellektuellem Eigentum ohne Zustimmung des
Telefons dazu berechtigt waren.                             Herstellers wurde eine Unterlassungsanordnung
W¨ hrend diese Argumentation intuitiv recht
  a                                                         von Google gegen den Entwickler der beliebten
nachvollziehbar ist, hat sich Steve Kondik darauf           Cyanogen Distribution ausgesprochen. Jedoch
nicht verlassen und vertreibt seine Android                 erfolgte auch hier die Kommunikation sehr
Distribution fortan ohne die entsprechenden                 verst¨ ndnisvoll und hatte keine finanzielle
                                                                  a
Applikationen. Dies bedeutet jedoch nicht dass die          Sch¨ digung des Entwicklers zur Folge.
                                                                a
Benutzer der Distribution darauf verzichten                   ¨
                                                            Fur die Zukunft scheint sich eine weitere
   ¨
mussen. Da die offiziellen Firmware Images von               Popularisierung der Modifikationen durch
HTC (dem Telefon-Hersteller) die Anwendungen                Endbenutzer abzuzeichnen. Ob diese Zukunft fur    ¨
enthalten, wird die Installation der Distribution                                 ¨
                                                            Hardwarehersteller ahnliche Symptome zeigen wird,
                   ¨
quasi als Update uber ein vorher geflashtes                  wie sie auch schon die Content Anbieter beim
                            ¨
offizielles Image durchgefuhrt.                              Wechsel des Web 1.0 zum Web 2.0 mitgemacht
Somit verbreitet er selbst nur unbedenkliche                haben, wird sich zeigen.
Komponenten auf seinen Images und erh¨ lt die
                                            a
”Google Experience” aus den offiziellen Images.
Eindeutig ist die Lage bei Widgets oder anderer
zus¨ tzlicher Software, welche auf neueren Ger¨ ten
     a                                          a
erscheint und nicht unter einer freien Lizenz steht.
Hier wird durch die Verbreitung als Backport oder
als Teil eines flashbaren Images klar das Copyright
missachtet.




                                                        9
Literatur
[1] ”Tool to flash the recovery image on Android phones”:
    http://zenthought.org/content/project/flashrec

[2] Vulnerability CVE-2009-2692:
    http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-2692

[3] Vulnerability CVE-2009-3547:
    http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3547

[4] Con Kolias, ”FAQS about BFS”:
    http://ck.kolivas.org/patches/bfs/bfs-faq.txt
                       ¨          ¨
[5] Con Kolias, Design Ubersicht fur BFS:
    http://ck.kolivas.org/patches/bfs/sched-BFS.txt

[6] Commit des BFS Schedulers in den offiziellen Android
    Sourcecode:
    http://android.git.kernel.org/?p=kernel/experimental.git;a=commit;h=c8fa3555b59a200f9a5b1098f17c0333b9529258

[7] SetCPU: Tool zum Anpassen der Taktfrequenz auf
    dem HTC Dream: http://www.pokedev.com/setcpu/

[8] android obex - provide obex file sharing in Android:
    http://gitorious.org/android-obex

[9] Audio Support im Git Repository des OpenCORE
    Frameworks:
    http://android.git.kernel.org/?p=platform/external/opencore.git;a=tree;f=codecs_v2/audio

[10] Compcache Module, compressed in-memory swap
    device for Linux:
    http://code.google.com/p/compcache/

[11] Erin Yueh,”how to have OBEX function in Android?”:
    http://i-miss-erin.blogspot.com/2009/10/how-to-have-obex-function-in-android.html

[12] Kenny Root, FLAC on Android:
    http://the-b.org/FLAC_on_Android

[13] Bugtracker-Ticket zur Erweiterung des Android
    Sourcecode um FLAC:
    http://code.google.com/p/android/issues/detail?id=1461

[14] Steve ”Cyanogen” Kondik: Pimped out recovery
    image with new features:
    http://forum.xda-developers.com/showthread.php?p=3915123

[15] Loccy: Better Browser:
    http://forum.xda-developers.com/showthread.php?t=551119




                                                           10

Weitere ähnliche Inhalte

Andere mochten auch

Presentación
PresentaciónPresentación
Presentación
michelle070392
 
Colegio de bachilleres
Colegio de bachilleres Colegio de bachilleres
Colegio de bachilleres
jefe1996
 
Google docs
Google docsGoogle docs
Google docs
cjdiego
 
Comprar en internet
Comprar en internetComprar en internet
Comprar en internet
Matarilerileron1-7
 
Grandes Dioses
Grandes DiosesGrandes Dioses
Grandes Dioses
Laia Garcia
 
EL COBRE
EL COBREEL COBRE
Ficha practicum tice
Ficha practicum ticeFicha practicum tice
Ficha practicum tice
Ruben Rodriguez Gonzalez
 
Parte de la historia de mi conjunto
Parte de la historia de mi conjunto Parte de la historia de mi conjunto
Parte de la historia de mi conjunto
taniaandrea22
 
Arena agenda legislativa 2015 18 documento resumen
Arena agenda legislativa 2015 18 documento resumenArena agenda legislativa 2015 18 documento resumen
Arena agenda legislativa 2015 18 documento resumen
Ana Vilma de Escobar
 
Amparo Gómez - Patrimonio para el desarrollo
Amparo Gómez - Patrimonio para el desarrolloAmparo Gómez - Patrimonio para el desarrollo
Amparo Gómez - Patrimonio para el desarrollo
ponencias2011
 
Creación de perfiles en las redes sociales: Facebook
Creación de perfiles en las redes sociales: FacebookCreación de perfiles en las redes sociales: Facebook
Creación de perfiles en las redes sociales: Facebook
Fernando Jerez Hernández
 
Presentación2 modulo verdde
Presentación2  modulo   verddePresentación2  modulo   verdde
Presentación2 modulo verdde
María Alegría Tomalá Tomalá
 
El desarrollo-humano4764
El desarrollo-humano4764El desarrollo-humano4764
El desarrollo-humano4764
danilo_ruben
 
Comprar en internet
Comprar en internetComprar en internet
Comprar en internet
Matarilerileron1-7
 
Cambios fiscales 2012
Cambios fiscales 2012Cambios fiscales 2012
Cambios fiscales 2012
PLATAFORMOS
 
Trabajo práctico nro 9
Trabajo práctico nro 9Trabajo práctico nro 9
Trabajo práctico nro 9
Francisco Renta
 
1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wüm1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wüm
guestaaeca1
 
Primeros DíAs En Kinder A
Primeros DíAs En Kinder APrimeros DíAs En Kinder A
Primeros DíAs En Kinder Anellars
 
Maia Gogolashvili
Maia GogolashviliMaia Gogolashvili
Maia Gogolashvililosika2003
 
Primer día recreativo en comfandí
Primer día recreativo en comfandíPrimer día recreativo en comfandí
Primer día recreativo en comfandí
09anderson
 

Andere mochten auch (20)

Presentación
PresentaciónPresentación
Presentación
 
Colegio de bachilleres
Colegio de bachilleres Colegio de bachilleres
Colegio de bachilleres
 
Google docs
Google docsGoogle docs
Google docs
 
Comprar en internet
Comprar en internetComprar en internet
Comprar en internet
 
Grandes Dioses
Grandes DiosesGrandes Dioses
Grandes Dioses
 
EL COBRE
EL COBREEL COBRE
EL COBRE
 
Ficha practicum tice
Ficha practicum ticeFicha practicum tice
Ficha practicum tice
 
Parte de la historia de mi conjunto
Parte de la historia de mi conjunto Parte de la historia de mi conjunto
Parte de la historia de mi conjunto
 
Arena agenda legislativa 2015 18 documento resumen
Arena agenda legislativa 2015 18 documento resumenArena agenda legislativa 2015 18 documento resumen
Arena agenda legislativa 2015 18 documento resumen
 
Amparo Gómez - Patrimonio para el desarrollo
Amparo Gómez - Patrimonio para el desarrolloAmparo Gómez - Patrimonio para el desarrollo
Amparo Gómez - Patrimonio para el desarrollo
 
Creación de perfiles en las redes sociales: Facebook
Creación de perfiles en las redes sociales: FacebookCreación de perfiles en las redes sociales: Facebook
Creación de perfiles en las redes sociales: Facebook
 
Presentación2 modulo verdde
Presentación2  modulo   verddePresentación2  modulo   verdde
Presentación2 modulo verdde
 
El desarrollo-humano4764
El desarrollo-humano4764El desarrollo-humano4764
El desarrollo-humano4764
 
Comprar en internet
Comprar en internetComprar en internet
Comprar en internet
 
Cambios fiscales 2012
Cambios fiscales 2012Cambios fiscales 2012
Cambios fiscales 2012
 
Trabajo práctico nro 9
Trabajo práctico nro 9Trabajo práctico nro 9
Trabajo práctico nro 9
 
1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wüm1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wüm
 
Primeros DíAs En Kinder A
Primeros DíAs En Kinder APrimeros DíAs En Kinder A
Primeros DíAs En Kinder A
 
Maia Gogolashvili
Maia GogolashviliMaia Gogolashvili
Maia Gogolashvili
 
Primer día recreativo en comfandí
Primer día recreativo en comfandíPrimer día recreativo en comfandí
Primer día recreativo en comfandí
 

Ähnlich wie Communitygetriebe Android Systementwicklung

Smartphone Betriebssysteme Android
Smartphone Betriebssysteme AndroidSmartphone Betriebssysteme Android
Smartphone Betriebssysteme Android
dm-development
 
Smartphone Betriebssysteme Windows Phone
Smartphone Betriebssysteme Windows PhoneSmartphone Betriebssysteme Windows Phone
Smartphone Betriebssysteme Windows Phone
dm-development
 
Smartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOSSmartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOS
dm-development
 
Zühlke Whitepaper Client Technologien
Zühlke Whitepaper Client TechnologienZühlke Whitepaper Client Technologien
Zühlke Whitepaper Client Technologien
Thomas Memmel
 
ApplicationPro Flyer deutsch
ApplicationPro Flyer deutschApplicationPro Flyer deutsch
ApplicationPro Flyer deutsch
cynapspro GmbH
 
DevicePro Flyer deutsch
DevicePro Flyer deutschDevicePro Flyer deutsch
DevicePro Flyer deutsch
cynapspro GmbH
 
Probleme mit nicht kompatiblen Unternehmensanwendungen überwinden
Probleme mit nicht kompatiblen Unternehmensanwendungen überwindenProbleme mit nicht kompatiblen Unternehmensanwendungen überwinden
Probleme mit nicht kompatiblen Unternehmensanwendungen überwinden
xpmigration
 
Code-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-EntwicklungCode-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-Entwicklung
bhoeck
 
Vagrant
VagrantVagrant
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-ModellenErfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Flexera
 
PCS AG: OneTouchDemo (dt.)
PCS AG: OneTouchDemo (dt.)PCS AG: OneTouchDemo (dt.)
PCS AG: OneTouchDemo (dt.)
PCS AG
 
6 verschiedene Arten von Software
6 verschiedene Arten von Software6 verschiedene Arten von Software
6 verschiedene Arten von Software
YUHIRO
 
PowerPro Flyer deutsch
PowerPro Flyer deutschPowerPro Flyer deutsch
PowerPro Flyer deutsch
cynapspro GmbH
 
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch WienEntfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
DNUG e.V.
 
Mobile Device Management mit Windows Intune und SCMM, Part 1
Mobile Device Management mit Windows Intune und SCMM, Part 1Mobile Device Management mit Windows Intune und SCMM, Part 1
Mobile Device Management mit Windows Intune und SCMM, Part 1
Digicomp Academy AG
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
Gordon Breuer
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
DNUG e.V.
 
Windows 7 - Preview & Roadmap
Windows 7 - Preview & RoadmapWindows 7 - Preview & Roadmap
Windows 7 - Preview & Roadmap
Georg Binder
 
Mobile Endgeräte in der Produktion
Mobile Endgeräte in der ProduktionMobile Endgeräte in der Produktion
Mobile Endgeräte in der Produktion
Brockhaus Consulting GmbH
 

Ähnlich wie Communitygetriebe Android Systementwicklung (20)

Smartphone Betriebssysteme Android
Smartphone Betriebssysteme AndroidSmartphone Betriebssysteme Android
Smartphone Betriebssysteme Android
 
Smartphone Betriebssysteme Windows Phone
Smartphone Betriebssysteme Windows PhoneSmartphone Betriebssysteme Windows Phone
Smartphone Betriebssysteme Windows Phone
 
Smartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOSSmartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOS
 
Zühlke Whitepaper Client Technologien
Zühlke Whitepaper Client TechnologienZühlke Whitepaper Client Technologien
Zühlke Whitepaper Client Technologien
 
ApplicationPro Flyer deutsch
ApplicationPro Flyer deutschApplicationPro Flyer deutsch
ApplicationPro Flyer deutsch
 
DevicePro Flyer deutsch
DevicePro Flyer deutschDevicePro Flyer deutsch
DevicePro Flyer deutsch
 
Probleme mit nicht kompatiblen Unternehmensanwendungen überwinden
Probleme mit nicht kompatiblen Unternehmensanwendungen überwindenProbleme mit nicht kompatiblen Unternehmensanwendungen überwinden
Probleme mit nicht kompatiblen Unternehmensanwendungen überwinden
 
Code-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-EntwicklungCode-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-Entwicklung
 
Cryption proflyer de
Cryption proflyer deCryption proflyer de
Cryption proflyer de
 
Vagrant
VagrantVagrant
Vagrant
 
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-ModellenErfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
 
PCS AG: OneTouchDemo (dt.)
PCS AG: OneTouchDemo (dt.)PCS AG: OneTouchDemo (dt.)
PCS AG: OneTouchDemo (dt.)
 
6 verschiedene Arten von Software
6 verschiedene Arten von Software6 verschiedene Arten von Software
6 verschiedene Arten von Software
 
PowerPro Flyer deutsch
PowerPro Flyer deutschPowerPro Flyer deutsch
PowerPro Flyer deutsch
 
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch WienEntfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
 
Mobile Device Management mit Windows Intune und SCMM, Part 1
Mobile Device Management mit Windows Intune und SCMM, Part 1Mobile Device Management mit Windows Intune und SCMM, Part 1
Mobile Device Management mit Windows Intune und SCMM, Part 1
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Windows 7 - Preview & Roadmap
Windows 7 - Preview & RoadmapWindows 7 - Preview & Roadmap
Windows 7 - Preview & Roadmap
 
Mobile Endgeräte in der Produktion
Mobile Endgeräte in der ProduktionMobile Endgeräte in der Produktion
Mobile Endgeräte in der Produktion
 

Mehr von Marc Seeger

DevOps Boston - Heartbleed at Acquia
DevOps Boston - Heartbleed at AcquiaDevOps Boston - Heartbleed at Acquia
DevOps Boston - Heartbleed at Acquia
Marc Seeger
 
The current state of anonymous filesharing
The current state of anonymous filesharingThe current state of anonymous filesharing
The current state of anonymous filesharing
Marc Seeger
 
Lunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and CapybaraLunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and Capybara
Marc Seeger
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
Marc Seeger
 
building blocks of a scalable webcrawler
building blocks of a scalable webcrawlerbuilding blocks of a scalable webcrawler
building blocks of a scalable webcrawler
Marc Seeger
 
Eventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introductionEventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introduction
Marc Seeger
 
Alternative Infrastucture
Alternative InfrastuctureAlternative Infrastucture
Alternative Infrastucture
Marc Seeger
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overview
Marc Seeger
 
ZFS
ZFSZFS
The Dirac Video CoDec
The Dirac Video CoDecThe Dirac Video CoDec
The Dirac Video CoDec
Marc Seeger
 
Anonimität - Konzepte und Werkzeuge
Anonimität - Konzepte und WerkzeugeAnonimität - Konzepte und Werkzeuge
Anonimität - Konzepte und Werkzeuge
Marc Seeger
 
Security In Dect
Security In DectSecurity In Dect
Security In Dect
Marc Seeger
 
Social Media in der Unternehmenskommunikation
Social Media in der UnternehmenskommunikationSocial Media in der Unternehmenskommunikation
Social Media in der Unternehmenskommunikation
Marc Seeger
 
xDSL, DSLAM & CO
xDSL, DSLAM & COxDSL, DSLAM & CO
xDSL, DSLAM & CO
Marc Seeger
 
Ruby Xml Mapping
Ruby Xml MappingRuby Xml Mapping
Ruby Xml Mapping
Marc Seeger
 
HdM Stuttgart Präsentationstag PPTP VPN WLAN Update
HdM Stuttgart Präsentationstag PPTP VPN WLAN UpdateHdM Stuttgart Präsentationstag PPTP VPN WLAN Update
HdM Stuttgart Präsentationstag PPTP VPN WLAN Update
Marc Seeger
 

Mehr von Marc Seeger (16)

DevOps Boston - Heartbleed at Acquia
DevOps Boston - Heartbleed at AcquiaDevOps Boston - Heartbleed at Acquia
DevOps Boston - Heartbleed at Acquia
 
The current state of anonymous filesharing
The current state of anonymous filesharingThe current state of anonymous filesharing
The current state of anonymous filesharing
 
Lunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and CapybaraLunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and Capybara
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
building blocks of a scalable webcrawler
building blocks of a scalable webcrawlerbuilding blocks of a scalable webcrawler
building blocks of a scalable webcrawler
 
Eventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introductionEventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introduction
 
Alternative Infrastucture
Alternative InfrastuctureAlternative Infrastucture
Alternative Infrastucture
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overview
 
ZFS
ZFSZFS
ZFS
 
The Dirac Video CoDec
The Dirac Video CoDecThe Dirac Video CoDec
The Dirac Video CoDec
 
Anonimität - Konzepte und Werkzeuge
Anonimität - Konzepte und WerkzeugeAnonimität - Konzepte und Werkzeuge
Anonimität - Konzepte und Werkzeuge
 
Security In Dect
Security In DectSecurity In Dect
Security In Dect
 
Social Media in der Unternehmenskommunikation
Social Media in der UnternehmenskommunikationSocial Media in der Unternehmenskommunikation
Social Media in der Unternehmenskommunikation
 
xDSL, DSLAM & CO
xDSL, DSLAM & COxDSL, DSLAM & CO
xDSL, DSLAM & CO
 
Ruby Xml Mapping
Ruby Xml MappingRuby Xml Mapping
Ruby Xml Mapping
 
HdM Stuttgart Präsentationstag PPTP VPN WLAN Update
HdM Stuttgart Präsentationstag PPTP VPN WLAN UpdateHdM Stuttgart Präsentationstag PPTP VPN WLAN Update
HdM Stuttgart Präsentationstag PPTP VPN WLAN Update
 

Communitygetriebe Android Systementwicklung

  • 1. Communitygetriebene Android Systemerweiterungen Marc Seeger Computer Science and Media Hochschule der Medien Stuttgart e-mail: mail@marc-seeger.de 17. Januar 2010 1. Einleitung 2. Installation der Modifikationen ¨ Das Ver¨ ndern und Hinzufugen von a Die Android Plattform hat seit der Ver¨ ffentlichung o Systembestandteilen erfordert sowohl unter Linux der ersten auf Android basierten Ger¨ te eine große a im Desktop-Umfeld, als auch auf der Android Entwicklercommunity um sich gebildet. Diese Plattform entsprechende Privilegien. Diese ¨ Community erstellt nicht nur eine Fulle an Privilegien lassen sich unter Android auf zwei Arten Anwendungen, sondern erweitert auch die Plattform erreichen. Entweder man hat die M¨ glichkeit o und das darunter liegende Betriebssystem selbst. Programme mit Rechten des root-Benutzers zu Die Quelloffenheit der Plattform erm¨ glicht es o ¨ starten um im laufenden System Modifikationen Entwicklern mit tiefgreifenden Anderungen zu vornehmen zu k¨ nnen, oder man besitzt Zugriff auf o experimentieren und diese einer breiten ¨ den Boot-Prozess und kann somit direkt ein ¨ Offentlichkeit zur Verfugung zu stellen. Durch den entsprechend erweitertes Betriebssystem Linux Kern der Android Plattform wird es auch einspielen. Entwicklern ohne Erfahrungen im Im Normalfall unterliegt der Boot-Prozess dem Embedded-System Umfeld erm¨ glicht, einen o Hardware-Hersteller und der Zugriff wird durch einfachen Einstieg in die Systementwicklung fur ¨ diesen entsprechend eingeschr¨ nkt. Da a Mobiltelefone zu finden. Android-Endger¨ te jedoch w¨ hrend ihrer Lebenszeit a a Die Systemerweiterungen erm¨ glichen o einige offizielle Softwareupdates erfahren, besteht in ¨ risikobereiten Endnutzern das Hinzufugen von allen F¨ llen zumindest die M¨ glichkeit a o Features, welche im Auslieferungszustand des entsprechend kryptografisch signierte Updates Mobilger¨ tes nicht vorgesehen sind. Diese Features a einzuspielen. ¨ erstrecken sich von der Unterstutzung neuer Am Beispiel des HTC Dream k¨ nnen die typischen o Audioformate bis zur Erh¨ hung des CPU Takts. Die o Sicherheitsvorkehrungen von Android von den Entwicklern bereitgestellten Modifikationen Mobiltelefonen gut beobachtet werden. Dies erlaubt lassen sich mit unterschiedlichem Aufwand auf die auch die Erl¨ uterung der Schritte, welche von der a Endger¨ te einspielen. Android erm¨ glicht somit als a o ¨ Entwicklercommunity unternommen wurden, um erste Mobilplattform eine Grundlegende Anderung diese Vorkehrungen auszuhebeln. des vom Hersteller vorgegebenen Betriebssystems. Eine interessante Fragestellung in diesem Bereich ¨ sind auch die rechtlichen Hintergrunde bei der Verbreitung und Nutzung der Modifikationen. 2.1. Root-Zugriff Dieses Paper erl¨ utert zuerst die Voraussetzungen a Der Root-Zugriff auf dem Mobiltelefon hat die selbe ¨ fur die Modifikationen. Danach folgt eine Definition Bedeutung wie auf auf Desktop Rechnern. Er der unterschiedlichen Bereiche in welche die ¨ erm¨ glicht die Ausfuhrung von Programmen als o Modifikationen gegliedert werden k¨ nnen. Jeder o privilegierter Systemuser. Diese Privilegien erlauben Bereich wird hierbei durch entsprechende Beispiele unter anderem den unbeschr¨ nkten Zugriff auf a verdeutlicht. Schlussendlich wird die Hardware und Dateisystem des Systems. lizenzrechtliche Situation zur Verbreitung der Um die in diesem Paper vorgestellten Erweiterungen Modifikationen betrachtet. nutzen zu k¨ nnen, ist es gr¨ ßtenteils notwendig o o Zugriff auf diese Systembereiche zu haben. Es 1
  • 2. existieren heutzutage viele Android Distributionen service console /system/bin/sh der Community, welche einen Root-Zugriff von Haus aus bereitstellen. Es ist jedoch nicht m¨ glich o diese auf einem Telefon im Auslieferungszustand einfach einzuspielen. Die Recovery Partition welche ¨ ¨ ¨ fur den Flashprozess zust¨ ndig ist, uberpruft die a kryptografische Signatur des zu flashenden Images. Da der init Prozess als Standard Input (stdin) das Das System weigert sich daher eine Datei /dev/console Device gesetzt hat, wird nach diesem einzuspielen welche nicht von Google Befehl jegliche Eingabe an /dev/console mit beziehungsweise dem Netzbetreiber kryptografisch ¨ Root-Privilegien ausfuhrt. signiert wurde. Dies ist im Normalfall ungef¨ hrlich, da der Benutzer a ¨ Glucklicherweise ist es m¨ glich die Recovery o keinen direkten Zugriff auf /dev/console besitzt. Zu Partition aus dem laufenden System heraus zu dieser Zeit wurde dem System beim booten jedoch ersetzen, falls es dem Benutzer gelingt Root-Rechte ¨ ein ”console=”-Parameter ubergeben welcher zu erlangen. Der erste Angriffspunkt ist also das /dev/console auf mehrere Devices lauschen l¨ sst. Im a erreichen von Root-Rechten um dadurch entweder Normalfall sollte /dev/console nur auf den seriellen direkt Erweiterungen einzuspielen oder die Port lauschen um ein Debugging (z.B. durch den Recovery Partition zu ersetzen um ein Flashen mit Kundendienst) zu erm¨ glichen. Im Falle des G1 o unsignierten Images zu erm¨ glichen. o lauschte /dev/console jedoch auch auf das virtuelle Der zweite Angriffspunkt ist der Bootloader des Konsolen Device ”tty0”. Die von Linux bekannten Ger¨ tes. Der sogenannte ”Engineering Bootloader”, a virtuellen Konsolen sind bei einem System wie welcher sich auf Entwicklerger¨ ten befindet, erlaubt a Android eigentlich nicht n¨ tig, da der Benutzer nur o Entwicklern einen Systemzugriff via USB schon ¨ uber eine grafische Oberfl¨ che (auf Framebuffer a w¨ hrend der Bootloader-Phase des Systemstarts. a Basis) mit seinem System interagiert und keine Mit dem Entwicklertool Fastboot lassen sich so in Konsolen als Eingabem¨ glichkeit ben¨ tigt. Der o o Kombination mit dem Engineering Bootloader Kernel des HTC Dream wurde jedoch mit gesetztem ¨ beliebige Partitionen mit unsignierten Images uber ”CONFIG VT” Parameter kompiliert und bot USB flashen. In Endbenutzer-Ger¨ ten ist die USB a ¨ ¨ deshalb Unterstutzung fur die virtuellen Konsolen. Kommunikation mit dem Bootloader deaktiviert. Alle diese einzelnen Probleme laufen zusammen Gelingt es einem Benutzer im laufenden System wenn der Benutzer eine Taste auf der Root-Rechte zu erlangen, kann der aktuelle a ¨ Hardwaretastatur des Ger¨ tes druckt. Der Bootloader durch sein Engineering Pendant ersetzt Tastaturtreiber leitet jeglichen Tastendruck auf werden und erlaubt somit beliebig erweiterte vorhandene virtuelle Konsolen weiter. Dies bedeutet System-Images einzuspielen. dass tty0 jegliche Eingabe erh¨ lt. Von dort gelangt es a Die n¨ chsten 2 Abschnitte erl¨ utern wie die a a durch den gesetzten Boot Parameter an Umgehung der Signaturmechanismen in der Praxis /dev/console, welches die eingehenden umgesetzt wurde. Kommandos mit Root-Rechten ausfuhrt. ¨ Um von außen Root-Zugriff auf das Ger¨ t zu a ¨ erlangen genugt somit schon die Eingabe von 2.1.1 Die erste L¨ sung o ¨ ”telnetd” und das drucken der Enter Taste. Dadurch wird der im System mitgelieferte Telnet Daemon Als das HTC Dream als erstes Android-Endger¨ t auf a gestartet. Mit laufendem Telnet Daemon kann dann den Markt kam, besaß die installierte Android ¨ uber das Netzwerk auf das Ger¨ t zugegriffen werden. a ¨ Version eine Schwachstelle welche unglaubwurdiger Dieser Zugriff kann dazu benutzt werden den nicht sein konnte. Das Ger¨ t interpretierte a ¨ ¨ Bootloader zu uberschrieben. Das fuhrt dazu, dass Texteingaben in jedem beliebigen Teil des Systems auch unsignierte Systemimages eingespielt werden als Kommando. Besonders Kritisch wurde dieser k¨ nnen. o Fehler dadurch, dass jegliche Eingabe auch noch mit ¨ Da signierte Images mit dieser unglucklichen ¨ Root-Rechten ausgefuhrt wurde. Kombination von Fehlern in Umlauf sind k¨ nnen o ¨ Der Grund fur dieses Verhalten lag in einer ¨ Besitzer des G1 ein Downgrade durchfuhren falls die Kombination vieler Konfigurationseinstellungen. ¨ Sicherheitslucke in sp¨ teren Versionen geschlossen a Ein Teil davon ist die init.rc Datei, welche beim ¨ wird. In diesem Fall gibt es fur HTC und die ¨ Systemstart ausgefuhrt wird und folgende Zeile Netzbetreiber keine einfache L¨ sung mehr diese o enth¨ lt: a ¨ Lucke zu schließen. 2
  • 3. 2.1.2 Die aktuelle Situation Hier w¨ re als Beispiel die Integration des ”Brainfuck a Scheduler” in den Android Kernel zu nennen. Neuere Handsets als das G1 wurden mit Versionen Der Systembereich besteht aus Erweiterungen der Android Plattform ausgeliefert auf denen dieser bestehender Systemkomponenten z.B. durch ¨ Fehler behoben wurde. Da fur diese Telefone keine Plugins zur Wiedergabe von bisher nicht kompatiblen ”fehlerhaften” Images im Umlauf sind, ¨ unterstutzten Medienformaten oder der muss der Root-Zugriff auf eine andere Art hergestellt Implementation von Funktionalit¨ t welche die a werden. aktuelle Hardware zwar bieten k¨ nnte, jedoch in der o Das Tool ”FlashRec”[1] nutzt dazu mehrere Exploits offiziellen Entwicklungsversion von Android so im Linux Kernel. Durch diese Exploits gelingt es ¨ nicht zur Verfugung steht. Ein Beispiel w¨ re die a einen Flashvorgang des Recovery Images mit den Implementation des Bluetooth Object Exchange erforderlichen Root-Privilegien zu starten. Protokolls (OBEX) welches den Dateitransfer ¨ Fur Firmware-Images welche vor August 2009 ¨ zwischen Endger¨ ten uber Bluetooth erm¨ glicht. a o ver¨ ffentlicht wurden wird von FlashRec eine o Der Applikationsbereich konzentriert sich auf die ¨ Sicherheitslucke genutzt welche unter dem Namen Erweiterung vorhandener Applikationen oder die ADV-2009-2272 in der National Vulnerability Portierung von Applikationen neuerer Endger¨ te auf a Database ver¨ ffentlicht[2] wurde. Dieser Exploit o ¨ altere Android-Versionen. Hier w¨ re z.B. die a nutzt eine Schwachstelle des Kernels bei Socket Integration von Multitouch in den Android Operationen um beliebigen Code mit Webbrowser zu nennen. ¨ Root-Privilegien ausfuhren zu k¨ nnen. Die o Im Folgenden werden die einzelnen Bereiche uber ¨ ¨ genaueren Interna des Exploits wurden den Umfang Beispielprojekte verdeutlicht. des Papers sprengen, k¨ nnen jedoch auf der Seite o der National Vulnerability Database nachgelesen ¨ werden. Das Realisieren des Exploits uber Socket Verbindungen wird auch beim Installieren des Tools 4. Erweiterungen auf Kernel Ebene erkennbar. Der Benutzer muss dem Tool Zugriff auf ¨ Die Erweiterungen auf der Kernel Ebene dienen zum das Bluetooth Subsystem genehmigen. Uber das Großteil der Erh¨ hung der Performanz des o Bluetooth Subsystem kann vom Programm der Gesamtsystems. Einige von ihnen legen jedoch Socket erstellt werden welcher den Exploit ¨ gleichzeitig auch den Grundstein fur andere erm¨ glicht. o Modifikationen im System- oder ¨ Fur Firmware-Images die zwischen August 2009 und Anwendungsbereich. November 2009 ver¨ ffentlicht wurden benutzt das o ¨ Tool die Kernel Sicherheitslucke CVE-2009-3547[3]. ¨ Diese Lucke erlaubt Angreifern durch ¨ race-conditions im pipe Systemcall die Ausfuhrung 4.1. BFS - Der ”Brainfuck Scheduler” von beliebigem Code mit Root-Privilegien. In In heutigen Betriebssystemen k¨ mpfen zu jedem a unserem Fall leitet der Code das Flashen des Zeitpunkt mehrere Prozesse darum, ihren Recovery Images ein. ¨ Programmcode auf dem Prozessor ausfuhren zu ¨ durfen. Die grundlegende Instanz des Betriebssystems, welche sich mit dieser 3. Gruppierung der Ressourceneinteilung besch¨ ftigt wird ”Scheduler” a Modifikationen genannt. Insbesondere bei den begrenzten ¨ Ressourcen von Mobilger¨ ten muss er fur eine a Die von unabh¨ ngigen Entwicklern in die Android a Balance aus Hintergrundprozessen (z.B. die Plattform integrierten Erweiterungen wurden lassen ¨ Aktualisierung der Location-Daten uber Google sich grob in drei Bereiche gliedern: ¨ Latitude) und einem flussigen Ablauf der • Kernel Benutzeroberfl¨ che sorgen. a • System ¨ Ursprunglich konnte man im Android Quellcode, • Applikationen wie auch im regul¨ ren Linux Kernel den Completely a Der Kernelbereich befasst sich mit Erweiterungen Fair Scheduler (kurz: CFS) in der Datei sched fair.c die aus der offiziellen Linux Kernelentwicklung vorfinden. Dieser Scheduler ist im Gegensatz zu stammen. Zum Zeitpunkt ihrer Ver¨ ffentlichung o seinen Vorg¨ ngern (z.B. dem O(1)-Scheduler) a sind diese Erweiterungen im Normalfall jedoch auf weitgehend frei von komplexen Heuristiken und keinem offiziellen Android Endger¨ t im Einsatz. a Statistiken. Es findet keine Priorisierung von 3
  • 4. einzelnen Tasks statt, stattdessen werden alle Bedarf in Con Kolivas Dokument zum BFS Design[5] Prozesse gleich behandelt. Der Prozess welcher nachgelesen werden. schon am l¨ ngsten auf CPU Zeit warten musste wird a Ob es in direktem Zusammenhang steht ist nicht als n¨ chster aktiviert. Erg¨ nzend muss noch a a bekannt, jedoch gab es einige Wochen sp¨ ter einen a angemerkt werden, dass es in neueren Kernel commit[6] welcher BFS dem offiziellen Android Versionen die M¨ glichkeit gibt Prozesse zu ”Task o ¨ Sourcecode hinzufugte. ¨ Groups” zu bundeln. Die Auswahl erfolgt dann prim¨ r auf Gruppenebene um zu verhindern dass a ¨ einzelne Benutzer uber eine große Anzahl an 4.2. Das Compcache Modul Prozessen das gesamte System blockieren. Eines der gr¨ ßten Probleme im t¨ glichen Einsatz o a Mitte 2009 entwickelte Con Kolivas jedoch eine von mobilen Endger¨ ten ist der begrenzte a Alternative zum CFS Scheduler da dieser, in seinen Arbeitsspeicher. Besonders in Systemen (wie z.B. ¨ Augen, fur interaktionsbasierte Android) in denen der Endnutzer mehrere Endanwendersysteme ungeeignet sei. Ein Zitat aus Programme parallel laufen lassen kann wird seiner BFS-FAQ[4] zum ”hakeligen” Verhalten des Arbeitsspeicher schnell zur knappen Ressource. CFS auf seiner neuen Hardware lautete wie folgt: Die normale Herangehensweise auf Desktop Systemen ist, Teile der Festplatte quasi als It’s not a profound effect in CFS and that’s ¨ ”Uberlauf” zu nutzen und aktuell nicht genutzte admirable. It just doesn’t behave the way I Programmteile vom RAM auf die Festplatte zu feel the scheduler should being forward verschieben. Mobile Endger¨ te besitzen jedoch a looking only (not calculating sleep) and it Flashspeicher der in der Anzahl von doesn’t really make the most of a relatively ¨ Schreibzugriffen begrenzt ist und uber die Zeit lightly loaded machine without many many degradiert. Neben diesem ”wear-leveling” Problem cpus. So I threw it all out and wrote exactly verlangsamt eine Auslagerung auf den langsameren the opposite. Flashspeicher das gesamte System und sollte Um die Gegenl¨ ufigkeit zur aktuellen Schedulern zu a vermieden werden. verdeutlichen nannte er seine Kreation BFS, den Hier ist der Einsatzort des Compcache Moduls[10]. ”Brainfuck Scheduler” und ver¨ ffentlichte die o ¨ Anstatt den ”Uberlauf” des Arbeitsspeichers auf die bereits erw¨ hnte FAQ Datei[4], welche seine a Festplatte bzw. den Flashspeicher zu verlagern, Motivation und die Grundidee verdeutlichte. nimmt das Modul einen Teil des Arbeitsspeichers Er charakterisierte das Verhalten des Schedulers ¨ dafur. Dieser Teil wird als Blockdevice mit dem darin mit folgenden Worten: ¨ Namen ”ramzswap” zur Verfugung gestellt. Der Vorteil dabei ist, dass die Daten welche auf das It was designed to be forward looking only, Blockdevice geschrieben werden, transparent make the most of lower spec machines, and komprimiert werden. Dies vergr¨ ßert die Menge an o not scale to massive hardware. ie [sic] it is a Daten die (gleichzeitig) im schnellen RAM gehalten desktop orientated scheduler, with werden k¨ nnen und ist zugleich bei Weitem o extremely low latencies for excellent schneller als der Zugriff auf einen entsprechenden interactivity by design [...] internen Flashspeicher des Mobilger¨ tes. a Durch die Optimierung auf Interaktion und Die Community selber ist sich jedoch noch leistungsschwache Systeme ergibt sich eine ¨ unschlussig ob der zus¨ tzliche Arbeitsspeicher das a interessante Einsatzm¨ glichkeit in Mobiltelefonen. o Gesamtsystem wirklich beschleunigt oder ob der Dies erkannte auch Steve Kondik, der Community zus¨ tzliche Overhead sich negativ auf die a besser als ”Cyanogen” bekannt. Er ist Autor der wohl ¨ Gesamtperformance fur ein normales beliebtesten Android-Distribution ”Cyanogenmod”. Benutzungsschema auswirkt. Er war auch der Erste der BFS auf Android portierte und ein lauff¨ higes Image ver¨ ffentlichte, welches a o die Endnutzer mit recht wenig Aufwand auf ihre 4.3. Erh¨ hung des CPU Taktes o Telefone einspielen konnten. Das Userfeedback ¨ Das Ubertakten von Computern ist in der PC attestierte dem neuen Scheduler eine subjektiv Community seit Jahren schon ein beliebtes Mittel ¨ flussigere Bedienbarkeit des Gesamtsystems. um gekaufter Hardware mehr Leistung zu entlocken. ¨ Genauere Details des Schedulers wurden den Die Geschwindigkeit einer CPU wird durch zwei Rahmen des Papers sprengen, k¨ nnen jedoch bei o Merkmale bestimmt: 4
  • 5. • den Bustakt Modul. Im Bluetooth Standard sind neben den • den Multiplikator Grundlegenden Eigenschaften wie z.B. Frequenzen Multipliziert man diese 2 Angaben erh¨ lt man die a und Sicherheitsmodelle auch sogenannte ”Profile” Nenngeschwindigkeit des Prozessors(z.B. 12 * 133.33 ¨ festgelegt. Diese Profile stehen fur eine MHz = 1600 MHz). entsprechend standardisierte Funktionalit¨ t wie z.B. a W¨ hrend in normalen Heimcomputern die a das Hands-Free Profile (kurz: HFP), welches jegliche Prozessoren immer mit der vom Prozessorhersteller Details bei der Kommunikation mit vorgegebenen maximalen Geschwindigkeit getaktet Auto-Freisprechanlagen festlegt. ¨ werden, sieht die Situation fur Mobilger¨ te anders a ¨ Fur den Endanwender ist das OBject EXchange ¨ aus. Um potentielle Uberhitzung oder zu großen Protokoll (kurz OBEX) interessant. Es dient als Stromverbrauch zu vermeiden werden Prozessoren ¨ Grundlage fur viele andere Profile wie z.B. Object ¨ kunstlich gedrosselt. Push Profile oder Generic Object Exchange Profile. ¨ Ein Beispiel dafur ist das HTC Dream, auch bekannt Diese Profile erm¨ glichen es z.B. Visitenkarten o als ”Google Dev Phone 1” oder ”T-Mobile G1”. Es a ¨ elektronisch zwischen Endger¨ ten zu ubertragen besitzt einen 528 MHz Qualcomm MSM7201A oder Fotos an ein anderes Bluetooth-Ger¨ t (z.B. den a ARM11 Prozessor, welcher jedoch im eigenen Laptop) zu senden. Auslieferungszustand des Ger¨ tes auf 384 MHz a Das HTC Dream konnte im Auslieferungszustand begrenzt ist. zwar Bluetooth-Freisprecheinrichtung benutzen, Die Begrenzung ist jedoch rein softwareseitig und ¨ ¨ jedoch existierte keinerlei Unterstutzung fur das kann, entsprechende root-Rechte vorausgesetzt, ¨ OBEX Protokoll um Dateitransfers uber Bluetooth aufgehoben werden. abzuwickeln. Programme wie setcpu[7] erlauben die Auswahl des Dies ist insbesondere deswegen verwunderlich, weil CPU Governor und die Anpassung der minimalen bereits einige Open-Source Implementationen des und maximalen Frequenzen. ¨ OBEX Protokolls fur Linux existieren. Diese Durch die erh¨ hte Leistung entsteht auch ein o ¨ Implementationen bildeten die Grundlage fur einige erh¨ hter Stromverbrauch, jedoch nur zu den o erfolgreiche Kommandozeilen Experimente. Die Zeitpunkten in denen die CPU wirklich rechnen funktionierenden Tools stehen unter dem Namen muss. Bei normaler Interaktion mit dem Ger¨ t wird a ¨ ”android-obex”[8] als Sourcecode zur Verfugung. somit zwar mehr Strom verbraucht, jedoch nur uber¨ Eine entsprechende grafische ¨ a ¨ kurzere Intervalle. Somit kann das Ger¨ t flussiger Endbenutzer-Applikation stand kurze Zeit sp¨ ter im a bedient werden. Insbesondere Spiele, die im ¨ Android Market zur Verfugung. Die einzige Normalfall eine andauernde Auslastung der CPU Einschr¨ nkung zur Nutzung dieser Applikationen a ¨ garantieren werden dem ubertakteten System wohl ist, dass man Root-Zugriff auf sein Ger¨ t ben¨ tigt a o ¨ mehr Energie entlocken als einem Aquivalenten um die entsprechenden Kommandos an das System mit Begrenzung des CPU Takts. Bluetooth Subsystem abgeben zu k¨ nnen. o ¨ Als Beispiel fur eine der ersten grafische ¨ Applikationen welche Dateitransfers uber OBEX 5. Erweiterungen auf System vornehmen konnten sei ”Bluex” genannt. Der Preis der Applikation f¨ llt mit 2 USD recht gering aus. a Ebene Die Erweiterungen auf Systemebene verschaffen dem Enduser neue Features welche 5.2. Unterst¨ tzung von FLAC u Unzul¨ nglichkeiten der vom Hersteller zur a Eine weitere Systemerweiterung die sich großer ¨ Verfugung gestellten Firmware beheben sollen. ¨ Beliebtheit erfreut ist die Unterstutzung des FLAC ¨ Formats fur das Multimedia-Subsystem. ¨ FLAC ist der de-facto Standard fur verlustfrei 5.1. Integration des OBEX Protokolls komprimierte digitale Audiodateien. Es ist ein Die Integration des OBEX Protokolls[11] ist offenes Format und findet als Archivformat bei ¨ Beispielhaft fur eine Erweiterung, bei der die audiophilen Menschen großen Anklang. Es eignet Hardware des Endger¨ tes entsprechende a sich auf Grund seiner geringen CPU Anforderungen M¨ glichkeiten bietet, jedoch von Softwareseite eine o ¨ beim Decodieren fur vergleichsweise langsame Einschr¨ nkung herrscht. Im Falle von OBEX war die a CPUs wie sie in Smartphones und anderen mobilen Hardware das im HTC Dream verbaute Bluetooth Systemen vorkommen. 5
  • 6. Das Sch¨ ne an dieser Erweiterung ist, dass sie auf o besitzt einen internen Speicher von 256 Megabyte. das OpenCORE Media Framework aufsetzt. Dieses Um mehr als eine Hand voll Musik, Bilder oder ¨ Framework bildet die Grundlage fur die erweiterbare Videos auf dem Ger¨ t vorhalten zu k¨ nnen, besitzt a o ¨ Multimedia-Unterstutzung in Android. Der Android es wie die meisten Smartphones eine M¨ glichkeit o Quellcode bindet OpenCORE mit den Formaten aac, den internen Speicher durch den Einsatz einer gsm amr, mp3 und sbc ein[9] Speicherkarte (meist im Micro SD Format) zu Bereits im Dezember 2008 wurde im offiziellen erweitern. Leider hilft diese Erweiterung dem Android Bugtracker unter der Ticketnummer Endkunden nicht, wenn ihm durch große ¨ 1461[13] der Wunsch nach Unterstutzung des FLAC Applikationen der interne Speicher knapp wird. Formates deutlich. Leider hat es ein Jahr sp¨ ter noch a ¨ Gizmodo(.com) berichtete, dass als Grund fur diese ¨ keine offizielle Anderung des Tickets gegeben. Es Praxis die Angst vor Raubkopien genannt wurde. Es existieren Ende Dezember 2009 jedoch schon uber ¨ wird laut Aussage von einem Google Mitarbeiter 100 Kommentare die diesen Wunsch bekr¨ ftigen.a ¨ jedoch fur kommende Android Versionen an einer Zum 31. Juli 2009 wurden jedoch von Kenny Root 3 ¨ L¨ sung gearbeitet, die Applikationen verschlusselt o Patches eingereicht, welche den FLAC Support in auf der SD Karte abzulegen. ¨ Android nachrusten. Um Patches zum offiziellen Der aktuelle Stand ist jedoch, dass es offiziell nicht ¨ Android Repository hinzuzufugen muss ein Review m¨ glich ist. Da Android ein Linux basiertes System o Prozess angestoßen werden. Dieser Prozess besteht ist, wird die SD Karte jedoch intern nur als weiterer aus drei Schritten. Der erste Schritt ist ein Upload Ordner in das Dateisystem ”gemounted”. Dem der Patches in das ”Gerrit” genannte Code Review laufenden System steht die Karte unter dem Pfad System unter http://review.source.android.com. ¨ /sdcard zur Verfugung. Schritt zwei ist eine Zustimmung durch berechtigten Da die interne Systempartition mit dem Personen. Jedes Projekt im Android Source Tree hat Dateisystem YAFFS2 formatiert ist, beherrscht sie ¨ eine Liste von Leuten die einer Anderung das erstellen von ”symbolischen Links”. Diese stellen o ¨ zustimmen k¨ nnen. Je nach Projekt mussen ein oder eine Indirektion dar um einen Verweis auf einen ¨ mehrere berechtigte Personen der Anderung anderen Ordner bereitzustellen. Will man nun ein zustimmen. Sollte dies geschehen sein, sind die Programm auf die SD Karte auslagern, kann man Patches bei Schritt drei angekommen und werden in einfach den Ordner des Programmes vom internen den offiziellen Android Source Tree gemerged. Flash auf die SD Karte verschieben und einen Von den FLAC Patches befinden sich zwei aktuell im ¨ entsprechenden symbolischen Link zurucklassen. Zustand ”Review in Progress”, der dritte Patch wurde ¨ ¨ Da Programme nur uber die ublichen Dateisystem schon in das offizielle Repository gemerged. APIs auf Dateien zugreifen und diese APIs mit Um dem langsamen offiziellen Prozess zu entgehen, ¨ symbolischen Links umzugehen wissen, andert sich wurde das Addon schon vor l¨ ngerer Zeit in die a ¨ fur die Anwenderprogramme selber nichts. ¨ ”Cyanogen” Android Distribution ubernommen und Die erste Vorbereitung welche der Benutzer fur ¨ kann damit schon auf aktuellen Ger¨ ten genutzt a diesen Prozess selbst treffen werden muss ist, auf werden. der SD Karte eine Ext3 bzw Ext2 formatierte Die offizielle Webseite [12] des Projektes macht nur ¨ Partition einzurichten. Leider unterstutzt das auf eine Limitierung aufmerksam: Es wird nur FLAC ¨ normalerweise fur SD Karten vom System ¨ mit einer Sampletiefe von 16 Bit unterstutzt. Dies eingesetzte FAT32/vfat die Posix Access Control sollte jedoch kein großes Problem darstellen, da Listen zur Rechteverwaltung von Dateien nicht und FLAC Dateien zum Großteil von Audio CDs erzeugt ist damit nicht mit dieser Modifikation kompatibel. werden, welche selber nur 16 Bit Sampletiefe Die zweite Voraussetzung ist ein Kernel der mit besitzen. ¨ ¨ Unterstutzung fur das Ext Dateisystem kompiliert wurde. Im Auslieferungszustand bietet Android nur ¨ ¨ Unterstutzung fur das YAFFS und FAT32 (aka vfat) 5.3. Apps2SD Dateisystem. Da jedoch bei Android ein normaler Linux Kernel zum Einsatz kommt, ist die EXT Die M¨ glichkeit der Auslagerung von Programmen o ¨ Unterstutzung nur eine Konfigurationseinstellung auf die Speicherkarte (”Apps2SD”) ist ein sehr vor dem Kompilieren und ben¨ tigt keinen weiteren o beliebtes Thema in der Android Community. Aufwand. Das HTC Dream war das erste Android Smartphone Vorteile dieser Erweiterung sind der dadurch quasi welches von einem Mobilfunkanbieter verkauft ¨ unbeschr¨ nkte Platz fur Programme und die a wurde. Dieses von T-Mobile ”G1” getaufte Endger¨ t a 6
  • 7. M¨ glichkeit nach einer Systemwiederherstellung die o Erstellen von kompletten System Backups, was vorher installierten Programme mit einem ¨ insbesondere fur Entwickler von großer Bedeutung ¨ Kommando zuruck zu bekommen. ist. Diese Modifikation hat jedoch nicht nur Vorteile. Sie Teil der erweiterten Recovery Images sind auch nimmt dem Benutzer die M¨ glichkeit die SD Karte o Tools welche z.B. die Partitionierung von SD-Karten im laufenden Betrieb entfernen zu k¨ nnen. Dadurch o erm¨ glichen. Die im vorherigen Kapitel o dass im System ein pl¨ tzliches fehlen von o besprochene ”Apps2SD” Erweiterung kann somit Programmen nicht vorgesehen ist, k¨ nnten o ¨ ¨ vollst¨ ndig uber die neuen Bordmittel durchgefuhrt a unvorhersagbare Probleme auftreten. Des Weiteren werden. ist die Setup Prozedur recht komplex und sollte mit Die beliebteste Distribution des Recovery Image ist ¨ Vorsicht durchgefuhrt werden. Schlussendlich ist es, das sogenannte ”Pimped out recovery image with je nach SD Karte, auch m¨ glich dass eine o new features”[14] welches von Steve ’Cyanogen” Verlangsamung der Programme durch den Kondik erweitert wurde. Die Installation kann aus permanenten SD Karten Zugriff auftritt. Die dem laufenden System erfolgen und beschr¨ nkt sich a Automatisierung des kompletten Prozesses ist heute auf die Eingabe eines simplem Kommandos in jedoch bei vielen Android Distributionen (z.B. der einem Terminal-Emulator: ¨ ”Cyanogen” Distribution) gegeben bzw. uber ein erweitertes Recovery Image realisierbar. Um den USB-Modus des Mobiltelefons weiterhin flash image recovery auch auf Systemen nutzen zu k¨ nnen welche keine o /sdcard/cm-recovery-1.4.img ¨ ¨ Unterstutzung fur das EXT Dateisystem bieten ist es ratsam eine seperate FAT32 formatierte Partition auf der SD Karte zu erstellen um weiterhin einen einfachen Zugriff auf Bilder und Musikdateien zu 5.4.1 APN Listen erm¨ glichen. o Die Konfiguration der Datenverbindung eines 5.4. Funktionsumfang des ”Recovery Mobilger¨ tes ist sicherlich eine der komplexeren a Image” Aufgaben mit denen sich ein Smartphone-Besitzer konfrontiert sehen kann. Die Erh¨ hung des Funktionsumfangs des ”Recovery o Im Normalfall sind auf Mobilger¨ ten welche durch a ¨ Image” ist quasi ein Muss fur den Hobby-Entwickler. einen Mobilfunkprovider verkauft werden diese Die bisher auf dem Markt befindlichen Daten automatisch hinterlegt. Das Hauptaugenmerk Android-basierten Endger¨ te haben einen a liegt hierbei auf dem Access Point Name (kurz: APN). mehrstufigen Systemstart. Beim Aufbau einer Datenverbindung wird der im ¨ ¨ Zu Beginn der Startsequenz wird uberpruft ob ¨ Telefon hinterlegte APN mit an das Netz ubergeben. ¨ gewisse Tastenkombinationen gedruckt sind. Eine ¨ Das Netz ermittelt daraufhin uber eine DNS Anfrage dieser Kombinationen (beim G1 z.B. Home-Key und an welchen Gateway die Anfrage weitergeleitet o ¨ die rote H¨ rertaste) fuhrt dazu, dass das werden muss. Dieses Gateway leitet die Anfragen Mobiltelefon nicht das volle Android Betriebssystem des Nutzers aus dem Netz des Mobilfunkproviders startet sondern das System die ”Recovery” Partition in das Globalen Internet weiter. Sollte ein falscher bootet. Diese Partition beinhaltet ein (Linux) ¨ APN an das Netz ubergeben werden, findet keine Minimalsystem welches nur zum Update/der Weiterleitung der Pakete ins Internet statt. Wiederherstellung der eigentlichen Systempartition ¨ Die Mobilger¨ te verfugen im Auslieferungszustand a gedacht ist. ¨ uber eine Liste der APNs von Vertragspartnern. Erweiterungen dessen Funktionsumfanges Kleinere Provider oder lokale Provider bei beginnen beim Einspielen eines neuen Kernels mit Importger¨ ten bleiben in desen Listen jedoch oft a o ¨ einer gr¨ ßeren Dateisystemunterstutzung (z.B. außen vor. Die Zusammenarbeit der Community ¨ wichtig fur ”Apps2SD”). beim Sammeln von entsprechenden Netz und APN Eine der attraktivsten Erweiterungen, genannt ¨ Kombinationen fuhrt zu umfangreichen APN Listen ”Nandroid”, verschafft dem Benutzer die ¨ welche eine manuelle Einrichtung meist uberflussig ¨ M¨ glichkeit, den gesamten NAND Flash des Systems o macht. auf die SD Karte zu sichern und bei Bedarf auch ¨ wieder zuruckzuspielen. Dies erm¨ glicht das o 7
  • 8. 6. Erweiterungen auf Applikations Da Google dem Android Open-Source Projekt in regelm¨ ßigen Abst¨ nden neue Releases des Systems a a Ebene beisteuert bieten die offiziellen Android Sourcen oft Auf Applikationsebene sind in diesem Umfeld selten a ¨ zus¨ tzliche Features welche in alteren Ger¨ te nicht a komplette Neuentwicklungen zu finden. Es sind existieren. meist kleine Patches bzw Konfigurations¨ nderungen a Dies konnte insbesondere beim Erscheinen der an vorhandenen Anwendungen. Android Releases mit den Codenamen ”Donut” bzw ”Eclaire” und deren konsequenter Portierung auf das HTC Dream beobachtet werden. Hierbei wurden z.B. 6.1. Better Browser Features wie PPTP/L2TP VPN und WPA Enterprise Der ”Better Browser”[15] ist eine Erweiterung des ¨ Support hinzugeugt, welche zu dieser Zeit nur im Standardwebbrowsers um u.a. Multitouch-Gesten. experimentellen ”Donut” Release zu finden waren. Da der Webkit-basierende Android Browser unter Ein weiteres Beispiel sind oft einzelne Widgets Open-Source Lizenz steht, konnten zus¨ tzliche a welche in sp¨ teren Handymodellen a Features mit vergleichbar geringem Aufwand beziehungsweise Systemversionen aufgetaucht sind. implementiert werden. Widgets sind kleine Programme welche direkt auf Die zus¨ tzlichen Features welche im originalen a dem Homescreen des Ger¨ te laufen und nicht a Browser nicht vorhanden sind erstrecken sich von explizit gestartet werden. ¨ einfachen kosmetischen Anderungen bis hin zu Hierzu sind z.B. das Power Widget (zusammen mit neuer Funktionalit¨ t. Einer der gr¨ ßten a o dem ”App Fuel Gauge” Systemfeature) oder das HTC ¨ Unterschiede ist der Support fur Multitouch. Die Twitter-Widget zu nennen. Diese Widgets erlauben ¨ vom iPhone ublichen ”pinch” Gesten um eine einfache Aktivierung von Services (Bluetooth, Ausschnitte von Webseiten zu vergr¨ ßern werden o GPS, ...) respektive die Interaktion mit dem dadurch bei entsprechendem Kernel (mit Micro-Blogging Dienst Twitter. ¨ Multitouch Support) unterstutzt. Kosmetische Insbesondere bei den Widgets von HTC stellt sich ¨ Anderungen wie das Deaktivieren der Zoom Buttons jedoch oft die Frage nach der Legalit¨ t der weiteren a gehen Hand in Hand mit neuen Gesten wie z.B. die Verbreitung der Widgets, da diese nicht unter Double-tap Geste um die Zoomstufe zu erh¨ heno offenen Lizenzen stehen. oder die Triple-tap Geste um die Zoomstufe zu verringern. Beachtlich ist hierbei dass die ”Triple-Tap” Geste im Android SDK nicht 7. Lizenzfrage vorgesehen ist sondern von Hand implementiert Bei der Verbreitung von ”flash-fertig” Image Dateien wurde. ¨ ¨ uber Entwicklerforen stellt sich naturlich noch die Die letzte gr¨ ßere Erweiterung des Browsers ist das o Frage der Lizenzen der Einzelkomponenten. ”Mobile Web Settings” Feature. Es erm¨ glicht die o W¨ hrend Großteile des Systems unter einer freien a ¨ Ubertragung eines beliebigen HTTP User Agents. Lizenz stehen, sind einige Anwendungen (z.B. Dieser von vielen Seiten ausgewertet um zu Google Maps) propriet¨ r und deren Verbreitung a ¨ entscheiden ob eine fur Mobilger¨ te optimierte a ohne Zustimmung des Rechteinhabers ist Version der Seite ausgeliefert wird. Durch den umstritten. Hier ist es interessant zu sehen, welche ge¨ nderten User Agent wird es dem Android Ger¨ t a a Systembestandteile der Android Smartphones unter erm¨ glicht eine z.B. auf iPhones spezialisierte o welche Lizenz fallen. Ansicht bestimmter Webseiten zu erhalten falls der Die im offiziellen Android Repository Webseitenbetreiber die Android Plattform bisher (http://android.git.kernel.org/) bereitgestellten noch nicht als Mobilger¨ t erkennt. a Komponenten befinden sich alle unter der Apache v2 Open Source Lizenz. ¨ Einige der Hauptkomponenten (neben den ublichen 6.2. Backports Linux Systembibliotheken) sind: Die Community hat auch eine Reihe von • Das OpenCORE Media Framework ”Backports” hervorgebracht. Dies sind • Die Tesseract Open Source OCR Engine Softwarekomponenten welche auf neueren • Der radio interface layer (”ril”) Handymodellen erschienen sind und von • Andwendungen wie z.B. Alarm Clock, Browser, ¨ Entwicklern auf alteren Hardwaremodellen lauff¨ hig a Calendar, Calculator, Camera, Contacts, Email, gemacht werden. IM, Music, Voice Dialer, Sound Recorder 8
  • 9. W¨ hrend diese Komponenten ausreichen um ein a 8. Fazit Lauff¨ higes System herzustellen, gibt es jedoch noch a einige Bestandteile welche sich auf aktuellen Die Beliebtheit der einzelnen Modifikationen spricht Endger¨ ten finden, jedoch nicht unter einer freien a ¨ fur sich. Es gab in der Geschichte der Mobiltelefone ¨ Lizenz verfugbar sind: noch keine anderen Zeitpunkt an dem eine gr¨ ßere o ¨ Anzahl Endbenutzer tiefgreifenden Anderungen an • Google Maps ¨ ihrem Mobiltelefon durchgefuhrt haben. • YouTube Insgesamt kann man sagen dass sich die • Google Voice Bereitschaft von Endbenutzern stark erh¨ ht hat, ihr o • ¨ Google Talk (ein Instant Messaging Client fur Endger¨ t eigenst¨ ndig zu modifizieren. Benutzer a a Googles XMPP basierende Chat Platform) ¨ des Apple iPhone konnten sich uber einen • Google Android Market ”Jailbreak” schon lange vor dem offiziellen • Google Search Marktstart des Appstore zus¨ tzliche Applikationen a • ¨ Gmail (ein spezialisierter eMail client fur installieren. Benutzer des Palm Pre wird es durch Googles Mailservice) ”Preware” erm¨ glicht ihr Ger¨ t mit zus¨ tzlichen o a a • Der Google Calendar Provider (um eine Programmen und Erweiterungen zu versehen. synchronisation zu Googles Durch das Aufkommen von unix- bzw Online-Kalenderdienst bereitzustellen) linuxbasierten Endger¨ ten wird es nun auch a Programmierern erm¨ glicht Erweiterungen zu o Diese Software ist Teil der sogenannten ”Google schreiben, welche vorher keinerlei Erfahrung mit Experience” und wird von Google an die Hersteller Embedded Systems hatten. der Endger¨ te bzw. an Provider verkauft. a Trotz der relativ großen Verbreitung der Interessant ist hierbei die anf¨ ngliche a Modifikationen gibt es bisher keine Hersteller die Argumentation von Steve Kondik (besser bekannt versucht haben rechtliche Schritte gegen eben jene unter seinem Pseudonym”cyanogen”). Er verbreitete Softwareprojekte zu unternehmen. Palm CEO Josh die ”Google Experience” Anwendungen als Teil Rubenstein ging auf der Consumer Electronics Show seiner Images. Darin sah er jedoch kein Problem, da 2010 sogar soweit, die Ergebnisse der Entwickler die Images nur auf ”Google Experience” Ger¨ ten a Community lobend in seiner Keynote zu erw¨ hnen. a lauff¨ hig waren. Der Einsatz der Anwendungen a Einzig bei der Verbreitung von bestehendem erfolgte also stets von Leuten die durch den Kauf des intellektuellem Eigentum ohne Zustimmung des Telefons dazu berechtigt waren. Herstellers wurde eine Unterlassungsanordnung W¨ hrend diese Argumentation intuitiv recht a von Google gegen den Entwickler der beliebten nachvollziehbar ist, hat sich Steve Kondik darauf Cyanogen Distribution ausgesprochen. Jedoch nicht verlassen und vertreibt seine Android erfolgte auch hier die Kommunikation sehr Distribution fortan ohne die entsprechenden verst¨ ndnisvoll und hatte keine finanzielle a Applikationen. Dies bedeutet jedoch nicht dass die Sch¨ digung des Entwicklers zur Folge. a Benutzer der Distribution darauf verzichten ¨ Fur die Zukunft scheint sich eine weitere ¨ mussen. Da die offiziellen Firmware Images von Popularisierung der Modifikationen durch HTC (dem Telefon-Hersteller) die Anwendungen Endbenutzer abzuzeichnen. Ob diese Zukunft fur ¨ enthalten, wird die Installation der Distribution ¨ Hardwarehersteller ahnliche Symptome zeigen wird, ¨ quasi als Update uber ein vorher geflashtes wie sie auch schon die Content Anbieter beim ¨ offizielles Image durchgefuhrt. Wechsel des Web 1.0 zum Web 2.0 mitgemacht Somit verbreitet er selbst nur unbedenkliche haben, wird sich zeigen. Komponenten auf seinen Images und erh¨ lt die a ”Google Experience” aus den offiziellen Images. Eindeutig ist die Lage bei Widgets oder anderer zus¨ tzlicher Software, welche auf neueren Ger¨ ten a a erscheint und nicht unter einer freien Lizenz steht. Hier wird durch die Verbreitung als Backport oder als Teil eines flashbaren Images klar das Copyright missachtet. 9
  • 10. Literatur [1] ”Tool to flash the recovery image on Android phones”: http://zenthought.org/content/project/flashrec [2] Vulnerability CVE-2009-2692: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-2692 [3] Vulnerability CVE-2009-3547: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3547 [4] Con Kolias, ”FAQS about BFS”: http://ck.kolivas.org/patches/bfs/bfs-faq.txt ¨ ¨ [5] Con Kolias, Design Ubersicht fur BFS: http://ck.kolivas.org/patches/bfs/sched-BFS.txt [6] Commit des BFS Schedulers in den offiziellen Android Sourcecode: http://android.git.kernel.org/?p=kernel/experimental.git;a=commit;h=c8fa3555b59a200f9a5b1098f17c0333b9529258 [7] SetCPU: Tool zum Anpassen der Taktfrequenz auf dem HTC Dream: http://www.pokedev.com/setcpu/ [8] android obex - provide obex file sharing in Android: http://gitorious.org/android-obex [9] Audio Support im Git Repository des OpenCORE Frameworks: http://android.git.kernel.org/?p=platform/external/opencore.git;a=tree;f=codecs_v2/audio [10] Compcache Module, compressed in-memory swap device for Linux: http://code.google.com/p/compcache/ [11] Erin Yueh,”how to have OBEX function in Android?”: http://i-miss-erin.blogspot.com/2009/10/how-to-have-obex-function-in-android.html [12] Kenny Root, FLAC on Android: http://the-b.org/FLAC_on_Android [13] Bugtracker-Ticket zur Erweiterung des Android Sourcecode um FLAC: http://code.google.com/p/android/issues/detail?id=1461 [14] Steve ”Cyanogen” Kondik: Pimped out recovery image with new features: http://forum.xda-developers.com/showthread.php?p=3915123 [15] Loccy: Better Browser: http://forum.xda-developers.com/showthread.php?t=551119 10