Anleitung: eigenes 3.1.3 IPCC-Paket erstellen oder anpassen

stonefred

Aktives Mitglied
Thread Starter
Dabei seit
20.11.2007
Beiträge
10.764
Reaktionspunkte
8.543
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!
 
  • Gefällt mir
Reaktionen: Till00, pushstan, don_michele1 und 7 andere
Um herauszufinden, ob seine SIM auf der Blacklist in MandatoryVerify drinsteht einfach SIM in ein simlockfreies iPhone einlegen, dann:

auf der iPhone Telefontastatur *3001#12345#* eingeben und dann die grüne Wählentaste tippen. Anschließend geht das "field test" Menü auf. Dort wählt: MMF-Info und dann Serving PLMN. Dort findet Ihr den Mobile Country Code (MCC) und Mobile Network Code (MNC). MCC/MNC setzt sich so zusammen: erst die Ziffern des MCC eingeben und danach zweistellig den MNC (wenn er einstellig ist, dann eine 0 davor!). z.B. T-Mobile = MCC 262 und MNC = 1. Zusammengesetzt ist das 26201. Weil das in der MandatoryVerify-Liste steht, ist hier eine Veränderung nicht möglich oder Tethering wird deaktiviert!

diese MCC/MNC-Nummer muss auch in der veränderten carrier.plist drinstehen, sonst wird das Bundle nicht verwendet:

für ALICE z.B.
Code:
	<key>SupportedSIMs</key>
	<array>
		<string>[B]26207[/B]</string>
	</array>

die angepassten PNG-Logos für Alice bekommt man so angezeigt:
Code:
	<key>StatusBarImages</key>
	<array>
		<dict>
			<key>AllowPrefixMatching</key>
			<true/>
			<key>[B]CarrierName[/B]</key>
			<string>[B]Alice[/B]</string>
			<key>DefaultImage</key>
			<string>Default_CARRIER_Alice.png</string>
			<key>FullScreenOpaqueImage</key>
			<string>FSO_CARRIER_Alice.png</string>
		</dict>
	</array>


um die "Rufweiterleitung aktiviert" wegzubekommen:
Code:
	<key>ShowCallForwarded</key>
	<false/>
	<key>ShowCallForwarding</key>
	<false/>
 
WOW. Erstmal Danke für dein Posting und die Erklärungen. Kann deinen Ausführungen zwar inhaltlich halbwegs folgen, bin aber nicht versiert genug, da irgendwas zu machen. Hoffe, dass sich kompetentere Leute als ich finden, die evtl. Modifikationen der Datei für die verschiednen Anbieter bereitstellen.

Wenn du persönlich keine IPCC-files mehr bereitstellen möchtest, wende dich doch mal an iPhone-notes.de. Der Herr Sendowski ist bestimmt bereit, da auszuhelfen. Die haben doch schon die nötige Infrastruktur.

Ich persönlich drehe gerade durch, weil ich seit Stunden versuche Tethering mit Blau.de unter 3.1.3 auf einem 3G unlocked aus Italy zum laufen zu bringen.

Erst war gar kein Tethering-Slider da. Nach einer Wiederherstellung auf 3.1.3 (vorher backup gemacht) war kurzzeitig der Slider da um dann wieder zu verschwinden.

Was ein Durcheinander!
 
Hallo Webble, ich bin mir sicher, dass Sendowski in der Lage ist, diese Dateien selbst zu erstellen. Ich möchte wie gesagt mit einer Verbreitung von markenrechtlich geschützten Bildern oder Code nicht in Verbindung gebracht werden. Soviel ich mitbekommen habe sind die Mods da meiner Meinung.

Eine Erklärung, wie das technisch funktioniert, fällt wohl weder unter Marken- noch unter Urheberrecht, da ansonsten auch Programmierhandbücher verboten werden müssten :)
 
Hallo. Ich habe auch deine Posts bei Simyo verfolgt. Leider reichen die Infos dort nicht aus, um mir ein eigenes ipcc zu basteln können. Ich habe noch eine ältere eigene Simyo.ipcc, unsigniert. Sie erlaubt mir immerhin das alte Logo zu sehen, MMS und ein Leben ohne CallForwarding Messages. Leider ist Tethering so nicht möglich.

Wie viele plist Dateien hast du in deinem ipcc bundle? Bei mir sind es die carrier.plist, version.plist, info.plist und noch eine EPlus_Germany-Info.plist (evt. überflüssig).

Ich wäre dir wirklich dankbar für deine Einstellungen aus den plists. Dieses Herumgefummel ist so ein Schmerz! (Danke Apple!)

Das Posten des Inhaltes einer oder mehrerer Einstellungsdateien (plists) ist markenrechtlich nicht bedenklich. Sonst könntest man hier auch keine Auszüge aus plist-Dateien für andere Programme posten und damit Fehler beheben. Wir reden ja hier wirklich nur von Einstellungsdateien.

Ich würde mich sehr freuen, falls du es dir überlegst. Vielen Dank.
 
