Category Archives: Mobile
I noticed my iPhone said Cupertino for it’s timezone setting. I live in Phoenix, AZ, where there is no observance to DST at all unless you are on some some tribal land which they do. That’s another story.
So how does this happen I wonder? With a non-jailbroken phone you can perform lots of tests like I did. Or you can get AppSwitch by XCool Apps for $1.99. This app can view the console and you can see some of the realtime settings being applied behind the scenes. That would sum up some up most of this, but that wasn’t as much fun as doing what I did below. Of course you gotta be real bored.
My method was very similar. I used a free Cydia app called syslogd to “/var/log/syslog”, and SSH.
First login to your phone’s IOS using the root user. Always change your password from the default password that apple had set, which is alpine. Once logged in, type date and enter. That should echo back what you have your phone set for. Depending on your settings it could be a number of time zone settings.
The location where the phone gets it’s timezone info is from a symbolic link called “localtime”residing in /var/db/timezone. For me, being in Phoenix, my phone fetches the Los Angeles file, which is aliased out from /usr/share/zoneinfo/America/Los_Angeles.
While I was in there sure enough there is a file called Phoenix, why won’t it use it?! Hmmm. Ok, so what I did next was manually rename the existing symbolic link “mv localtime localtime.old”. But first set the folder permission to this path to “chmod 777 /var/db/timezone” Next I setup a new symbolic link to Phoenix, “ln -s /usr/share/zoneinfo/America/Phoenix ./localtime”
Nope, still reporting Cupertino when set to auto. Next I renamed the LA file “mv Los_Angeles Los_Angeles_old” and then ran the date command, now it is set to UTC and 7 hours ahead of where I was when I was set to Phoenix manual. Ok I get it, that makes sense in away. Notice the red text below. That means the phone isn’t finding the file link now.
So if you put back the LA file, it’ll go to PDT and the clock will be the same as Phoenix. If you set timezone to manual and to Phoenix, then date shows MST.
Ok, back to syslogging the console. Did I already mention you have to be real bored to do this? Once you install it you have to reboot the phone. Then console back in using SSH, and type “tail -f /var/log/syslog”
Here ya go, I set it to Detroit and then back to auto, the process is in the red square below. So it does call on GPS at some point, which makes sense. You see it kicks off timed, and eventually sets the clock via NITZ, or Network Identity and Time Zone. NITZ is used by Apple and also by AT&T. It follows along with the GSM standard, so this will work since iPhone 2G. What you don’t see here is the console doesn’t report the carrier info, whether or not it’ll grab time via NITZ under AT&T if all else fails. I am assuming it would.
I also attempted prior to this setting to off the location services/system services/setting time zone to “off”. Nothing will budge Cupertino.
How about I put the whole phone in airplane mode? Same thing, it’ll set the auto to Cupertino. Fascinating. Cupertino is here to stay, it’s the default setting when nothing works. I could had saved a few hours of my time just knowing this. I guess I was truely bored.
Much is written about T-Mobile and the iPhone models. The tough thing is how many times do you have to reboot that phone in order to test everyone’s theory out there on what cellular setting you should use. I spent hours working on this from the 2G model, 3G and the 3GS. I have never set up a hack yet on the 4 series but it can also be done. I have included a few notes here on the 4. What I found difficult was that Cydia had a lot of packges out there but none for IOS 5+. Nevertheless, you can edit the plist manually, by enabling SSH or you can type the values I put in below in the system settings. Before you put in these settings, turn off 3G, Apple is missing the WCDMA 1700/2100 band, and cannot function on the T-Mobile 3G network. Turn on Data Roaming, turn off Wi-Fi so that you can accurately test the T-Mobile data plan, verify that MMS messaging is turned on, VPN not connected. Disable location services. If any of the above isn’t set, you will experience long search times for a cell tower, as well as dropped calls, and SIM resets after photos taken and/or MMS attempts. Lastly I set the 3GS to not use iMessage. I have had it working with the values I mention below but it seemed buggy when sending MMS. Sometimes it worked and sometimes it didn’t.
Prerequisites: iPhone 3GS with IOS 5.0.1, Jailbroken with iPad baseband via redsn0w, baseband 6.15.00, old bootrom 359.3 and below, ultrasn0w cydia package
After many variations I found these settings to work.
APN: WAP.VOICESTREAM.COM, epc.tmobile.com didn’t work
internet2.voicestream.com, epc.tmobile.com didn’t work for me
MMS Proxy: 22.214.171.124:8080 (Leave Blank for 4S)
MMS Max Message Size: 1048576 (Leave Blank for 4S)
MMS UA Prof URL: http://www.apple.com/mms/uaprof.rdf
Optional tip: You can try a Cydia package to add some of the above values:
Open Cydia and add this source: http://cydia.pushfix.info/
Once source is added, find the package T-Mobile US MMS Fix. Executing that app after the download and install will populate the fields for ya. May require some tweaking of the values to what I have shown above.
I recommend a full reboot of the device to have the settings apply. You can alternately edit the plist file and the pac file for the above settings, requires SSH to your phone, default pw is alpine set by apple. Change this please… passwd is the command in terminal to do so.
**if you experience long delays in finding service then try the alternate values I posted above.
**there are plenty of links out there to JB this device for T-Mobile use. They are not straight forward! They omit steps and lead you wrong. A full working knowledge of redsn0w is strongly suggested and the knowledge of putting the iPhone devices nto DFU mode (black screen), not the recovery screen which shows an icon to connect to iTunes.
You will have to have the original restore image for 5.0.1, and clear your hosts file of any references to GS.apple.com. I used Tiny Umbrella to manipulate the host file as well as save the SHSHs down. It was also useful to run in order to simply exit recovery mode in case you got there. The JB requires iPad baseband files so you can utilize 5.0.1, otherwise you wouldn’t need the iPad baseband files if you use an older IOS. You will have to install Cydia last, *not* on the first JB or else the phone will fail the JB. Cydia then gets installed via DFU mode and choosing a IPSW file *PRIOR* to launching the 2nd jailbreak. I used a custom IPSW I created with redsn0w to do a restore (itunes, then option click restore to choose your own IPSW) after I did the iPad baseband hack. This seemed to finalize the whole JB process. It preserved the Baseband at 6.15.00. You need to know your bootrom value, you can find out via DFU mode and using About This Mac (more info) button on Lion, or System Profiler prior to Lion. Look at the USB hub and look for the keyword DFU mode, and you’ll see the bootrom value. Mine was at 359.3 which is the old boot rom. Search google to translate any other numbers, it has to do with the serial number of the phone, decode that and you’ll find your production run (old or new).
All of the above can be done on a windows OS, you just need equivalent tools.
I did a repair recently on an Apple iPhone 3GS. Parts were cheap for the backing and the power button. All under $10 including shipping. The repair was to replace the back of the phone as well as replace the power button due to a drop that occurred. No small feat but it’s pretty annoying if you are missing a power button especially if you need to put your iPhone into DFU mode or simply put it back to sleep.
What a lot of the videos out there don’t tell you is that there is adhesive on some of the parts like the antenna assembly and battery for sure. The top glass section doesn’t get worked on in this fix, however it too has a slight adhesive bond and weather stripping I call it around it that can get damaged on the botton when using the plastic tool to lift it. Alternatively you can use a suction cup. I included some of the pics here for reference.
The take apart can go quickly but make sure you record which screw goes where since they are different sizes and it gets confusing later when you have to put it all back. The button assembly is the hardest to put back. Screws here are angled and very tiny! I advise you to use a magnetic screwdriver and take photos of the tear down stages. I strongly advise also when you put back the volume button that you keep the pads on it, they will fall off, put them back the best you can because it allows for the button to fully rock back n forth in a smooth way. The back doesn’t come with the speaker screens which essentially are just metal mesh stickers. They pop out easily and keep their stickiness. Lastly, I don’t know for sure but I did fry a 3G once when the order of the flex cables got put back wrong. I would stress that it is very important to slowly make sure you put back each flex cable in the order they go. Obviously this means take apart starts with 1, and reassembling starts with the highest number. On this phone that was #7.
I probably spent 4 hours doing the whole job with a 45 min break to overcome frustration. If I had to do over again and being familiar with the processes now, it would probably be half of that.