Android OS Samsung Galaxy S und Datenroaming (national / international)

Bei den neueren Android OS ist es leider so, dass es nicht mehr die Möglichkeit gibt, zwischen nationalem und internationalem Roaming zu unterscheiden. In Verbindung mit Netzbetreibern, die bei fehlender eigener Netzabdeckung auf ein Partnernetz ausweichen, kann das zum Problem werden, falls man seine Firmware selbst (Stichwort Odin) flasht, oder Kies mit einem modifizierten Productcode überlistet. Hierbei wird dann nämlich die providereigene Firmware überschrieben, die die Option nationales/internationales Roaming oft noch zur Verfügung stellt.

Am Beispiel des Netzanbieters 3 (DREI) wird zum Beispiel auf das A1 Netz zurückgegriffen, wenn es keinen oder nur schlechten Empfang im 3 Netz gibt. Es wird also Roaming betrieben. Genau genommen ist das nationales Roaming. Konnte man nun in älteren Android OS Versionen noch zwischen nationalem Roaming und internationalem Roaming unterscheiden, geht das -wie bereits oben erwähnt- bei neueren Versionen (zb Gingerbread) nicht mehr. Es sei denn, der Provider bietet eine modifizierte Version des Androidbetriebssystemes an. Hier in Österreich wird das Thema Androidaktualisierung etwas stiefkindlich betrachtet, weshalb man oft selbst seine Firmware flasht.

Selbstflasher

Nachdem man die Originalfirmware des Smartphone überschrieben hat, kann nun also nur noch Datenroaming ein oder aus geschaltet werden. Ich komme hier nochmals auf das Datennetz von Drei(3) zurück. Schaltet man Datenroaming am Smartphone aus, hat man keine Möglichkeit den Internetzugang am Handy zu nutzen, wenn man ausserhalb des von Drei versorgten UMTS Netzes ist. Warum? Aufgrund des deaktivierten Datenroaming wird überhaupt nicht mehr geroamt, auch nicht mehr über A1.

Schaltet man in so einem Fall (also im Inland = Österreich) das Datenroaming ein, wird über A1 geroamt, was hier korrekt ist und auch keine Probleme verursacht.

Wohnt man nun aber in Grenznähe, in einem Gebiet das nicht so gut vom eigenen Netzanbieter abgedeckt ist und hat Roaming deaktiviert, hat man keine Möglichkeit, den Datenzugang seines Smartphone zu nutzen, solange man nicht roaming aktiviert.

Die Gefahr hierbei (Grenznähe) ist dann, dass das Smartphone sich nicht nur in den Partnernetzbetreiber des eigenen Anbieter einloogen kann, sondern – wenn man Pech hat – auch in ein ausländisches Netz und das kann sehr teuer werden!

Dies stellt vor allem dann ein Problem dar, wenn man in Grenznähe wohnt. Wenn man nicht aufpasst, loggt sich das Smartphone unter Umständen in ein ausländisches Netz ein. Das wird dann teuer!

 

Die Lösung

Die Datei spn-conf.xml, welche im Ordner /system/etc des Smartphone (zumindest des Galaxy S) liegt. In dieser Datei werden u.a. Fakenetze eingetragen. Das ganze erfolgt mit Providerspezifischen „Nummern“ und schaut so aus (dies sind die letzten Zeilen in der Datei spn-conf.xml nach einem Flash auf das Android OS Gingerbread):

<spnOverride numeric=“23211″ fake_home_on=“23201″/> <!– bob @ A1 network –>
<spnOverride numeric=“23212″ fake_home_on=“23205″/> <!– yesss! @ Orange AT –>
<spnOverride numeric=“23207″ fake_home_on=“23203″/> <!– tele.ring @ T-Mobile A –>

 

Beispiel 1. Zeile: Diese Regel besagt, dass  der Provider 23211 (bob) auch ein gefaktes Heimnetz bei A1 (23201) hat (also auch dort zu Hause ist). Das wiederum bedeutet, dass – selbst wenn man als Bob User aufgrund schlechter Netzabdeckung über A1 fährt –  kein Roaming nötig ist, Roaming also am Gerät ausgeschaltet sein kann.

 

Für den Anbieter Drei ist in der spn-conf.xml keine solche Zeile enthalten, weshalb man diese selbst, nach den anderen Zeilen, die oben erwähnt wurden, einfügen muss. Sie lautet:

<spnOverride numeric=“23210″ fake_home_on=“23201″/> <!– 3 AT @ A1 network –>

D.h. Provider 23210 = DREI hat ein Heimnetz auch bei A1 (23201).

Heimnetz = kein Roaming

…und deshalb kann das Roaming dann am Gerät ausgeschaltet bleiben.

Um die Datei bearbeiten zu können, muss das Smartphone allerdings Rootzugriff erlauben (gerootet sein) und das Verzeichnis /system/etc muss mit Schreib- und Leserechten gemountet werden. (Es gibt hierfür im Market ein Programm mit dem Namen mount System, welches diesen Ornder beschreibbar macht.)

Rootrechte auf dem SGS bekommt man -ausgehend von einer Gingerbread 2.3.3 Firmware – zum Beispiel wie hier beschrieben.

Mein Dank geht an dieser Stelle an die User thealien und extralife (www.android-forum.de), die sich mit der ganzen Thematik auseinandergesetzt haben und schließlich auch die Lösung zum Problem gefunden haben!