Wie viele plist Dateien hast du in deinem ipcc bundle? Bei mir sind es die carrier.plist, version.plist, info.plist und noch eine EPlus_Germany-Info.plist (evt. überflüssig).
EPlus_Germany-Info.plist kannst Du weglassen. Wichtig ist nur carrier.plist.

Ich wäre dir wirklich dankbar für deine Einstellungen aus den plists. Dieses Herumgefummel ist so ein Schmerz! (Danke Apple!)
s.u.

Das Posten des Inhaltes einer oder mehrerer Einstellungsdateien (plists) ist markenrechtlich nicht bedenklich. Sonst könntest man hier auch keine Auszüge aus plist-Dateien für andere Programme posten und damit Fehler beheben. Wir reden ja hier wirklich nur von Einstellungsdateien.

Ich würde mich sehr freuen, falls du es dir überlegst. Vielen Dank.
sehe ich auch so. Trotzdem werde ich den Teil mit dem Mandatoryverifykey und den SIMs weglassen, musst Du selbst ergänzen bzw. korrigieren (ich habe rot markiert falsche Werte als Platzhalter eingegeben!). Die passenden Werte kommen aus System/Library/Carrier \Bundles/Unknown.bundle/carrier.plist im iPhone OS 3.1.3

(carrier.plist für Simyo)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AllowEDGEEditing</key>
	<true/>
	<key>AllowMMSCEditing</key>
	<true/>
	<key>AllowMMSEditing</key>
	<true/>
	<key>apns</key>
	<array>
		<dict>
			<key>apn</key>
			<string>internet.eplus.de</string>
			<key>password</key>
			<string>simyo</string>
			<key>type-mask</key>
			<integer>1</integer>
			<key>username</key>
			<string>simyo</string>
		</dict>
		<dict>
			<key>apn</key>
			<string>mms.eplus.de</string>
			<key>password</key>
			<string>simyo</string>
			<key>username</key>
			<string>simyo</string>
			<key>type-mask</key>
			<integer>4</integer>
		</dict>
		<dict>
			<key>apn</key>
			<string>internet.eplus.de</string>
			<key>password</key>
			<string>simyo</string>
			<key>type-mask</key>
			<integer>48</integer>
			<key>username</key>
			<string>simyo</string>
		</dict>
	</array>
	<key>BookmarkURLs</key>
	<array>
		<dict>
			<key>BookmarkName</key>
			<string>simyo</string>
			<key>BookmarkURL</key>
			<string>http://www.simyo.de</string>
		</dict>
	</array>
	<key>CarrierName</key>
	<string>simyo</string>
	<key>IntlDataRoamingSwitch</key>
	<true/>
	<key>MyAccountURL</key>
	<string>http://www.simyo.de</string>
	<key>MyAccountURLTitle</key>
	<string>www.simyo.de</string>
	<key>PrivateCapable</key>
	<false/>
	<key>ShowCallForwarded</key>
	<false/>
	<key>ShowCallForwarding</key>
	<false/>
	<key>ShowTTY</key>
	<false/>
	<key>StatusBarImages</key>
	<array>
		<dict>
			<key>AllowPrefixMatching</key>
			<true/>
			<key>CarrierName</key>
			<string>simyo</string>
			<key>DefaultImage</key>
			<string>Default_CARRIER_SIMYO.png</string>
			<key>FullScreenOpaqueImage</key>
			<string>FSO_CARRIER_SIMYO.png</string>
		</dict>
	</array>
	<key>StockSymboli</key>
	<array>
		<dict>
			<key>symbol</key>
			<string>DTE.F</string>
		</dict>
	</array>
	<key>SupportMMS</key>
	<true/>
	<key>SupportedSIMs</key>
	<array>
		<string>26203</string>
	</array>
	<key>SupportsNITZ</key>
	<false/>
	<key>MandatoryVerify</key>
	<dict>
		<key>signature</key>
		<data>[COLOR="Red"]asdfgasdfegadfaeqrADFQREafdafqERafqerqFAe[/COLOR]</data>
		<key>SIMs</key>
		<array>
			<string>[COLOR="Red"]12345[/COLOR]</string>
			<string>[COLOR="Red"]12346[/COLOR]</string>
			<string>[COLOR="Red"]12347[/COLOR]</string>
                        [COLOR="Red"]...Alle Felder vollständig ergänzen!!! (230 Werte)......[/COLOR]
		</array>
	</dict>
	<key>MMS</key>
	<dict>
		<key>GroupModeEnabled</key>
		<false/>
		<key>MMSC</key>
		<string>http://mms/eplus:5080</string>
		<key>MaxMessageSize</key>
		<integer>307200</integer>
		<key>MaxRecipients</key>
		<integer>50</integer>
		<key>OnWhileRoaming</key>
		<false/>
		<key>ProvisioningAddress</key>
		<string></string>
		<key>ProvisioningMessageType</key>
		<string></string>
		<key>Proxy</key>
		<string>212.23.97.153:8080</string>
	</dict>
