When I found out Luxembourg has the same TLD as my last name, I knew I had to get yifan.lu. Don’t worry if you linked to yifanlu.com though, everything redirects to here. I tried to make sure every link on this site is correct, but if I missed any, please make a comment below and let me know. In addition, I created a FeedBurner feed for this blog, just click the button to the right to subscribe to this blog using FeedBurner (get the counter up).
Also, if you have “http://cydia.yifanlu.com/” added on your iPhone, make sure to change it to “http://yifan.lu/cydia/”, the new URL.
EDIT: This no longer works. If you have the package installed, I would recommend uninstalling it.
I’ve talked about how it works here. In short, I’ve made a proxy server that adds the string “tmobile” to all URL requests on the iPhone because T-Mobile allows internet access to URLs with “tmobile” in it. You can download the deb and install it manually from here. You can also add the repo http://yifan.lu/cydia/ to Cydia. This script works for any unlocked iPhone running T-Mobile including prepaid phones. However, I’m not responsible if you abuse this and get charged. Let’s start the countdown. I predict T-Mobile will have this bug fixed in a month.
Please note that it’s only tested and working on one phone. So it’s pretty beta-ish. If it doesn’t work, please post as much info as you can in the comments, so I can fix it up.
Also, I noticed that it doesn’t work on the internet3.voicestream.com APN. I use wap.voicestream.com and it works there. Another thing that breaks this is any “T-Zones $5.99 hack” (which hasn’t worked for a while now) is installed. The problem is that if you already have a proxy set for ip1 (EDGE/3G) interface, then this won’t work. You can’t modify EDGE/3G proxy information from Preferences.app, so if you manually edited your proxy information in preferences.plist, installed a package that did, or installed a mobile config that did revert the changes to use this.
If all else fails, install my configuration profile by going to http://yifan.lu/cydia/install.mobileconfig from your iPhone and install that configuration profile. It will set the APN and proxy for you.
I found a trick where if the URL contains the string “tmobile”, T-Mobile allows access to that site. While it’s easier to make a web proxy at somewhere like tmobile.example.com, it’s slow and a pain to use. So I came up with a little script to redirect all HTTP requests on the iPhone (HTTPS experimental, does not work all the time) from example.com to example.com/?carrier=tmobile or example.com/?request=something&carrier=tmobile. This works for 99% of all sites, and only doesn’t work on HTTP sites that explicitly deny weird GET requests. The proxy server is Tiny HTTP Proxy written by Suzuki Hisao. The installation script is written by me. What it does is allow the proxy server to run at startup and add the proxy server to your cellular internet configurations (really hard to do if you ever tried it). Note: Because of how the configuration is designed, when you remove it, your internet configuration (including Wifi) will revert to what it was before installation. All internet configuration changes after that point will be lost.
To install, either download the DEB file (listed as ZIP in the downloads below), or add http://yifan.lu/cydia/ to your Cydia repos list and install the package from Cydia.
Also make sure your APN settings are correct. I suggest installing a T-Mobile carrier bundle.
I noticed that it doesn’t work on the internet3.voicestream.com APN. I use wap.voicestream.com and it works there. Another thing that breaks this is any “T-Zones $5.99 hack” (which hasn’t worked for a while now) is installed. The problem is that if you already have a proxy set for ip1 (EDGE/3G) interface, then this won’t work. You can’t modify EDGE/3G proxy information from Preferences.app, so if you manually edited your proxy information in preferences.plist, installed a package that did, or installed a mobile config that did revert the changes to use this.
If all else fails, install my configuration profile by going to http://yifan.lu/cydia/freeinternet.mobileconfig from your iPhone and install that configuration profile. It will set the APN and proxy for you.
Also, if you’re linking to this, PLEASE link to this page instead of directly to the DEB, or I’ll remove it. Thanks!
All domains sold. Ignore this post.
Well, the secret is out. I refreshed my iPhone’s Cydia to find somebody selling “free T-Mobile Internet access”. I knew immediately what the method was, as I’ve been using it for almost a year now. Since it’s now public, and T-Mobile will close the hole anyways, I might as well help you save your money from these crappy “services”.
So what’s the “bug” that allows free internet? It seems like the stupidest thing in the world, and I’m almost certain that some technician left it in on purpose. Basically, any URL with the word “tmobile” is accessible without a data plan. (as long as your APN is set to epc.tmobile.net) So all you have to do is make a proxy site (aka PHProxy) with “tmobile” somewhere in the URL (tmobile.yoursite.com or freehost.com/tmobileproxy) and it would be accessible via your phone.
It gets better. As far as I know, the above is the only thing that’s “leaked”. Here’s some new information: the method above only allows web site browsing, there is a way to 1) not use a slow and unreliable proxy, and 2) work with all HTTP apps on the phone other then web browsers. If you append the string “?tmobile” at the end of the URL, it loads without fail. So just install a local proxy (like Privoxy, or a custom one) on your iPhone (or whatever smartphone) which adds “?tmobile” to the end of the URL (or “&tmobile” for pages with GET requests) and it will work.
If you don’t get a word I said, don’t worry. When I have time, I’ll post my custom proxy written in Python, or even post an iPhone Cydia package.
P.S: This method only works with HTTP requests (not HTTPS, or any other protocol). I have another, slower method of getting access to everything, but I’m not ready to reveal it yet.
Remember the two scripts I’ve posted earlier in the week? Well, I finally have the time to formally insert them into the database, so here they are:
Also, I’ve finally had it with Google Adsense. They banned me for no legitimate reason. Google said that my PSN Update Finder (and “maybe other similar pages”) was “in violation of our program policies”. After re-reading their policies, I still don’t know which policy I supposedly broke, and emailing them only got a reply that is the same message. Therefore, I’m now trying out new ad networks, seeing which is the fastest, most non-intrusive, and the most relevant. If you see any intrusive ads or malware ads, please send me an email and I will take care of it. Thanks.
Another quick half-hour script I wrote. This is an AppleScript that lets you use FaceTime as a video monitor. Just run the script in background, and whenever you want to see your house, just do a FaceTime call to your iMac and the script will accept it.
1) Nobody else knows your Mac’s FaceTime email. Make it secret, or people can spy on you by calling your email.
2) You haven’t resized FaceTime. I’m lazy so, it closes FaceTime whenever the window size is 638 by 585.
What does it do? You give it a PS3 game’s title id, and it’ll spit out all update packages (retail and debug) for it. Useful for jailbroken PS3s. I’ll do a proper writeup sometime in the future.
Source code: http://pastebin.com/rR5xUZS6
(You need PHP with SimpleXML support)
This was a quick one hour project. I took ASCIIMan, and chopped up and rearranged the code to be a Pong game. Introducing JoshPong, less of a Pong game, more of a demo of the ASCIIMan engine, and Josh library. I know there’s a big bug in Josh that prevents loading the native DLL, so make sure you read the temporary work-around posted on the download page.
Another demo of the powers of Josh (and the ASCIIMan engine). Really simple game of Pong, based on the code for ASCIIMan (stripped down and modified). Controls are ‘W’ and ‘Z’ for player 1, ‘I’ and ‘M’ for player 2.
Temporary fix for “invalid memory access” errors
Until I have time to fix it, here’s a temporary fix.
- Download DLLs.
- Choose the DLL file that corresponds to your Windows version.
- Rename that DLL to “JoshCore.dll”
- Move that file to your temp folder (Type: %temp% in the address bar)