stonefred
Aktives Mitglied
Thread Starter
- Dabei seit
- 20.11.2007
- Beiträge
- 10.786
- Reaktionspunkte
- 8.562
Diese Anleitung setzt voraus, dass man Zugriff auf ein Jailbreak iPhone 3.1.3 hat. Das Ergebnis funktioniert später auf allen iPhones auch ohne Jailbreak und ist sogar abwärtskompatibel!
Hintergrund: Apple hatte mit der Firmware 3.0.1 die Möglichkeit geschaffen, dass man per Bluetooth oder USB-Kabel einen Laptop übers iPhone ins Internet bringt. Bei normalen Handys nennt man das Modemfunktion, beim iPhone wurde diese Funktion "Tethering" getauft und entschieden, dass dieser Dienst kostenpflichtig werden sollte. Zumindest bei einigen offiziellen Providern, welche das iPhone exklusiv vertreiben dürfen, wie z.B. AT&T oder T-Mobile.
Funktionsweise: im iPhone gibt es im Pfad /System/Library/Carrier Bundles für jeden offiziellen iPhoneprovider sogenannte Carrierbundles, z.B. TMobile_Germany.bundle. Nicht erkannte SIM-Karten werden mit Unknown.bundle bedient. In diesen Bundles finden sich 4 oder 5 Dateien, nämlich die zwei Carrierlogos als Apple-PNG-Dateien für hellen und dunklen Hintergrund, früher die Version.plist und die wichtigste Konfigurationsdatei carrier.plist. Diese Plistdatei ist nichts anderes als eine XML-Datei, die man mit dem Texteditor bearbeiten könnte. Seit iPhone OS 1.1.4 werden viele Plistdateien aber zusätzlich im Binärformat abgespeichert, d.h. man kann sie nicht im Texteditor öffnen, sondern muss sie erst vorher ins Textformat umwandeln.
In der carrier.plist Datei gibt es drei Internet-APNs, einen für iPhoneinternet, einen für MMS und einen für Tethering (MMS und Tethering nur für iPhone 3G/3GS).
Die offiziellen Provider leiten den Tethering APN auf einen anderen APN um, als den vom iPhone für Internet genutzten, dort können sie vertraglich freigeschaltete SIM-Karten das Internet zur Verfügung stellen oder dieses blockieren (dann erscheint die Popupfehlermeldung: um "Tethering nutzen zu können wenden Sie sich bitte an T-Mobile"). Seit iPhone OS 3.1 sind die APN-Daten von Apple mit einem Privatekey signiert - diesen kann nur Apple erzeugen. Ändert man den einen der signierten APNs, dann verschwindet die Tetheringoption umgehend bzw. beim nächsten Versuch, tethering zu verwenden.
Seit der Firmware iPhone OS 3.1.3 ist es mit dem Unknown.bundle möglich, den Tethering-APN einzugeben und damit zu tethern. Wenn man die Carrier.plist des Unknown.bundle genau ansieht, dann fällt auf, dass dort die APNs nicht signiert sind, aber es einen neuen XML-Key gibt: "MandatoryVerify" mit allen offiziellen SIM-Kartennummern (MCC/MNC), welche nicht im Unknown.bundle benutzt werden dürfen und einer Signatur, die diese Liste gegen Verändung schützt!
Und jetzt der Trick:
Man nehme ein 3.x.x IPCC-File und füge diesen XML-Zweig MandatoryVerify aus Unknown.bundle vom iPhone OS 3.1.3 inklusive Signature und allen SIM-Nummern hinzu, mache aus den zwei APNs drei und gebe ihnen von oben nach unten eine Type-Mask von 1, 4, und 48 mit. Die MMS-Settings haben sich zur 3.0.1-Version auch verändert: sie sind nicht mehr im Hauptzweig, sondern haben einen eigenen XML-Zweig bekommen: MMS.
Technisch funktioniert das so:
Ein unter 3.0.1 funktionierendes IPCC herunterladen (google hilft!). Die Dateiendung .IPCC in .ZIP umbenennen und entpacken, man erhält einen Ordner Payload. In diesem Ordner befindet sich eine Datei xyz.bundle. Diese Datei ist eigentlich ein Ordner - unter Windows zumindest. Unter Mac OSX bekommt man das auf, indem man mit der rechten Maus draufklickt und Paketinhalt anzeigen auswählt. Schon ist man bei der carrier.plist.
Jetzt braucht man nur noch einen Texteditor und die carrier.plist vom Unknown.bundle aus einem Jailbroken 3.1.3 iPhone mit dem MandatoryVerify- und MMS-Zweig. Diese befindet sich auf einem iPhone im Ordner /System/Library/Carrier Bundles/Unknown.bundle. Am besten lässt sich die im Binärformat vorhandene Datei mit dem plisteditor aus Mac OSX bearbeiten, der bei XCode dabei ist (Nachinstallieren von der OSX Installations-CD, welche jedem Mac beiliegt). Auf dem iPhone kann man diese Datei auch ins Textformat umwandeln, wenn man sich per Cydia die Erikautils und OpenSSH installiert und sich anschließend per SSH einloggt und in der Shell folgendes eingibt:
cd /System/Library/Carrier \Bundles/Unknown.bundle/
plutil -convert xml1 carrier.plist
die Dateien alle auf den PC/Mac herunterladen und im Ordner Payload speichern. Anschließend mit ZIP so packen, dass wieder ein funktionsfähiges IPCC entsteht. Die XML-Dateien müssen nicht wieder ins Binärformat umgewandelt werden, funktionieren auch im Textformat.
zip -y -r meincarrier.ippc Payload/
Ich hoffe, damit den Bastlern unter uns den entscheidenden Tipp gegeben zu haben, da ich kein IPCC mehr zur Verfügung stellen werde. Auch nicht per PM. Im Grunde kann man so auch ein O2-3.1.3.IPCC auf Vodafone anpassen!
Hintergrund: Apple hatte mit der Firmware 3.0.1 die Möglichkeit geschaffen, dass man per Bluetooth oder USB-Kabel einen Laptop übers iPhone ins Internet bringt. Bei normalen Handys nennt man das Modemfunktion, beim iPhone wurde diese Funktion "Tethering" getauft und entschieden, dass dieser Dienst kostenpflichtig werden sollte. Zumindest bei einigen offiziellen Providern, welche das iPhone exklusiv vertreiben dürfen, wie z.B. AT&T oder T-Mobile.
Funktionsweise: im iPhone gibt es im Pfad /System/Library/Carrier Bundles für jeden offiziellen iPhoneprovider sogenannte Carrierbundles, z.B. TMobile_Germany.bundle. Nicht erkannte SIM-Karten werden mit Unknown.bundle bedient. In diesen Bundles finden sich 4 oder 5 Dateien, nämlich die zwei Carrierlogos als Apple-PNG-Dateien für hellen und dunklen Hintergrund, früher die Version.plist und die wichtigste Konfigurationsdatei carrier.plist. Diese Plistdatei ist nichts anderes als eine XML-Datei, die man mit dem Texteditor bearbeiten könnte. Seit iPhone OS 1.1.4 werden viele Plistdateien aber zusätzlich im Binärformat abgespeichert, d.h. man kann sie nicht im Texteditor öffnen, sondern muss sie erst vorher ins Textformat umwandeln.
In der carrier.plist Datei gibt es drei Internet-APNs, einen für iPhoneinternet, einen für MMS und einen für Tethering (MMS und Tethering nur für iPhone 3G/3GS).
Die offiziellen Provider leiten den Tethering APN auf einen anderen APN um, als den vom iPhone für Internet genutzten, dort können sie vertraglich freigeschaltete SIM-Karten das Internet zur Verfügung stellen oder dieses blockieren (dann erscheint die Popupfehlermeldung: um "Tethering nutzen zu können wenden Sie sich bitte an T-Mobile"). Seit iPhone OS 3.1 sind die APN-Daten von Apple mit einem Privatekey signiert - diesen kann nur Apple erzeugen. Ändert man den einen der signierten APNs, dann verschwindet die Tetheringoption umgehend bzw. beim nächsten Versuch, tethering zu verwenden.
Seit der Firmware iPhone OS 3.1.3 ist es mit dem Unknown.bundle möglich, den Tethering-APN einzugeben und damit zu tethern. Wenn man die Carrier.plist des Unknown.bundle genau ansieht, dann fällt auf, dass dort die APNs nicht signiert sind, aber es einen neuen XML-Key gibt: "MandatoryVerify" mit allen offiziellen SIM-Kartennummern (MCC/MNC), welche nicht im Unknown.bundle benutzt werden dürfen und einer Signatur, die diese Liste gegen Verändung schützt!
Und jetzt der Trick:
Man nehme ein 3.x.x IPCC-File und füge diesen XML-Zweig MandatoryVerify aus Unknown.bundle vom iPhone OS 3.1.3 inklusive Signature und allen SIM-Nummern hinzu, mache aus den zwei APNs drei und gebe ihnen von oben nach unten eine Type-Mask von 1, 4, und 48 mit. Die MMS-Settings haben sich zur 3.0.1-Version auch verändert: sie sind nicht mehr im Hauptzweig, sondern haben einen eigenen XML-Zweig bekommen: MMS.
Technisch funktioniert das so:
Ein unter 3.0.1 funktionierendes IPCC herunterladen (google hilft!). Die Dateiendung .IPCC in .ZIP umbenennen und entpacken, man erhält einen Ordner Payload. In diesem Ordner befindet sich eine Datei xyz.bundle. Diese Datei ist eigentlich ein Ordner - unter Windows zumindest. Unter Mac OSX bekommt man das auf, indem man mit der rechten Maus draufklickt und Paketinhalt anzeigen auswählt. Schon ist man bei der carrier.plist.
Jetzt braucht man nur noch einen Texteditor und die carrier.plist vom Unknown.bundle aus einem Jailbroken 3.1.3 iPhone mit dem MandatoryVerify- und MMS-Zweig. Diese befindet sich auf einem iPhone im Ordner /System/Library/Carrier Bundles/Unknown.bundle. Am besten lässt sich die im Binärformat vorhandene Datei mit dem plisteditor aus Mac OSX bearbeiten, der bei XCode dabei ist (Nachinstallieren von der OSX Installations-CD, welche jedem Mac beiliegt). Auf dem iPhone kann man diese Datei auch ins Textformat umwandeln, wenn man sich per Cydia die Erikautils und OpenSSH installiert und sich anschließend per SSH einloggt und in der Shell folgendes eingibt:
cd /System/Library/Carrier \Bundles/Unknown.bundle/
plutil -convert xml1 carrier.plist
die Dateien alle auf den PC/Mac herunterladen und im Ordner Payload speichern. Anschließend mit ZIP so packen, dass wieder ein funktionsfähiges IPCC entsteht. Die XML-Dateien müssen nicht wieder ins Binärformat umgewandelt werden, funktionieren auch im Textformat.
zip -y -r meincarrier.ippc Payload/
Ich hoffe, damit den Bastlern unter uns den entscheidenden Tipp gegeben zu haben, da ich kein IPCC mehr zur Verfügung stellen werde. Auch nicht per PM. Im Grunde kann man so auch ein O2-3.1.3.IPCC auf Vodafone anpassen!