</dict>
</plist>
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: TGY
Vielen Dank! Zusammen mit den Infos aus dem Simyo-Blog habe ich mir eine carrier.plist gebastelt (habe keinen Zugriff auf ein unknown.bundle / jailbroken iphone). Telefon, SMS, MMS, mobiles Internet (EDGE/3G), und Tethering funktionieren jetzt wunderbar (werde ich aber noch eine Zeit lang weiter testen - man weiß ja nie...).
Der MMS Versand hat allerdings erst funktioniert, nachdem ich den Key "MaxMessageSize" aus der carrier.plist gelöscht habe.

Vielleicht kann ich noch einige Fragen stellen?

- Welche Funktion hat eigentlich der Key "PrivateCapable"?
- Wenn der Key "OnWhileRoaming" für MMS auf false gesetzt wurde, betrifft das dann nur den (ohnehin von simyo nicht unterstützten) Versand von MMS im Ausland oder verhindert es auch den Empfang von MMS im Ausland?
- Verweisen die 230 SIMs auf die Roamingpartner von Simyo im Ausland? Springt das iphone dann im Ausland weniger häufig zwischen verfügbaren Netzen umher bzw. ignoriert solche, die hier nicht aufgeführt sind?
- Ist der Inhalt der info.plist und version.plist relevant? Mir scheint, meine alte simyo.ipcc war einfach eine leicht modifizierte Eplus.ipcc. Somit sehen meine info.plist und version.plist im Moment so aus:



info.plist
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleExecutable</key>
	<string>EPlus_Germany</string>
	<key>CFBundleIdentifier</key>
	<string>com.apple.EPlus_Germany</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundlePackageType</key>
	<string>BNDL</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>5.0</string>
</dict>
</plist>

version.plist
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>BuildVersion</key>
	<string>4</string>
	<key>CFBundleVersion</key>
	<string>5.0</string>
	<key>ProjectName</key>
	<string>CarrierBundles</string>
	<key>SourceVersion</key>
	<string>1250000</string>
</dict>
</plist>

Kann ich dort EPlus_Germany einfach durch Simyo_Germany ersetzen oder ist das wichtig, weil Simyo das Eplus-Netz nutzt? Das Fehlen der CFBundleSignature scheint offensichtlich auch kein Problem zu sein, oder?

Bei den vielen neugierigen Fragen möchte ich es nicht versäumen, mich nochmals für deine prompte, freundliche und kompetente Hilfe zu bedanken. Das ist heute in Foren nicht mehr selbstverständlich. Vielen Dank.
 
Prima, dass Du das hingebracht hast. Danke für das Feedback!

PrivateCapable: weiß ich nicht. In vielen offiziellen Bundles ist es drin, in vielen nicht - wenn dann steht es immer auf <false/>. Private heißt übersetzt geheim. Vielleicht irgendeine Form der Verschlüsselung oder einer Authentifizierung? Ich setze es immer auf false.

OnWhileRoaming: <false/> verhindert auch den Empfang von MMS im Roaming, weil die notwendige Datenverbindung nicht zustande kommt. Man könnte den Key weglassen, dann zählt wohl der Roamingschalter in den Netzwerkeinstellungen.

MaxMessageSize: war auf 0 - mein Fehler. Hatte niemanden bei Simyo zum Testen. Ich bin davon ausgegangen, dass 0 das Limit ausschaltet. Ist wohl nicht der Fall :)

Die 230 SIMs sind die offiziell unterstützten SIMs. Wenn man eine solche hat, dann funktioniert unter 3.1.3 das Tethering nur, wenn der APN von Apple signiert ist. Sobald man die signierten APN-Einstellungen modifiziert verschwindet die Tetheringoption im iPhone beim nächsten Versuch, es zu benutzen. Dies kann man nur durch Patchen der CommCenter-Datei umgehen (Von mir kein Support), oder nutzen, wenn man sich die kostenpflichtige Tetheringoption beim Provider bucht (Swisscom tethering ist gratis).

Ja, SIMYO SIMs haben ja dieselben MCC/MNC wie E-Plus, deshalb hatte ich verschiedene Carrierbundles gemacht und nur das für meine SIM passende eingespielt. In der Info.plist steht der Name drin, unter dem das Bundle auf dem iPhone gespeichert wird (egal, wie Dein IPCC File benannt ist!), bei Dir also auch EPlus_Germany. Verschiedene Bundles mit gleichen supported SIMs (z.B. EPlus, Simyo, Base) sind eher suboptimal, da ist es dann wohl Zufall, welches das iPhone schließlich verwenden wird, wenn mehrere Bundles mit gleichem Simsupport auf dem iPhone vorhanden sind.

Um Dir offizielle IPCC-Dateien von Apple anzusehen, gib im Browser http://phobos.apple.com/versions ein und suche in der dann erscheinenden XML-Liste nach IPCC, Du wirst die Downloadadressen für die offiziell unterstützten Providerbundles finden (Interessant ist, dass es 3.0 und 3.1-Bundles gibt, was die Abwärtskompatibilität der 3.1.3 Bundles erklärt). Allerdings sind die enthaltenen plist-Dateien im Binaryformat, die musst Du ins lesbare Textformat konvertieren oder auf dem Mac im Propertyeditor öffnen (kannst Du mit dem kostenlosen Apple Xcode nachinstallieren). Da kannst Du viele zusätzlichen Einstellungen finden. Interessant ist z.B. dass bei One_AT 4 APNs enthalten sind.

