In short, iPhone 4 made for the mainland China market (Hong Kong excluded) are locked to using the Chinese language maps in the maps app.
How can we get around it now that Limera1n jailbreak is available?
I've tried putting it into DFU then restoring from the 4.1 IPSW that I downloaded from Apple. Since the IPSWs are not country-specific, I would guess the code is written to check that if the phone is made for China and then to only load the maps for China. Google maintains ditu.google.com (ditu is Chinese for map) that appears to be the same map that is showing up on the phone, so it's likely the phone is accessing ditu.google.com instead of maps.google.com.
I've made some progress on this. Using Paros to sniff the traffic, it appears that my iPhone uses google.cn for maps data. In Paros, I set up a filter to change HTTP request headers of "google.cn" to "google.com" and now the maps is showing English.
I tried setting up entries in /etc/hosts to point google.cn to google.com's IP but this didn't seem to work. I think Google checks the requests headers and if it's .cn it gives the Chinese version, and .com the global version.
Do you think it's possible to hack the iPhone somehow to change the HTTP request headers?