I was having iPhone 3.0 Gold Master, which is essentially the released version, about a week before the official released date.
iPhone 3.1 beta 1 came around 1 week later, and I have decided to upgrade my iPhone 3G, hoping that it will improve further the battery life.
After upgrading to iPhone 3.1 beta 2, knowingly that it is a beta copy meant for developers to take advantage of some new features on the 3GS. I was hoping that battery life can get better.
My past experience with iPhone 3.0 betas have been quite smooth sailing, only minor issues, which does not disrupt my daily usage.
This push me to try out iPhone 3.1 beta 1. It was pretty unstable, tends to hang if you are still in the midst of accessing the Internet and turn off the screen, the phone will just hang with black screen. Perhaps many times I received missed calls due to this erratic behavior.
After struggling for a week, finally beta 2 came. I presumed that it will solve the hang issue, and probably some hidden enhancement which may make my iphone 3G works better, I decided to go for it.
That was the first day of beta 2 release, there's no news on any possible problem I may have encountered. Desperate, thus I did it in the evening.
After apply the beta 2 firmware as an updates manually, I discovered that tethering (allowing iPhone to be used as 3G modem when connecting to my MacBook) is gone.
I thought this is perhaps a glitch that I did during the update process, I tried again, no luck.
Then I decided to wipe out everything on my iPhone, and do a complete restore.
iPhone restore is relatively painless. I never loose any piece of information if I need to do a complete restore earlier, except for accounts setup for Twitterific, and some apps that I frequently use.
Ok, I did a restore. Tethering not there.... I was pretty annoyed, and guess it is probably the carrier bundle settings that is causing the problem.
So I enabled iTunes to allow carrier bundles to be installed to my iPhone, built a clean carrier bundle for Celcom, my ISP.
No luck, MMS works, 3G on the iPhone works, but not tethering.
Then I tried to understand what contains in the carrier bundle and why it doesn't work.
In the midst of finding out what's going on, I happened to have a Maxis 3G SIM, of which I borrowed from my office. Maxis is the official carrier for iPhone in Malaysia.
When I pop in Maxis 3G SIM, tethering comes back. But when I turned to Celcom 3G SIM, it goes off.
Well, there must be something Apple did on the carrier bundle for Maxis and other official carriers that my custom made Celcom 3G bundle does not have.
At first I thought it may be Apple blocking non Apple carrier over the air. But I quickly dismissed this probability, since it will be stupid for Apple to block such features.
Apple's intention is to protect carriers from user abusing the tethering feature without paying, if carrier decided to charge.
This is not the case in Malaysia where carriers do not limit subscribers to only accessing internet with their phones only. All carriers here allow users to tether without additional fee.
I have practically tried all possible values specified in APN entries, APN entries are the reference to connect to different part of carrier's cellular data network, which defines the type of activities you can do with. Celcom 3G has only 1 APN to define, i.e. celcom3g
After a few nights and days over the weekend trying to solve the puzzle, surfing, tweeting, IRC, trying to find a fix but not available.
I am pretty sure after all the googling and digesting documents, web pages, etc that I can find, it is still carrier bundle that plays the tricks. And this time, I realised that I need the iPhone 3.1 beta 2 carrier bundle as a sample, to compare with what I had.
Calling for help on twitter brought @zwaldowski who sent me a link to the 3.1 b2 bundle files.
Open up, look for Maxis_my bundle, yes, I discovered there's an additional entry, i.e. signature, on each APN entries.
Open up other carrier's bundle gave me the same result. I know this is beyond my ability to try cracking the signature. Hence I started to look for ways to downgrade back to iPhone 3.0.
Apple has always warn developers not to downgrade their iPhone, claimed iPhone may bricked if downgraded.
I was very worry as this is the only phone I have now, if I screwed up, I will need to fork out another RM2K to get a new iPhone 3G or 3GS.
And for all reason I am trying to avoid using Maxis due to its performance at my home as in my previous posts.
Twitter comes to rescue again. I did a search on twitter to look for iphone downgrade and I found @SpaceFlightO mentioned that he downgraded from 3.1 b2 to 3.0.
When I asked him how he done it, he posted the instruction he created here.
Following his instruction, I got my iPhone back to 3.0 final and tethering works great now. I am in fact writing this post using iPhone tether.