[GUIDE] How to stop Data Throttling
I take no credit for this guide. I am simply reposting sino8r's post HERE
First things first...
I am not responsible for destruction of your phone, boot loops, or cancellation/suspension of your contract due to excessive data use! You edited your rom... I didn't! Don't shoot the f*cking messenger!
And don't make say I did or the Professor will end the world with one of his doomsday devices, lol! He's angry and senile! The most deadly combination! You've seen old people drive, right? Weapons of mass destruction... anyways
First, I'd like to thank androidcues for extensive testing. Also, thanks to T.C.P. for giving us a hand. And finally JesusFreke for creating "smali" that so many of us use today.
Now then, let's get down to business! You need to have the SDK/adb plus drivers setup for this to work. There is no way of getting around this, so if you need help doing that... look somewhere else because there are numerous guides for that. Secondly, you need to make a backup via Nandroid of your current rom! I can't stress that enough! And finally, you need smali which is located here.
Okay, find you current rom on your pc (the zip file) and open it with your favorite extractor (winrar is nice). Go to the system/framework folder and extract services.jar file onto your desktop. Now open services.jar and extract classes.dex to the desktop. Cut and paste classes.dex to your sdk/tools folder. Now, download smali and baksmali.jar from the link in the paragraph above. Rename them smali.jar and baksmali.jar for easier typing later. Cut and paste those two into the SDK/tools folder also. Open your command prompt and cd (change directory) to sdk/tools folder. Then type this exactly (without the quotes: "java -jar baksmali.jar -o classout/ classes.dex". Look at your sdk/tool folder... that should have created a folder called classout. Open it until you find your files. Locate the 7 files with "throttleservices" in the title. Delete them! Now type this into command prompt: "java -Xmx512M -jar smali.jar classout/ -o new-classes.dex". That should repack your edited files and create a file called new-classes.dex... Cut and paste the new-classes.dex to your desktop and rename it classes.dex. Now open your services.jar (that should be on the desktop) with winrar (or whatever) and click add file. Add the classes.dex file from your desktop. It might ask you to replace it or save or not (it will depend on your extractor). After you edited your services.jar, copy and paste it to your tools folder. Connect your phone via usb cable to the pc. Boot into clockwork recovery. In the clockwork menu, make sure you go to mounts and storage and click mount /system before this next step. Now, open the command prompt from your pc again, and cd to sdk/tools folder (if you are already there, you can skip this step! Good for you:p). Now type "adb push services.jar /system/framework/". Reboot your phone and enjoy!
The menu/settings/wireless & network settings/mobile networks are going to force close. It is rarely needed so this won't be a problem for 99% of users (1% of you are bastards;)). Just make sure you have data roaming enabled before pushing your services.jar and that your APN is correct (which it should be already) because you won't be able to change those again. You can always push your old services.jar (from your rom.zip) to quick restore (way easier than Nandroid but whatever) Just do that the same way we copied and pasted services.jar to tools folder and adb push. ONE THING you might miss is having the option to use 2G only. To remedy this, just dial *#*#4635#*#* from the dialer. Go to phone info and select your prefferences... 2G only,3G only, or 3G preferred. There's an app for that (:p) called phone info by SC@taiwan on the market for free. It much handier than dialing all that *#*# crap. That should take care of most folks.
We extensively tested most roms but CM Nightly seemed to not like this edit. I guess it would depend on the build... (we tested nightly #50) My suggestion would be to all the rom developers out there to edit their own service.jars and remove those 7 deadly sins (or files) and put some kinda of falsie placeholder to prevent the force close. That should do it but since ALL roms services.jar are different... i can't make one magical file that will fix everything. ALSO, if you are running a added on theme, you need to use the service.jar from the theme to do this edit!
Well, I think that is all... so have fun and get what you paid for which is UNLIMITED DATA (NOT THROTTLED CRAP THAT IS SLOWER THAN 2G!) T-Mobile has found a loophole with this throttle crap so they can still CLAIM it's unlimited! That may be technically true but it is utter crap and they know it. They are already being sued for this but I doubt anything will happen. This also meant for user who don't use their phone as a home internet connection. Those folks are the ones who made t-mobile do this. This is meant for people who use a normal amount of data like 10-15GB and aren't using mobile internet for torrents or useless crap. That is just a suggestion and obviously this can be used for anyone who wants to. Again, you guys are the ones who editing your own services.jar and not me! I am not responsible! Like Pres Nixon said, "I am not a crook!" :p