I could not resist this one!
By now we all know that Apple has opted for a complex matching algorithm, in contrast to all other cell manufactures that simply match the last X digits (x-rightmost digits approach).
So, here a some interesting trivia about this?
Q1) So far, only a few countries were able to get by with just a single rule. What do they have in common?
A1. There are the NANP countries!
Q2) Why Apple did it like that?
A1. Who was Apple's wireless partner for the iPhone developiment? They were Apple's advisers in this area.
Q3) Who designed the NANP numbering scheme more than 50 years ago?
A2. No one other than Apple's partner!
Now I know why the whole thing fits NANP like a charm and is a kind of a nuisance for other countries.
tim, fantastic that fixed it. a big thank you. i tried it and got it working for singapore numbers. cheers!!
Wouldn't this flame the contract he signed with T-Mobile/Apple when buying the unlocked iPhone. Over here in Germany we have (hard to explain) something like "garantied feature of an item you buy". A typical feature for an unlocked GSM mobile you buy would be that it works in countries where GSM is provided. To make that happen you would have to "hack" your 999-Euro-babe, but that's not allowed, hmmmm
just my 2 cents
Read the stickies and search the forum before posting!
If you want to become a Hackint0sh supporter click here
iPhone 4 factory unlocked, iOS 4.3.1, jailbroken
iPad Wi-Fi + 3G (1G), iOS 4.3.1, jailbroken
It's another sign of poor guidance from whomever was/is Apple's adviser in this area. It was so poorly designed, with a business model that resemble the US CDMA style, were locked-only phone and exclusive carrier rights is a common ground. They simply forgot to think GSMish.
But who said you can't use you 1000E GSM phone when you travel??? You have roaming, right? That's how they think: roamiong, rather that SIM swapping.
US cell phone industry and its consultants are still ages behind the EU in terms of GSM culture. A proof of that? Try to buy a pre-paid SIM card in the US? Don't BS me about 911 and Homeland Security because you can actually register the buyer. Try entering an AT&T store and ask for a pre-paid SIM card? You may get one eventually, but usually you will have to get a package with a phone too. Been there, got several T-shirts.
They are not used to the concept of a user swapping the SIM card to get cheaper service. I have SIM cards from more tha 5 countries, and I'm amazed how easy it is to buy a pre-paid card in Europe and how hard it was to get one in the US.
Now back to the "serious" stuff.
iWorld provides a quick and dirty way for the phone to work in any country.
A more "comprehensive" solution would be to hack the comparison routines to:
a) ignore country settings
b) Do like Nokia: take only the last 6 digits
I'm not saying I do not like Apple's algorithm and Tim's approach. I love it, specially because once you have found your country settings, it work correctly even with number that the Nokia approach will fail.
A "real" iWorld solution would have to:
a) Do the number formating match using the "current" network's country, taken from the MCC;
b) Drop the need for the country in AppSupport and match 6 digits
With that in place, there is no need for tons of carrier dependent symbolic links in CoreTelephony.framework/Support. That will allow the UknownCarrier.plist to work as before, and the phone will work, as well as matching and formating.
If you do not care about Caller ID matching and only want to prevent MobilePhone/SMS from crashing if you are using a SIM card from a country that is not currently supported by Apple then apply the following patch.
At offset 0x7F0C in the AppSupport 1.1.2 file, change "C7 0A 00 EB 1C 10 9D E5 00 00 51 E3 20 00 8D E5 64 00 00 0A" into "00 00 50 E3 20 00 8D 05 66 00 00 0A C4 0A 00 EB 20 00 8D E5".
EDIT: With this patch applied you also don't need to create the MyCarrier.plist file and MCCMNC symlink if you do not want to use EDGE.
AfterCode:FB FE FF EB BL _CPPhoneNumberGetInternationalDialingPrefixForCountry 1C 00 8D E5 STR R0, [SP,#0x1C] C7 0A 00 EB BL _strlen 1C 10 9D E5 LDR R1, [SP,#0x1C] 00 00 51 E3 CMP R1, #0 20 00 8D E5 STR R0, [SP,#0x20] 64 00 00 0A BEQ loc_301E80B4
Code:FB FE FF EB BL _CPPhoneNumberGetInternationalDialingPrefixForCountry 1C 00 8D E5 STR R0, [SP,#0x1C] 00 00 50 E3 CMP R0, #0 20 00 8D 05 STREQ R0, [SP,#0x20] 66 00 00 0A BEQ loc_301E80B4 C4 0A 00 EB BL _strlen 20 00 8D E5 STR R0, [SP,#0x20]
Last edited by timschuerewegen; 11-24-2007 at 01:11 PM.
i read the whole thread, now i am sitting like a monkey, don't know what to do.
iworld makes simply solves crashing but i have the problem of caller id matching.
i really appreciate if anyone help me about my country settings.
i live in Turkey
local calls shows like 0xxx xxxxxxx
sms messages comes like +90xxxxxxxxxx
edge settings are : apn: internet user: gprs pass:gprs
would it be too much if i ask somebody could preapere the matching file. or maybe the best solution would be adding this to the iworld.