CyanogenMod has a useful feature called "national roaming", which enables roaming to all providers in one's home country, while disabling it internationally. Unfortunately, such a thing doesn't exist in standard Android builds. Since I'm going to need it next week, I hacked framework.jar to work the same way as CyanogenMod's national roaming. I tested it with a foreign SIM and it does indeed work.
This should be compatible with the following ROMs:
- Ginger Stir Fry
- Swedish Spring
- Japanese Jellyfish
- FLB Froyo
BIG FAT WARNING: In some countries (USA IIRC, maybe others), some operators let you roam onto their networks even at home. So don't install this unless you know you can safely (and need to, otherwise it's useless) enable roaming at home without incurring any additional costs!
Download here: http://www.multiupload.com/FJX94XCC13
You don't need to download the attachment to this post if you just want to use it.
If you're interested in how it works, I'm patching isRoamingBetweenOperators() in the GsmServiceStateTracker class to rely on the MCC only and ignore the carrier name. I've attached the patch so you can port it yourself using smali/baksmali.
framework_mvno_patch.zip 404bytes 166 downloads