Der Key MaxBluetoothModemConnections deutet wohl darauf hin, dass man mit mehreren Laptops mit dem iPhone gleichzeitig tethern kann!

Und der Key SupportsUserBusyCauseCode scheint auch interessant
 
Zuletzt bearbeitet:
Die 230 SIMs sind die offiziell unterstützten SIMs. Wenn man eine solche hat, dann funktioniert unter 3.1.3 das Tethering nur, wenn der APN von Apple signiert ist. Sobald man die signierten APN-Einstellungen modifiziert verschwindet die Tetheringoption im iPhone beim nächsten Versuch, es zu benutzen. Dies kann man nur durch Patchen der CommCenter-Datei umgehen (Von mir kein Support), oder nutzen, wenn man sich die kostenpflichtige Tetheringoption beim Provider bucht (Swisscom tethering ist gratis).
t

Hallo Stonefred,

Eine Verständnisfrage: ich habe eine Sunrise SIM, MCC/MNC = 22802. Dieser Wert ist in der Liste enthalten, obwohl Sunrise kein offizieller Carrier ist.
Ich habe ein factory unlocked 3GS und bekomme die Tethering Einstellungen nicht angezeigt. Wäre für einen Hint dankbar!
 
@Stonefred: Den "OnWhileRoaming" Key habe ich auch noch entfernt, da simyo ja angeblich zumindest den Empfang von MMS im Ausland unterstützt.
Den Eplus-Namen des Bundles in der info.plist behalte ich also, um identische ipcc-Versionen mit verschiedenen Namen zu vermeiden. Hat ja bis jetzt auch mit dem Eplus-Namen funktioniert (und ohne CFBundeSignature).

Der Link zur Appleseite war sehr interessant. Allerdings hätte ich jetzt nicht gewußt, welche Datei ich hätte herunterladen sollen, um den Mandatoryverifykey und die 230 SIMs für Simyo zu erhalten. Ist der Mandatoryverifykey eigentlich Carrier-spezifisch oder einfach eine bei allen identische Signatur, die nur den "offiziellen" Segen für diese Datei erteilt?

Die One_AT Datei (Orange Austria), die ich heruntergeladen habe, hatte übrigens nur 3 APNs. Hast du dort die ipcc für T-Mobile Deutschland oder Eplus gefunden? Ich nicht.
Auf jeden Fall danke nochmals. Falls die nächsten größeren Firmware-Updates (3.2 oder 4) grundlegende Änderungen an der Struktur der ipcc oder neue Mand.VerfiyKeys/SIMs mit sich bringen, die eine Aktualisierung der simyo ipcc notwendig machen, würde ich mich freuen, falls wir uns hier in diesem Thread wiedertreffen.

P.S. Die plists editiere ich normalerweise immer mit dem Pref Setter oder in Textwrangler.

@bassello: Falls Sunrise Tethering unterstützt (mal ganz unabhängig davon, ob Sunrise in der Liste auftaucht), ändere doch einfach mal die hier geposteten Dateien für den Gebrauch mit Sunrise ab und versuchs mit der neuen ipcc. Vielleicht hast du ja Glück.
 
Kann hier jemand mal ner armen socke helfen der gestern sein iPhone wiederherstellen musste und nun leider auf 3.1.3 festhängt, und auch nicht an so eine unknown plist datei ran kommt?

