Vom Hänschen zum Hans
Steve Jobs und die seinen haben am iPhone einiges zu Gunsten einer vorbildlichen Ergonomie weggelassen. Nach dem Entfernen der Sperre wird Apples Handschmeichler zu einem mächtigen Unix-Maschinchen.
Steve Jobs und die seinen haben am iPhone einiges zu Gunsten einer vorbildlichen Ergonomie weggelassen. Wer aber die Sperre gegen die Software-Nachrüstung entfernt hat, kann Apples Handschmeichler zu einem mächtigen Unix-Maschinchen veredeln, das sogar noch mehr Komfort bietet als zuvor.
Das iPhone hat von Haus aus drei Sperren: Es lässt sich nicht ohne iTunes aktivieren, es lässt sich nicht mit Software nachrüsten, sondern kann den Funktionsumfang nur über Web-Anwendungen erweitern und es akzeptiert nur SIM-Karten von Mobilnetz-Providern, mit denen Apple Verträge geschlossen hat.
Längst hat eine rührige unter Pseudonymen auftretende Entwicklergemeinde die Funktionsweise der Sperren verstanden und Werkzeuge veröffentlicht, die alle drei Sperren überwinden – und auch wiederherstellen können, sodass ein entsperrtes und wieder gesperrtes iPhone nicht von einem unberührten zu unterscheiden ist.
Inzwischen gibt es zahlreiche Anwendungen von freien Entwicklern und viele davon gründen auf dem BSD-Subsystem, einem Gerüst aus Bibliotheken und Kommandozeilenprogrammen, das die freien Entwickler Apples Darwin-Projekt entnommen und für das iPhone verschlankt und angepasst haben. Damit, und zusammen mit dem SSH-Paket (Secure Shell), einer Software-Suite für verschlüsselte Netzwerkverbindungen, kann man auf dem iPhone eine Basis für zahlreiche Anwendungen legen. Auf diese beiden Elemente gehen wir schwerpunktmäßig ein. Alle Beispiele beziehen sich auf eine enge Beziehung zwischen einem iPhone und einem Mac. Bis auf wenige Ausnahmen funktionieren die Tipps aber auch mit einem Windows-PC.
Das in wenigen Monaten produzierte und stetig wachsende Software-Angebot überrascht, denn Apple unterstützt nur die Entwicklung von Web-Anwendungen. Ein Entwicklersystem muss man sich derzeit selbst zusammenstellen; Libraries sind in den Firmware-Updates zu finden, die zugehörigen Header nebst Dokumentation gibt es zum kostenlosen Download [1]. Für den Prozessor geeignete Compiler gibt es ebenfalls kostenlos (LLVM-Basis). Freilich ist das Material weitgehend undokumentiert, sodass man ab besten fährt, wenn man sich einer Programmiererclique anschließt (etwa iPhone Dev Team oder Nullriver).
Paket-Management
Mittlerweile hat sich aus verschiedenen Entwicklungszweigen ein gemeinsames Paket-Managementsystem mit einem Standard-Installer herauskristallisiert, der das üppige Software-Angebot in Kategorien gliedert und sowohl die Installation und das Update als auch die Deinstallation auf komfortable Art ermöglicht – praktischerweise wird der Installer gleich beim Entsperren des iPhone eingerichtet.
Die über den Installer erhältlichen Programme stammen aus verschiedenen Quellen (Repositories). Alternativ lassen sich Programme auch über den Safari-Browser installieren, dafür lässt sich über den Installer ein spezielles Plug-in nachrüsten. Weil das Angebot identisch ist, kann man aber darauf verzichten.
Es ist wohl dieser unerwartet breite und nachhaltige Zuspruch, der die iPhone-Macher zur Einsicht gebracht hat, dass sie die Nachrüstung nicht mehr stoppen können. Ab Februar 2008 soll es dann doch ein offizielles Software Development Kit von Apple geben und Entwickler hoffen, dass dann die Nachrüstsperre verschwindet. Den emsig geführten Diskussionen in Internet-Foren nach zu urteilen, wollen aber viele iPhone-Nutzer nicht darauf warten. Dem "iPhone Dev Team" zufolge haben allein deren Entsperrungs-Software mittlerweile mehrere hunderttausend Nutzer heruntergeladen.
Firmware-Update verhindern
Dem iPhone-Sprachjargon zu folgen und den teils veralteten und mitunter auch falschen Informationen die richtige Vorgehensweise zu entnehmen, erfordert einige Frustrationstoleranz. Zudem sind mit jedem offiziellen Firmware-Update neue Schwierigkeiten zu meistern und nach aktuellem Stand gehen etwaige Entsperrungen und Software-Installationen verloren. Immerhin lassen sich versehentliche Firmware-Updates mit einem einfachen Kommandozeilenbefehl auf dem Mac verhindern:
chmod 000 ~/Library/iTunes/iPhone/Software/Updates/
Damit entzieht man jeglicher Software und so auch iTunes die Zugriffsrechte für das Verzeichnis auf dem Mac, in das die Firmware-Archive zunächst heruntergeladen werden. Will man Updates wieder zulassen, gibt man dieses Kommando ein:
chmod 755 ~/Library/iTunes/iPhone/Software/Updates/
Die Entsperrung der aktuell erhältlichen Geräte (Firmware-Version 1.1.2) setzt voraus, dass man sie mit der Firmware-Version 1.1.1 bespielt, entsperrt und nach dem Aufspielen eines Hilfsprogramms (OktoPrep) wieder auf 1.1.2 aufrüstet und dann erneut entsperrt.
Dafür gibt es Entsperrungs-Tools wie iNdependence, die auf einem Computer installiert werden und ein über USB angeschlossenes iPhone voraussetzen. Je nach Ausgangslage können aber auch zusätzliche Schritte erforderlich sein – man schießt auf ein bewegliches Ziel. Details zur jeweils ratsamen Vorgehensweise findet man auf einschlägigen Webseiten. Eine deutschsprachige Erläuterung findet sich im Artikel Wie Hänschen dazulernt.
Für viele dürften die Fragen aber mit dem Entfernen der Nachrüstsperre nicht enden. Danach findet sich zwar der Installer auf dem iPhone, der sich überraschend leicht und iPhone-konform bedienen lässt, aber die Vielfalt der Programme zu überblicken und einzuordnen, dürfte besonders Unix-Neulingen schwer fallen, zumal ein Teil der Programme ohne eine prägnante Kurzbeschreibung dargeboten wird.
Schiffsdiesel montieren
Software zum Anhübschen der Oberfläche und Klingelton-Klimbim fehlt natürlich nicht; wer sich den Spaß an der Verwandlung gönnen will, sei an Tools wie Customize oder SummerBoard verwiesen. Auch gibt es für das Gerät bereits eine Reihe von Spielen und auch Konsolenemulatoren.
Das BSD-Subsystem findet man in der Kategorie "System". Die meisten aktuellen Programme, die es benötigen, lassen sich nicht installieren, wenn es fehlt. Wenn eine Software startet und sich gleich danach kommentarlos beendet, handelt es sich wahrscheinlich um eine der ersten Generation, die zwar ebenfalls darauf gründet, aber noch nicht entsprechend umsichtig konzipiert ist. In solchen Fällen sollte man die betreffende Anwendung entfernen und erst nach dem BSD-Subsystem einrichten.
Software-Rundgang
Zu den spannendsten Anwendungen gehören MobileFinder (ein vielseitiger Dateimanager), VNSea (ein VNC-Client zum Fernsteuern anderer Rechner übers Internet), Stumbler (WLAN-Monitor), PDFViewer oder auch TextEdit. Mittels VoiceNotes lassen sich über das eingebaute Mikrofon Sprachnachrichten aufzeichnen, per Simplify Media Mobile kann man iTunes-Musik von Macs und Windows-PCs auf dem iPhone hören und per DropCopy kann man auf sehr einfache Weise beliebige Dateien zwischen Macs und iPhones übertragen; sobald DropCopy auf einer LAN-Station läuft, wird der Dienst per Bonjour im LAN annonciert, sodass man den Zielrechner leicht findet.
Ein "geöffnetes" iPhone lässt sich sehr einfach mit frei erhältlicher Software von Drittanbietern nachrüsten.
DropCopy ist praktisch, weil man so den Speicher des iPhones auch als mobiles Archiv für beliebige Dateien nutzen kann, während sich per iTunes nur Musik, Videos, Adressen und Notizen synchronisieren lassen. Über Zuspruch dürften sich auch der eBay-Monitor "My eBay" sowie "iRadio" erfreuen, ein Programm zum Empfang von Internet-Radio-Streams. Einblicke in die Funktionsweise des Accelerometers verschaffen "Sensors" und "Pedometer". Entwickler dürfte es freuen, dass die Interpreter-Sprachen Pearl, PHP, Ruby, Python und Tcl für das iPhone adaptiert sind (Kategorie "Developer").
Die Grundlage für einen sachkundigen Umgang mit den neuen Möglichkeiten des iPhones erwirbt man am besten, indem man das Terminalprogramm VT100 sowie den MobileFinder installiert (beide im Installer in der Kategorie "System" zu finden) und sich einen Überblick über die Verzeichnisse verschafft. Das kann für die Einrichtung einiger Programme nützlich sein, etwa für den PDF-Viewer, der die anzuzeigenden Dokumente in einem bestimmten Verzeichnis erwartet, oder für VoiceNotes, wenn man die Sprachnotizen auf einem Computer sichern will.
Beim MobilFinder sollte man im Bereich "Settings" die Optionen "Show Hidden Files" und "System File Access" einschalten, um auch Systemordner und -dateien anzeigen zu lassen. Interessant ist der weitgehend selbsterklärende MobileFinder auch, weil sich darüber Anwendungen starten lassen – etwa auch das bereits von Apple installierte, aber verborgene "FieldTest", das Mobilfunk-Spezialisten Auskunft über aktuelle GSM-Parameter gibt.
Über das Terminalprogramm startet man eine Shell (voreingestellt ist zsh, daneben gibts bash und tcsh), und da man mit dem BSD-Subsystem auch eine Hand voll üblicher Unix-Kommandozeilentools erhält, kann man wie gewohnt mittels "ls" und "less" Ordnerinhalte und Textdateien anzeigen lassen oder gar mittels "top" oder "ps" die Liste der geladenen Anwendungen einsehen.
Mittels DropCopy lassen sich beliebige Dateien auf sehr bequeme Weise mit anderen iPhones und auch Macs austauschen.
Zu beachten ist jedoch, dass man mangels kompletter Tastatur keine Metazeichen wie Control oder Alt eingeben kann. Einige wenige lassen sich beim Terminal über ein zusätzliches gestengesteuertes Menü aufrufen. Hält man den Finger länger auf dem Terminalfenster gedrückt, erscheint ein Kreis und darauf verteilt die Kommandos für einige Metazeichen. Zieht man den Finger auf einen der Menüpunkte, kann man gestartete Programme oder Stapelverarbeitungen wie üblich mittels Control-C beenden, den Cursor auf der Kommandozeile und in der Befehls-History bewegen und per Tabulator Kommandos vervollständigen.
Ist man mit der Eingabe vertraut, sollte man die Passwörter für die beiden eingerichteten User "root" und "mobile" (dottie und alpine) mittels passwd ändern, weil sie einem breiten Nutzerkreis bekannt sind. Die neuen Passwörter haben keinen Einfluss auf die Synchronisierung mit iTunes oder auf das Firmware-Update-Verfahren; man kann sie also unbesorgt ändern.
Vom Schönchen ...
Mehrere sehr interessante Anwendungen setzen SSH voraus, die Software-Suite fĂĽr verschlĂĽsselte Netzwerkverbindungen. Administratoren setzen SSH gern fĂĽr die Fernwartung von Servern per Kommandozeile ein; dafĂĽr genĂĽgt eine Internet-Verbindung ĂĽber EDGE oder GPRS. Wer lediglich diese Anwendung im Sinn hat, kann SSH-Verbindungen auch mittelbar ĂĽber den Safari-Browser aufbauen lassen. Das geht auch auf nichtentsperrten iPhones, weil dabei ein im Internet stationierter Server den ssh-Client ausfĂĽhrt, mit dem man auf den eigentlichen Ziel-Server zugreift; nur die Steuerung des ssh-Clients erfolgt per Safari auf dem iPhone [2].
Aufgabenlisten lassen sich mit dem iPhone von Haus aus nicht verwalten, ToDoList rĂĽstet diese Funktion nach.
Ein weit größeres Anwendungsfeld eröffnet sich aber, wenn man das komplette Paket inklusive SSH-Server einrichtet. Dann kann man von anderen Rechnern per Kommandozeile auf das iPhone selbst zugreifen oder auch via sftp, einem der SSH-Programme, Dateien übertragen. Der Clou ist aber, dass sich das Dateisystem des iPhones über eine weitere kostenlose Software auf dem Desktop eines Mac- oder Linux-Rechners einbinden lässt, um ganz bequem per Maus darauf zuzugreifen. Windows-Anwender können immerhin gängige SSH-Explorer nutzen, um auf iPhone-Dateien direkt zuzugreifen.
Wer SSH nicht einrichten will, sollte die iPhone-Anpassung des Apple Filesharing ausprobieren (AFPd, Kategorie "Network"). AFPd bietet den gleichen Komfort, ist aber in der aktuellen Version 0.2 noch instabil, sodass wir es nur eingeschränkt empfehlen können. Zudem eröffnet nur SSH einen Weg, das Modem des iPhone per Laptop zu nutzen.
Linux, Mac OS X und andere Unix-basierte Betriebssysteme bringen SSH bereits mit, Windows kann man mit Putty (Client) und freeSSHd nachrüsten (Server). SSH für das iPhone gibt es in mehreren Versionen. Wir haben mit OpenSSH 4.6p1-1 die besten Erfahrungen gemacht. OpenSSH ist eigentlich direkt nach dem Einrichten über den Installer betriebsbereit – allerdings erfolgt die Authentifizierung vorerst nur auf Passwort-Basis.
Weil sich auf dem iPhone mangels adduser-Kommando bislang keine zusätzlichen, also auch keine unprivilegierten Benutzer für den SSH-Zugang einrichten lassen, kann man den Benutzer Root nicht aus der Schusslinie nehmen, indem man die Root-Anmeldung sperrt. Man kann jedoch annehmen, dass sich über kurz oder lang jedes iPhone in eine fremde WLAN-Zelle einbuchen wird, wo es SSH-Einbruchsversuchen ausgeliefert ist. Deshalb sollte man solchen Zudringlichkeiten vorbeugen, indem man auf die Authentifizierung über selbstgenerierte Schlüssel umstellt (Public Key Authentifizierung).
Man startet dazu auf der Kommandozeile das Programm ssh-keygen, das dialoggeführt zwei Schlüssel erzeugt. Es empfiehlt sich, die Vorgaben für die Dateinamen und den Pfad zu übernehmen und als Passphrase eine sichere Kombination aus mehr als acht Buchstaben und Ziffern einzugeben. Mit der Passphrase schützt man den privaten Schlüssel (private key) vor der Benutzung durch Unbefugte. Zusätzlich legt man fest, dass nur der Besitzer der Datei darauf zugreifen darf, und das auch nur lesend:
chmod 0400 .ssh/id_rsa
Lässt man den letzten Schritt aus, weigert sich zum Beispiel das Mac OS X 10.5, den Schlüssel id_rsa zu benutzen. Die Public-Key-Authentifzierung scheitert dann, aber eine Fehlermeldung bleibt auf manchen Systemen aus, sodass die Problemlösung nicht immer auf der Hand liegt.
Den öffentlichen Schlüssel id_rsa.pub kopiert man in den Ordner /var/root/.ssh/ auf dem iPhone. Am einfachsten geht das bei gegebener WLAN-Verbindung per sftp, der Dateiübertragungsvariante der SSH-Suite. Dafür meldet man das iPhone an einen Access-Point oder WLAN-Router an, an dem auch der Computer angeschlossen ist. Alternativ kann man es auch direkt an einen WLAN-fähigen Laptop ankoppeln (Ad-hoc-Modus).
... zum Kraftprotz
Zu beachten ist aber, dass das iPhone und der Laptop Adressen aus dem gleichen Bereich erhalten müssen; falls ein DHCP-Server fehlt, der das normalerweise gewährleistet, vergibt man die Adressen manuell. Beim iPhone geht das, indem man im Bereich Einstellungen, Wi-Fi auf den blau unterlegten weißen Pfeil tippt, der der aktuellen WLAN-Zelle zugeordnet ist. Dort öffnet man den Bereich "Statisch" und trägt zum Beispiel 192.168.1.10 sowie 255.255.255.0 als Netzmaske ein – wenn der Laptop ebenfalls eine Adresse aus dem Bereich 192.168.1.x hat.
Ob sich das iPhone erfolgreich mit dem Laptop oder einem Access-Point verbunden hat, kann man mittels ping gefolgt von der IP-Adresse des iPhone prüfen. Wenn das iPhone antwortet, öffnet man auf dem Computer eine Shell, wechselt in das eigene .ssh-Verzeichnis und startet die sftp-Verbindung zum iPhone. Die erste Verbindungsaufforderung beantwortet es erst nach rund 30 bis 35 Sekunden, weil es zunächst einige Schlüssel generieren muss. Nachfolgende Verbindungsversuche beantwortet es umgehend. Dabei läuft noch die Passwort-Authentifizierung ab, also braucht man das neue, zuvor definierte Root-Passwort:
sftp root@<iPhone-IP-Adresse>
mkdir .ssh
put .ssh/id_rsa.pub .ssh/
Im obigen Beispiel legt man zunächst das erforderliche Verzeichnis auf dem iPhone an, wechselt dort hin und legt dann den public key ebenda ab. Schließlich beendet man die sftp-Verbindung mit dem Befehl exit und öffnet eine ssh-Verbindung:
ssh root@<iPhone-IP-Adresse>
cd .ssh
Nun kopiert man den Inhalt des SchlĂĽssels in die Datei authorized_keys
cat id_rsa.pub >> authorized_keys
und schĂĽtzt die Verzeichnisse gegen unbefugten Zugriff:
chmod 755 /var/root
chmod 700 /var/root/.ssh
chmod 644 /var/root/.ssh/authorized_keys
AnschlieĂźend editiert man die Einstellungen fĂĽr den SSH-Service auf dem iPhone:
pico /etc/sshd_config
Im Abschnitt "Authentication" sollte man zunächst diese Einträge erzeugen, damit der SSH-Service die Schlüsselauthentifizierung nutzt:
RSAAuthentication yes
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
... und schlieĂźlich schaltet man weiter unten die Passwort-Authentifizierung ab:
PasswordAuthentication no
Bei dieser Gelegenheit empfiehlt es sich auch, den Port, auf dem der SSH-Server horcht, zu ändern (von Haus aus Port 22), um die Wahrscheinlichkeit für Hacker-Angriffe zu senken. Die Änderungen speichert man über die Tastaturbefehle Control-X und "yes" ab.
Sie werden jedoch erst übernommen, wenn der SSH-Service neu startet – er startet aber nur dann neu, wenn keine SSH-Verbindung mehr offen ist, sodass man nicht gefahrlos prüfen kann, ob die Einstellungen fehlerfrei sind. Falls nämlich die PubkeyAuthentication scheitert, hat man sich ausgesperrt. In diesem Fall installiert man gegebenenfalls TextEdit, öffnet damit /etc/sshd_config lokal auf dem iPhone und schaltet die Passwort-Authentifizierung vorübergehend wieder ein, bis man den Fehler ausgemerzt hat.
Einen Neustart des SSH-Servers kann man wahlweise ĂĽber den Neustart des iPhone erzwingen oder, eleganter, indem man den Dienst aus- und wieder einschaltet, beispielsweise mit dem Programm "Services", das der Installer in der Kategorie "Utilities" fĂĽhrt. Man kann SSH-Verbindungen anschlieĂźend ĂĽber dieselben Kommandos wie bisher starten, das iPhone fragt jedoch kein Passwort mehr ab. Vielmehr erwartet nun der lokale Rechner die fĂĽr den private key festgelegte Passphrase. Gibt man sie ein, wird die Verbindung wie ĂĽblich aufgebaut.
Automatische Sicherheit
Um eine immer wiederkehrende Eingabe der Passphrase zu vermeiden, kann man sie dem ssh-Agent übergeben (ssh-add ~/.ssh/id_rsa) und so die Verbindung weit schneller aufbauen, ohne jedoch die Sicherheit zu beeinträchtigen wie bei einem durchaus möglichen SSH-Zugang mit Passwort-Authentifizierung und leerem Passwort. Auf dem Mac kann man sich die manuelle Übertragung der Passphrase in den ssh-Agent sparen; ab Mac O X 10.5 liest das Betriebssystem die Passphrase mit und kann sie automatisch dem betriebssystemweiten Schlüsselbund hinzufügen – wenn man der entsprechenden Nachfrage zustimmt.
Jüngere Versionen des SSH-Service laufen nicht ständig, mindern also nicht die Laufzeit des iPhone, sondern werden wie auf dem Mac nur bei Bedarf gestartet (wenn der Systemdienst inetd eine Anforderung empfängt). Per sftp und ssh kann man nun bequem solche Software manuell installieren, die nicht über den Packet-Manager erhältlich ist. Man kopiert sie einfach in den Ordner /Applications
sftp root@<iPhone-IP-Adresse>
put <Anwendung.app> /Applications
und startet anschließend Springboard neu, damit es das Programm seiner Datenbank hinzufügt und das Icon einliest. Am einfachsten geht das über einen Neustart des iPhones. Mit Tools wie Customize lässt sich das SpringBoard bei laufendem Betrieb neu laden.
Von der ssh-Kommandozeile aus macht es auch mehr SpaĂź, Unix-Werkzeuge wie find, grep, wget, curl und Co. zu benutzen. Auch kann man daheim am Computer in Ruhe Fehlern auf den Grund gehen, wenn etwa VPN-Verbindungen scheitern (/var/log/ppp/ppp.log), DNS-Zugriffe nicht klappen (/var/run/resolv.conf) oder Anwendungen abstĂĽrzen (/var/logs/CrashReporter).
Speed-Test
Da das iPhone Kurznachrichten als Datenbank im Format SQLite 3 speichert, lassen sie sich per Hand sichern oder auch auslesen (/var/root/Library/SMS/sms.db). Wer damit experimentieren will, kann die Tools sqlite3 und sqlutils nutzen; man muss lediglich die PATH-Variable in der Datei /etc/csh.cshrc um das Element /var/root/bin erweitern; fortan kann man die Programme ohne Pfadangabe aufrufen.
Mangels Modem-Anbindung zu Laptops war es zunächst nicht möglich, die Übertragungsgeschwindigkeit des iPhone mit herkömmlichen Verfahren zu messen. Wir haben dies nun über einfache sftp-Verbindungen nachgeholt und dabei sowohl über Mobilfunk- als auch über WLAN-Verbindungen hinreichend gute Durchsatzraten ermittelt.
In Stichprobenmessungen lieferte es im T-Mobil-Netz schwankende Durchsatzraten. Im Mittel erreichte es 22 KByte/s in Empfangsrichtung und 12 kByte/s in Senderichtung. Über WLAN waren auf einem und fünf Metern Entfernung in beiden Richtungen konstant 760 KByte/s zu verzeichnen. Auf zehn Metern Entfernung mit mehreren Bürowänden zwischen Basisstation und iPhone schwankte der Durchsatz. Dabei waren im Mittel 570 KByte/s und 230 KByte/s (empfangen, senden) sowie Spitzenwerte von 760 KByte/s sowie 380 KByte/s zu verzeichnen.
Mobiles Dateisystem
Mittels MacFUSE und sshfs lässt sich das Dateisystem eines geöffneten iPhone auf dem Mac mounten.
Mittels iTunes werden zwar wichtige Daten bei der Synchronisierung auf dem Computer mitgespeichert, aber man kann nicht einzelne Dateien oder gar Versionen zurückspielen. Ein erstes rudimentäres Programm zur Dateiübertragung ist "SendPics", das beliebige Fotos in Originalgröße per E-Mail versenden kann; das iPhone-E-Mail-Programm versendet von sich aus nämlich nur Verkleinerungen.
Inzwischen bietet die BSD-Spielwiese des iPhones mächtigere Werkzeuge (dd, rsync) und mit dem MobileFinder lassen sich nicht nur beliebige Dateien per Mail verschicken, sondern über einen spezifischen Ordner unabhängig von iTunes synchronisieren. Längst geht es aber noch bequemer, man muss nicht das gegenüber einem PC-Monitor doch beträchtlich kleinere iPhone-Display nutzen, sondern kann das gesamte Filesystem auf dem Computer einbinden (mounten) und wie eine externe Festplatte nutzen.
Voraussetzung dafür sind der SSH-Service auf dem iPhone sowie FUSE auf der Computer-Seite (Filesystem im Userspace). FUSE ermöglicht auf diversen Unix-basierten Rechnern Dateisystemtreiber, die sich wie übliche Anwendungen starten lassen, sodass auch nicht privilegierte Benutzer eigene Dateisysteme einbinden können. Eines davon ist der sshfs-Dateisystemtreiber, der per Maus navigierbare Dateisysteme über SSH-Verbindungen bereitstellt. Auf einem Mac richtet man dafür zunächst MacFuse ein und anschließend sshfs (siehe www.heise.de/software/download/macfuse/50241). Zu beachten ist aber, das die aktuelle Version SSHFS 1.0.0 nur über den Port 22 kommuniziert; man muss dafür also den SSH-Server des iPhone auf Port 22 setzen..
Die sshfs-Einbindung klappt auch dann, wenn man die Public-Key-Authentifizierung verwendet und den privaten SchlĂĽssel per Passphrase schĂĽtzt; man muss dann die Passphrase im sshfs-Passwortdialog eingeben. Das ist freilich jedes Mal erforderlich, wenn man das iPhone einbinden will, denn MacFUSE und sshfs machen derzeit keinen Gebrauch vom SchlĂĽsselbund.
Um das iPhone-Dateisystem zu mounten, braucht sshfs neben den beiden üblichen Parametern (IP-Adresse, Username) auch noch eine Pfadangabe (Remote Directory). An dieser Stelle trägt man "/" ein, weil sonst nicht das gesamte Dateisystem geladen wird, sondern nur der Unterordner, in dem sich Root anmeldet. Auf dem Desktop erscheint nun ein neues Festplattensymbol, das als Namen die IP-Adresse des iPhone trägt.
Man kann nun beliebig Dateien kopieren und auch löschen – also Vorsicht bei Systemdateien, sonst hilft nur noch eine Generalrestaurierung über iTunes. Man kann zwar den gesamten Speicherinhalt per Drag & Drop auf die Festplatte des Macs kopieren, aber wenn essentielle Daten fehlen, lässt sich das iPhone nicht per sshfs mounten, und daher scheitert auch das Restore auf diesem Wege. Ein Backup mittels Time Machine, seit Leopard Apples eigene Backup-Software, ist nach aktuellem Stand nicht möglich, das sshfs-Volume wird gar nicht zur Auswahl angeboten.
Den ungehinderten Zugriff auf die iPhone-Ordner kann man zum Beispiel fürs Archivieren von Daten nutzen, die man unterwegs braucht – also etwa Video-Clips ohne iTunes von Rechner zu Rechner übertragen. Auch kann man so mit der integrierten Kamera aufgenommene Bilder herauskopieren, die iTunes zu synchronisieren verweigert, wenn auf dem Mac iPhoto fehlt. Man findet sie nicht wie man annehmen könnte im Pictures-Ordner, sondern in /var/root/Media/DCIM/. Die Dateien mit der Endung .jpg sind die Fotos, die mit der Endung .thm sind Verkleinerungen (Thumbnails).
Das iPhone als Modem
Von Haus aus lässt sich das im iPhone eingebaute Modem nicht per Laptop nutzen; dafür stellt Apple keine Anbindung bereit. Viele aktuelle Handys bieten eine solche Funktion über Bluetooth, ältere über Kabel oder IrDA. Dass sie beim iPhone fehlt, ist verständlich, weil die speziell für dieses Gerät konzipierten Internet-Pauschaltarife eben nur mit dem iPhone genutzt werden sollen.
Das iPhone als Web-Zuspieler: Mit ein wenig Know-how lässt sich die EDGE-Verbindung vom Laptop aus nutzen.
Nutzer, die ein SIM-Lock-freies iPhone erstanden haben, verwenden indes auch keinen solchen Tarif, dürften also das iPhone-Modem ohne schlechtes Gewissen per Laptop nutzen. Per Bluetooth geht das derzeit nicht, weil dem Gerät das Profil für Dial-Up Networking fehlt. Allerdings lässt es sich durchaus via WLAN von einem Notebook ansprechen.
Im Internet kursieren Anleitungen, die einen Web-Proxy auf dem iPhone voraussetzen, aber per SSH lässt sich diese Funktion einfacher und schneller einrichten. Dafür koppelt man das iPhone und den Laptop wie beschrieben per WLAN im Ad-hoc-Modus, trägt aber keine IP-Adresse ein. Zwar suchen sie dann beide einen DHCP-Server, um sich von diesem eine IP-Adresse zuweisen zu lassen, aber weil keiner da ist, wählen sie schließlich jeder selbst eine Adresse aus dem Adressraum 169.x.x.x (APIPA-Verfahren). Ist der Vorgang abgeschlossen, koppelt man den Laptop per SSH mit dem iPhone:
ssh -ND 8080 root@<iPhone-IP-Adresse>
Mit dem Parameter -ND fordert man vom SSH-Server im iPhone eine Socks-Proxy-Verbindung an. Programme, die entsprechend ausgelegt sind, etwa Browser wie Safari oder Firefox, können nun IP-Pakete direkt, also ohne Vermittlung durch einen Router oder Gateway, zum Proxy senden, wenn man ihnen den Proxy bekannt gemacht hat. Der kümmert sich dann darum, dass die Pakete ins Internet gelangen und ebenso leitet er Antwortpakete zum Laptop zurück. Für Safari auf Macs trägt man die Option in Systemeinstellungen, Netzwerk, AirPort, weitere Optionen, Proxies ein. Dort klickt man den Eintrag Socks-Proxy an und tippt rechts im Feld Socks-Proxy-Server "localhost" und daneben den Port 8080 ein – fertig.
Beim iPhone klappt das aufgrund einer undokumentierten Funktion. Normalerweise müsste man nämlich noch veranlassen, dass das iPhone-Modem eine Mobilfunk-Internetverbindung aufbaut. Aber man braucht dafür keinen Finger zu rühren – wenn es merkt, dass es die eingehenden Pakete nicht über WLAN zum Ziel durchstellen kann, öffnet es selbständig eine Verbindung über EDGE oder GPRS und schickt die Pakete darüber auf den Weg. Zu beachten ist freilich, dass das Web auf diese Weise nicht zuverlässig erreichbar ist – Safari meldete gelegentlich "Es besteht keine Verbindung zum Internet", obwohl das iPhone durchaus eingebucht war. Auch wiederholtes Laden derselben Seite half nicht, direkt danach aufgerufene andere Seiten ließen sich jedoch durchaus laden. Bauten wir die WLAN-Verbindung neu auf, wurden die zuvor nicht erreichbaren Webseiten doch geladen, andere jedoch ohne erkennbaren Grund nicht mehr.
Auch brach gelegentlich die SSH-Verbindung ab. In solchen Fällen genügte es, den WLAN-Funk auf dem iPhone aus- und wieder einzuschalten, das Gerät erneut mit dem Laptop zu verbinden und die SSH-Verbindung neu aufzubauen, um wieder per Laptop surfen zu können.
Fazit
Zwei testhalber entsperrte und so mit diversen Programmen aufgerüstete iPhones verhielten sich auch über mehrere Wochen in jeder Beziehung stabil, Software- oder gar Betriebssystemabstürze waren nicht zu verzeichnen. Auch offenbarten Netzwerk-Scans mit nmap keine offenen Ports, außer jenen, die für eingerichtete Dienste wie SSH erforderlich sind, sodass nach aktuellem Kenntnissstand nichts gegen den Einsatz entsperrter iPhones in öffentlichen WLANs spricht. Freilich hat das iPhone keine Firewall; erste Programmierversuche in dieser Richtung haben die freien Entwickler eingestellt.
Die Entwicklergemeinde hat mit dem Software-Angebot sowohl ihr eigenes Potenzial als auch das des iPhone deutlich unterstrichen. Über den Installer lassen sich mittlerweile noch weitere Quellen ansteuern (Repositories). Einige Empfehlungen finden sich unter blog.psmxy.org/more-repositories. Wir möchten jedenfalls nur ungern auf die Zutaten verzichten und sind gespannt auf weitere Anwendungen – unter anderem kann man einen Voice-over-IP-Client auf SIP-Basis erwarten. Bleibt zu hoffen, dass Apple auf diesem Fundament aufbaut und vielleicht auch das komfortable Paket-Management nutzt – oder wenigstens nicht untergräbt. (dz)
Literatur
| [1] Header nebst Dokumentation fĂĽr iPhone-Firmware 1.1.2, ericasadun.com/iPhoneDocs112/index.html |
| [2] WebShell, SSH-Steuerung per Safari, www-personal.umich.edu/~mressl/webshell |
| [3] iPhone Dev Team, iphone.fiveforty.net/ |
| [4] Unabhängiges Apple-Forum, www.hackint0sh.org |
| [5] Online-Software zur iPhone-Entsperrung, jailbreakme.com |
| [6] Software zur iPhone-Entsperrung und zum Paket-Management, iphone.nullriver.com |