ich nutz vodafone.de, wär echt klasse :(
 
@TGY: Mandatoryverifykey erlaubt Dir ein Bundle mit APNs zu benutzen, die nicht signiert sind - aber nur, wenn die MCC/MNC Deiner SIM nicht in Mandatoryverify unter SIMs geblacklistet ist.

@basselo: Sunrise ist wirklich geblacklistet, es gibt jedoch weder im iPhone OS 3.1.3, noch auf der Applehomepage ein passendes Bundle. Da wird wohl in Zukunft etwas offizielles passieren. Man will wohl verhindern, dass man später eine alte gültige Blacklist verwendet, wo Sunrise noch nicht enthalten ist. Vielleicht verschwindet Sunrise ja auch beim nächsten Update von der Blacklist... Du könntest aber eine Swisscom-Sim einlegen, damit ist Tethering schon offiziell eingerichtet...
 
Carrierbundles sind ZIP-Dateien mit .ipcc Dateiendung. So muss ein Carrierbundle aussehen, damit es funktioniert:
MyCarrier.ipcc
Code:
\Payload\
        \[B]MyCarrier[/B].bundle\
                         \carrier.plist
                         \Default_CARRIER_[B]MyCarrier[/B].png
                         \FSO_CARRIER_[B]MyCarrier[/B].png
                         \Info.plist
  • carrier.plist: hier stehen alle Werte drin
  • Default_CARRIER_MyCarrier.png: Betreiberlogo für hellen Hintergrund
  • FSO_CARRIER_MyCarrier.png: Betreiberlogo für dunklen Hintergrund
  • Info.plist: hier steht drin, unter welchem Namen das Bundle auf dem iPhone gespeichert wird und welche Version es unterstützt.

am einfachsten ist es, eine funktionierende 3.1.3 ipcc Datei herunterzuladen, die Dateiendung in .zip umzubenennen, entpacken und das carrier.plist im Bundle anzusehen. Man könnte alle Werte anpassen und das Payloadverzeichnis anschließend wieder zippen und die Dateiendung in .ipcc umbenennen. Wichtig ist der Wert SupportedSIMs, der die MCC/MNC der eigenen SIM enthalten muss
 
@TGY: Mandatoryverifykey erlaubt Dir ein Bundle mit APNs zu benutzen, die nicht signiert sind - aber nur, wenn die MCC/MNC Deiner SIM nicht in Mandatoryverify unter SIMs geblacklistet ist.

@basselo: Sunrise ist wirklich geblacklistet, es gibt jedoch weder im iPhone OS 3.1.3, noch auf der Applehomepage ein passendes Bundle. Da wird wohl in Zukunft etwas offizielles passieren. Man will wohl verhindern, dass man später eine alte gültige Blacklist verwendet, wo Sunrise noch nicht enthalten ist. Vielleicht verschwindet Sunrise ja auch beim nächsten Update von der Blacklist... Du könntest aber eine Swisscom-Sim einlegen, damit ist Tethering schon offiziell eingerichtet...

Danke für den Tip! Funzte tip-top: einmal eine Swisscom SIM rein und danach bleibt die Tethering Option sichtbar, auch nach einem re-boot mit der Sunrise SIM! Freu!
 
Zu früh gefreut

Danke für den Tip! Funzte tip-top: einmal eine Swisscom SIM rein und danach bleibt die Tethering Option sichtbar, auch nach einem re-boot mit der Sunrise SIM! Freu!

Beim Versuch, eine Tethering Verbindung aufzubauen, verschwindet die Option wieder. Wäre ja auch zu einfach gewesen.
 
Hast Du nun einen Jailbreak oder nicht?
 
eplus ipcc

Hallo stonefred,
erst einmal danke für deine Mühe und die geniale Erklärung zur Funktionsweise der .ipcc. Leider komme auch ich nach vielen Stunden nicht weiter.

Ich benutze ein iPhone 3GS factory unlocked direkt von Apple.

Mit meiner australischen Vodafone-Karte hat alles prima geklappt, leider nicht mit meiner deutschen Eplus-Karte. Sofort nach dem einlegen verschwindet der Tethering-Schieber. Ich habe jetzt verschiedenste .ipcc Files ausprobiert nur zum laufen bekomme ich es nicht. Vielleicht habe ich auch den Teil mit den SIM Nummern nicht richtig verstanden.

Mein Field Test ergibt: 26203 was auch in der Liste steht
Hardware: iPhone 3GS JB 3.1.2 factory unlocked

Irgendwelche Ideen?
Danke
 
...mit meiner deutschen Eplus-Karte. Sofort nach dem einlegen verschwindet der Tethering-Schieber.
Das passiert, wenn Du ein IPCC für einen offiziellen Provider wie z.B. T-Mobile baust und dort die APNs änderst bzw. die APN-Signatur nicht stimmt. Das passiert auch, wenn Du ein altes IPCC nimmst, die nicht die Mandatoryverify-Blackliste mit den für inoffizielles Tethering gesperrten SIM-Nummern (aus dem 3.1.3 unknown Bundle) enthält. Wenn Du ein falsches IPCC eingespielt hast, dann kannst Du es (ohne Jailbreak) nicht mehr löschen und musst es durch ein korrektes IPCC überschreiben oder die blanke Firmware wieder herstellen (dann kannst Du die APN-Werte wenigstens wieder von Hand eingeben und tethern).

Ich habe jetzt verschiedenste .ipcc Files ausprobiert nur zum laufen bekomme ich es nicht. Vielleicht habe ich auch den Teil mit den SIM Nummern nicht richtig verstanden.
Das war Dein Fehler, Du brauchst ein für 3.1.3 gedachtes IPCC, das den Mandatoryverify-Key mit den geblacklisteten SIMs enthält. Mit meiner Anleitung kannst Du selber eines bauen oder ein 3.1.3-Bundle von einem anderen Provider anpassen (carrier.plist ändern, Logos austauschen, SIM-MCC/MNC, APNs, MMS-Einstellungen)

Mein Field Test ergibt: 26203 was auch in der Liste steht
Hardware: iPhone 3GS JB 3.1.2 factory unlocked
26203 steht nicht in der Mandatoryverifyliste, deshalb ist Tethering mit einem korrekten IPCC möglich
 
Eplus ipcc

So ich hab jetzt mal per SSH alle bundle aus /var/mobile/Library/Carrier Bundles/ rausgelöscht.

Dann habe ich gemerkt, dass die erste APN Type-Mask "49" und nicht "1" war.
Folglich das abgeändert. Und wieder in ein .ippc gepackt und installiert.

Logo is da und auch die Einstellungen für die APN aber der tether-Schieber ist immer noch nicht wieder aufgetaucht.

was könnt ich denn noch machen?

hier mal die carrier.plist
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AllowEDGEEditing</key>
	<true/>
	<key>CarrierName</key>
	<string>E-Plus DE</string>
	<key>IntlDataRoamingSwitch</key>
	<true/>
	<key>MMS</key>
	<dict>
		<key>GroupModeEnabled</key>
		<false/>
		<key>MMSC</key>
		<string>http://mms/eplus/</string>
		<key>MaxMessageSize</key>
		<integer>307200</integer>
		<key>MaxVideoBitrate</key>
		<integer>131072</integer>
		<key>Proxy</key>
		<string>212.23.97.153:5080</string>
	</dict>
	<key>MandatoryVerify</key>
	<dict>
		<key>SIMs</key>
		<array>
			<string>20201</string>
			<string>20205</string>
			<string>20416</string>
			<string>20420</string>
			<string>20610</string>
			<string>20801</string>
			<string>20802</string>
			<string>20808</string>
			<string>20810</string>
			<string>20820</string>
			<string>21407</string>
			<string>21630</string>
			<string>21901</string>
			<string>22004</string>
			<string>22201</string>
			<string>22210</string>
			<string>22299</string>
			<string>22610</string>
			<string>22801</string>
			<string>22802</string>
			<string>22803</string>
			<string>23001</string>
			<string>23002</string>
			<string>23003</string>
			<string>23101</string>
			<string>23102</string>
			<string>23203</string>
			<string>23205</string>
			<string>23402</string>
			<string>23410</string>
			<string>23411</string>
			<string>23415</string>
			<string>23433</string>
			<string>23802</string>
			<string>23806</string>
			<string>23820</string>
			<string>23830</string>
			<string>24001</string>
			<string>24002</string>
			<string>24004</string>
			<string>24005</string>
			<string>24008</string>
			<string>24201</string>
			<string>24202</string>
			<string>24491</string>
			<string>24601</string>
			<string>24701</string>
			<string>24801</string>
			<string>25001</string>
			<string>25002</string>
			<string>25099</string>
			<string>25901</string>
			<string>26002</string>
			<string>26003</string>
			<string>26201</string>
			<string>26206</string>
			<string>26801</string>
			<string>26803</string>
			<string>27001</string>
			<string>27077</string>
			<string>27099</string>
			<string>27201</string>
			<string>27202</string>
			<string>27801</string>
			<string>28310</string>
			<string>28405</string>
			<string>28601</string>
			<string>28602</string>
			<string>29401</string>
			<string>29502</string>
			<string>29702</string>
			<string>302220</string>
			<string>302370</string>
			<string>302610</string>
			<string>302720</string>
			<string>310140</string>
			<string>310150</string>
			<string>310170</string>
			<string>310180</string>
			<string>310380</string>
			<string>310410</string>
			<string>310980</string>
			<string>311180</string>
			<string>334020</string>
			<string>33420</string>
			<string>338070</string>
			<string>33870</string>
			<string>34001</string>
			<string>37001</string>
			<string>37002</string>
			<string>40401</string>
			<string>40402</string>
			<string>40403</string>
			<string>40405</string>
			<string>40410</string>
			<string>40411</string>
			<string>40413</string>
			<string>40415</string>
			<string>40416</string>
			<string>40420</string>
			<string>40427</string>
			<string>40430</string>
			<string>40431</string>
			<string>40440</string>
			<string>40443</string>
			<string>40445</string>
			<string>40446</string>
			<string>40449</string>
			<string>40460</string>
			<string>40470</string>
			<string>40484</string>
			<string>40486</string>
			<string>40488</string>
			<string>40490</string>
			<string>40492</string>
			<string>40493</string>
			<string>40494</string>
			<string>40495</string>
			<string>40496</string>
			<string>40497</string>
			<string>40498</string>
			<string>40551</string>
			<string>40552</string>
			<string>40553</string>
			<string>40554</string>
			<string>40555</string>
			<string>40556</string>
			<string>40566</string>
			<string>40567</string>
			<string>405750</string>
			<string>405751</string>
			<string>405752</string>
			<string>405753</string>
			<string>405754</string>
			<string>405755</string>
			<string>405756</string>
			<string>41677</string>
			<string>42003</string>
			<string>42402</string>
			<string>42403</string>
			<string>42501</string>
			<string>42502</string>
			<string>42503</string>
			<string>42510</string>
			<string>42702</string>
			<string>44020</string>
			<string>45002</string>
			<string>45005</string>
			<string>45008</string>
			<string>45201</string>
			<string>45202</string>
			<string>45204</string>
			<string>45403</string>
			<string>45404</string>
			<string>45406</string>
			<string>45415</string>
			<string>45503</string>
			<string>45505</string>
			<string>46000</string>
			<string>46001</string>
			<string>46002</string>
			<string>46692</string>
			<string>50212</string>
			<string>50501</string>
			<string>50502</string>
			<string>50503</string>
			<string>50506</string>
			<string>51010</string>
			<string>51502</string>
			<string>52099</string>
			<string>52501</string>
			<string>52503</string>
			<string>52505</string>
			<string>53001</string>
			<string>60201</string>
			<string>60202</string>
			<string>60801</string>
			<string>61002</string>
			<string>61101</string>
			<string>61203</string>
			<string>61404</string>
			<string>61701</string>
			<string>62303</string>
			<string>62402</string>
			<string>63907</string>
			<string>64114</string>
			<string>64602</string>
			<string>64700</string>
			<string>64702</string>
			<string>64710</string>
			<string>65202</string>
			<string>65501</string>
			<string>70401</string>
			<string>70403</string>
			<string>70601</string>
			<string>70604</string>
			<string>708001</string>
			<string>70801</string>
			<string>71021</string>
			<string>710300</string>
			<string>71201</string>
			<string>71402</string>
			<string>71403</string>
			<string>71420</string>
			<string>71606</string>
			<string>71610</string>
			<string>72207</string>
			<string>722310</string>
			<string>72234</string>
			<string>72402</string>
			<string>72403</string>
			<string>72404</string>
			<string>72405</string>
			<string>72406</string>
			<string>72410</string>
			<string>72411</string>
			<string>72423</string>
			<string>72431</string>
			<string>73001</string>
			<string>73002</string>
			<string>73003</string>
			<string>73010</string>
			<string>732101</string>
			<string>732123</string>
			<string>73404</string>
			<string>74000</string>
			<string>74001</string>
			<string>74402</string>
			<string>74807</string>
			<string>74810</string>
		</array>
		<key>signature</key>
		<data>
		AxQZpIf4l9Z2knhd11kx7K1v/NBHWjFGXkOF7dNWaUYasV71vZ3CLkVgAqRy
		O+OHZ9HhZaiUcu0GANrh26E4jFDYvel2kLicGUorv7d+91OZs76gLCFrY08+
		H6Ar3roBGupfpCv113nGlUPUfYsEMD3vzqFX+dB0ACKSOgXiGUE=
		</data>
	</dict>
	<key>MaxBluetoothModemConnections</key>
	<integer>5</integer>
	<key>MyAccountURL</key>
	<string>http://www.eplus.de</string>
	<key>MyAccountURLTitle</key>
	<string>E-Plus</string>
	<key>Services</key>
	<array>
		<dict>
			<key>ServiceCode</key>
			<string>+49 177 1000</string>
			<key>ServiceName</key>
			<string>Kundenhotline</string>
		</dict>
		<dict>
			<key>ServiceCode</key>
			<string>+49 177 9911</string>
			<key>ServiceName</key>
			<string>Mailbox</string>
		</dict>
	</array>
	<key>ShowCallForwarded</key>
	<false/>
	<key>ShowCallForwarding</key>
	<false/>
	<key>ShowDialAssist</key>
	<false/>
	<key>ShowTTY</key>
	<false/>
	<key>StatusBarImages</key>
	<array>
		<dict>
			<key>AllowPrefixMatching</key>
			<true/>
			<key>CarrierName</key>
			<string>E</string>
			<key>DefaultImage</key>
			<string>Default_CARRIER_E.png</string>
			<key>FullScreenOpaqueImage</key>
			<string>FSO_CARRIER_E.png</string>
		</dict>
	</array>
	<key>SupportedSIMs</key>
	<array>
		<string>26203</string>
	</array>
	<key>SupportsNITZ</key>
	<true/>
	<key>VoicemailPilotNumber</key>
	<string>9911</string>
	<key>apns</key>
	<array>
		<dict>
			<key>apn</key>
			<string>internet.eplus.de</string>
			<key>password</key>
			<string>internet</string>
			<key>type-mask</key>
			<integer>1</integer>
			<key>username</key>
			<string>eplus</string>
		</dict>
		<dict>
			<key>apn</key>
			<string>mms.eplus.de</string>
			<key>password</key>
			<string>eplus</string>
			<key>type-mask</key>
			<integer>4</integer>
			<key>username</key>
			<string>mms</string>
		</dict>
		<dict>
			<key>apn</key>
			<string>internet.eplus.de</string>
			<key>password</key>
			<string>internet</string>
			<key>type-mask</key>
			<integer>48</integer>
			<key>username</key>
			<string>eplus</string>
		</dict>
	</array>
</dict>
</plist>
 
Die Signatur ist bei mir ohne Umbrüche und vor der SIM-Blackliste direkt zwischen <data>und</data>, das Internetpasswort bei mir ist GPRS anstatt Internet. Ein Reboot ist notwendig, das mobile Internet muss erreichbar sein (also ohne Empfang geht es nicht. evtl. WLAN mal ausschalten).

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AllowEDGEEditing</key>
	<true/>
	<key>AllowMMSCEditing</key>
	<true/>
	<key>AllowMMSEditing</key>
	<true/>
	<key>apns</key>
	<array>
		<dict>
			<key>apn</key>
			<string>internet.eplus.de</string>
			<key>password</key>
			<string>gprs</string>
			<key>type-mask</key>
			<integer>1</integer>
			<key>username</key>
			<string>eplus</string>
		</dict>
		<dict>
			<key>apn</key>
			<string>mms.eplus.de</string>
			<key>password</key>
			<string>eplus</string>
			<key>username</key>
			<string>mms</string>
			<key>type-mask</key>
			<integer>4</integer>
		</dict>
		<dict>
			<key>apn</key>
			<string>internet.eplus.de</string>
			<key>password</key>
			<string>gprs</string>
			<key>type-mask</key>
			<integer>48</integer>
			<key>username</key>
			<string>eplus</string>
		</dict>
	</array>
	<key>BookmarkURLs</key>
	<array>
		<dict>
			<key>BookmarkName</key>
			<string>e-plus</string>
			<key>BookmarkURL</key>
			<string>http://www.e-plus.de</string>
		</dict>
		<dict>
			<key>BookmarkName</key>
			<string>base</string>
			<key>BookmarkURL</key>
			<string>http://www.base.de</string>
		</dict>
		<dict>
			<key>BookmarkName</key>
			<string>MEDIONmobile</string>
			<key>BookmarkURL</key>
			<string>www.medionmobile.de</string>
		</dict>
	</array>
	<key>CarrierName</key>
	<string>e-plus</string>
	<key>IntlDataRoamingSwitch</key>
	<true/>
	<key>MyAccountURL</key>
	<string>http://www.e-plus.de</string>
	<key>MyAccountURLTitle</key>
	<string>www.e-plus.de</string>
	<key>PrivateCapable</key>
	<false/>
	<key>ShowCallForwarded</key>
	<false/>
	<key>ShowCallForwarding</key>
	<false/>
	<key>ShowTTY</key>
	<false/>
	<key>StatusBarImages</key>
	<array>
		<dict>
			<key>AllowPrefixMatching</key>
			<true/>
			<key>CarrierName</key>
			<string>MEDIONmobile</string>
			<key>DefaultImage</key>
			<string>Default_CARRIER_E-Plus.png</string>
			<key>FullScreenOpaqueImage</key>
			<string>FSO_CARRIER_E-Plus.png</string>
		</dict>
		<dict>
			<key>AllowPrefixMatching</key>
			<true/>
			<key>CarrierName</key>
			<string>eplus</string>
			<key>DefaultImage</key>
			<string>Default_CARRIER_E-Plus.png</string>
			<key>FullScreenOpaqueImage</key>
			<string>FSO_CARRIER_E-Plus.png</string>
		</dict>
		<dict>
			<key>AllowPrefixMatching</key>
			<true/>
			<key>CarrierName</key>
			<string>e-plus</string>
			<key>DefaultImage</key>
			<string>Default_CARRIER_E-Plus.png</string>
			<key>FullScreenOpaqueImage</key>
			<string>FSO_CARRIER_E-Plus.png</string>
		</dict>
		<dict>
			<key>AllowPrefixMatching</key>
			<true/>
			<key>CarrierName</key>
			<string>base</string>
			<key>DefaultImage</key>
			<string>Default_CARRIER_BASE.png</string>
			<key>FullScreenOpaqueImage</key>
			<string>FSO_CARRIER_BASE.png</string>
		</dict>
	</array>
	<key>StockSymboli</key>
	<array>
		<dict>
			<key>symbol</key>
			<string>DTE.F</string>
		</dict>
	</array>
	<key>SupportMMS</key>
	<true/>
	<key>SupportedSIMs</key>
	<array>
		<string>26203</string>
	</array>
	<key>SupportsNITZ</key>
	<false/>
	<key>MandatoryVerify</key>
	<dict>
		<key>signature</key>
		<data>[COLOR="Red"]bitte ergänzen (eine Zeile ohne Umbrüche!)[/COLOR]</data>
		<key>SIMs</key>
		<array>
			<string>[COLOR="Red"]bitte ergänzen[/COLOR]</string>
			<string>[COLOR="Red"]bitte ergänzen[/COLOR]</string>
			<string>[COLOR="Red"]bitte ergänzen[/COLOR]</string>
                        [COLOR="Red"]... usw (insgesamt 230 SIM MCC/MNC-Werte in dieser Blacklist)[/COLOR]
		</array>
	</dict>
	<key>MMS</key>
	<dict>
		<key>GroupModeEnabled</key>
		<false/>
		<key>MMSC</key>
		<string>http://mms/eplus:5080</string>
		<key>MaxMessageSize</key>
		<integer>307200</integer>
		<key>MaxRecipients</key>
		<integer>50</integer>
		<key>ProvisioningAddress</key>
		<string></string>
		<key>ProvisioningMessageType</key>
		<string></string>
		<key>Proxy</key>
		<string>212.23.97.153:8080</string>
	</dict>
</dict>
</plist>
 
Zuletzt bearbeitet:
Zurück
Oben Unten