Monday, February 4, 2008

Got the answer, where's the question?

Some time ago I posted an entry to my Forum Nokia blog about how to change the S60 browser identity to mimic iPhone. At that time I thought this trick only as a simple experiment that doesn't have other value. Then one comment opened my eyes that there might be something more than that:
So if you can modify this user agent on the E90 or make a patch wich can modify user agent how we like, all the features which come with our subscription will be unlock...

Orange's politic is certainly illegal, but I don't have the courage and money to fight with them :(.
In short: access to some services is blocked from users that have not bought their terminals from operator's shop. 

If you want to modify the plugin to best suit your needs, download iPhonesque source from here. However, remember that
  • you MUST HAVE a valid Publisher ID for Symbian Signed
  • seriously, do you have Publisher ID?
  • with that Publisher ID go get yourself a developer certificate with required capabilities (see the mmp-file)
  • if you want to use this on S60 3.0 devices you will need DRM capability which is almost impossible to get
  • read the code, understand it and make your modifications

Before anyone asks why I'm not delivering this application signed and installable the reason is quite simple: signing would cost me money.

//Harri

31 comments:

Anonymous said...

hello,

Thank you very much for this !

It's what I needed, but seriously I don't have a publisher ID :-(...

I found where to do the modifications in the program, I can't convert it in sis file, but not sign it...

So It's sad because for 200$ It will be better to buy a TV :-).

Thank you again for your kindness !

Harri Salminen said...

Yes, that Publisher ID cost is something that effectively keeps freeware developers away from Symbian. To sign this application for public use would mean investing approx. 250€ to signing, in addition to publisher ID costs.

Harri

Unknown said...

Hello,
I am able to compile and install the SIS but it is not changing the S60 Web Browsers user agent. Can you think of any reason why? I have an N95-3 FW:11.2.009 . All I am changing in the source is this line:
RStringF ua1Str = stringPool.OpenFStringL(_L8("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"));
to this:
RStringF ua1Str = stringPool.OpenFStringL(_L8("SAMSUNG-SGH-I607/I607FG1 Mozilla/4.0"));

Was there something else I need to change?
Thank you for you time.

Harri Salminen said...

Jim,

Changing that line should do the trick. However, note that the original code has a feature that it will only manipulate headers for requests made to Google's services. Look at iPhonesque.cpp line 99 and remove that if-statement if necessary.

//Harri

Abdullah Paracha said...

Harri, Jim
i do not have ability to compile source. But any one of you please compile a sis for me with Nokia N75 user agent? I have cerf available to sign sis later.

here is the agent. i want to be able to surf any site and not just google.

"NokiaN75-3/3.0 (10.1.054); SymbianOS/9.1 Series60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1"

without quotes of course.

Hiisi said...

Hello, Harri.

I have modified your code and modified one is working brilliantly on my Nokia N73! Thank you so much for making source code open to the public. I bought my phone at operator's shop, but some services have been blocked... Now, I'm free and can enjoy them!

I've uploaded my modded one at http://hiisi-proxy.blogspot.com/2008/05/iphonesque.html (written in Japanese, sorry) for users of SoftBank 705NK/Nokia N73 (it's branded phone). Thank you again!

Hiisi

Harri Salminen said...

Hiisi,

It is good to hear that my small application has helped you. I have never understood why operators are trying so hard exclude terminals from their networks, better business might be to attract as many customers as possible. Btw: in Finnish mobile networks there are actively approx. 1000 different terminal models used actively. What this means? People like to choose their own devices from a wide range, not just from operator's short list.

//Harri

Hiisi said...

Hi Harri,

Thank you for your reply. Other users are also giving thanks to you! In Japan, (almost) all mobile phones are SIM-locked, cross-operator SMS can't be send, only operator's branded phones are allowed to send MMS, and so on, and so on. It's the world most closed market here! I have SIM-free Nokia 7600, but of course, I can't send MMS with it... I think this kind of restrictions benefits domestic small vendors, but I don't think it is a sound market. I really envy Finnish market.
BTW, I love symphonies composed by Sibelius, and I'm so interested in Finland :-)

Hiisi

Abdullah Paracha said...

Harri

Can you compile one for N75 user agent for me please. I really want this and i have been asking it in this forum. It shouldn't be hard for you guys to change a line and compile.

"NokiaN75-3/3.0 (10.1.054); SymbianOS/9.1 Series60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1"

If you guys can not do it, at least tell me what software i need to compile it myself.

Looking forward hearing from you. Thanks!

Harri Salminen said...

Abdullah,

I compiled a couple of versions with different user agents. Take a look to my iPhonesque page.

Abdullah Paracha said...

Thank you hari. I did sign the app with my dev cert but while installing on my N95-3, i get error

"Required Application Access not granted"

Any idea? Do i need to perform the platform hack?

Harri Salminen said...

Hi,

Check the original article from Forum Nokia. There is explained what capabilities are needed and what error messages mean.

In short: your certificate doesn't have required capabilities.

//Harri

Unknown said...

Some details about signing : if you get "Unable to install a protected application from an untrusted supplier", you need to offline sign this program in order to work :
see the link below for detailed instructions.
http://www.ipmart-forum.com/showthread.php?t=250439

I made a n95ua version that i can email you if you need it.

hope this helps.

Harri Salminen said...

Paul,

interesting link about hacking the terminal's security model. Haven't tried that myself but based on comments that could work.

Thanks for this link.

//Harri

Unknown said...

Hello
i would like to modify your code.
I have compiled your application but the dll is not good (it's not the same as yours), I don't know why??
Thanks in advance for your help.
Lionel

Harri Salminen said...

Lionel,

Could you give more information about what's wrong? Is it a compilation problem (something with the source), installation problem (something with the signing) or something else?

//Harri

Unknown said...

hi, thanks for your response
The compilation good
installation good (no problem with sign),
but after the compilation the dll is different as yours (the sources are similar, at first time I don't modify them)...
Thanks
Lionel

Harri Salminen said...

Lionel,

Here are some possible reasons why dll's can be slightly different after recompilation:
*Compiler. I used GCC, but also ARM's compiler can be used
*SDK. I used S60 3rd edition fp1, but there are a couple of newer SDKs already available
*Compilation target. My binaries were built for release target, if you build for debug you will get different binaries.

Hope this helps.

//Harri

yoco9 said...

Thanks,
in fact, I have installed SDK S60 3rd edition fp1, and now it work fine!!!
Thanks for all.

Anonymous said...

Is the source code for this still available? I was unable to find it at http://www.mobilitics.net/iphonesque which has compiled sis files.

Harri Salminen said...

Oops! You are right, I had messed up the page and source wasn't there anymore.

Now source is available, please visit the page again.

//Harri

Anonymous said...

Awesome. Thanks for reposting the source code.

Unknown said...

Hello Mr. Salminen,

I stumbled upon the very EXCELLENT iPhonesque (through google) and have tried compiling your source code to this user agent of the Nokia E71x (AT&T branded):

NokiaE71x/ATT.03.27 Mozilla/5.0 SymbianOS/9.3; U; [en]; Series60/3.2; Profile/MIDP-2.1 Configuration/CLDC-1.1

I'm probably not half as intelligent as you and that's why I cannot get it to work. Could you please help or give me some guidance? The original user agent still appears.

AT&T in the U.S. wants money for things that should come free with the plan I'm paying for. All because I want a better (unbranded/unlocked) phone than they sell.

Nokia E71-2 NAM.

Thank you and best regards,
Michael Westbrook

Unknown said...

Please forgive my stupidity. I finally figured out where my mistake was. This is a great program. Thanks so much!!!!!!

Harri Salminen said...

Nice to hear my application has helped you. Your problem with operators is very common and I've heard many succes stories how people can use their favourite devices only after changing the phone identity with my tool.

//Harri

BaptX said...

Hi, first you have know that your app is very usefull, Harri. I can acces the free live TV channels of my network thanks to Iphonesque (N95 UA)! And sharing the source code is even better, I've compiled some specials user agents to acces another blocked free service. I think I will share the files if it works great, but I need some informations. I've compiled with Carbide C++ the S60 3rd FP2 SDK (GCCE) for my N86 and I want to know if it will be compatible with all S60v3 devices. If not, what should I use for a full compatibility with S60v3? Will the FP1 SDK work for an FP0 device? Or should I directly use the S60 3rd MR SDK? Need help! Thanks.

Harri Salminen said...

Hi,

for maximum compatibility I'd compile with fp1 SDK and target devices starting from S60 3ed fp1.

There is a major problem with original S60 3.0 platform: this application requires DRM capability which is (in practice) impossible to get because it requires special permission from the device manufacturer.

For later platforms (starting from fp1) DRM capability is no longer required.

//Harri

BaptX said...

Thanks for your answer. So, I'll compile with the fp1 SDK.
Maybe you know a man who modified your app and add a script, so you can directly switch from one user agent to another. It's a good complement to Iphonesque, it's called UA changer: http://symbian-freak.com/forum/viewtopic.php?f=6&t=22250&p=620316#p620316 (login/signup required)
I asked him the source code in order to switch the UA we need. The script is in python and I've read somewhere that some python files are already in the s60 3rd sdk but we have to add python sdk files.
The last version of this sdk is the 1.4.5, there's fp0 and fp1. Is it better to use the python fp1 sdk whith the s60 3rd fp1 sdk? Someone said that using fp0 will be better for devices compatibility. But using the s60 3rd fp1 sdk for Iphonesque, it's already resticted for fp0 devices, so I think we dont care about the python fp, is that right? Should I use the python fp1 with?

Harri Salminen said...

Hi,

I'm not very familiar with Python development, so I have no clue about the Python SDK dependencies. Take the latest runtime from http://wiki.opensource.nokia.com/projects/Installing_PyS60 and see if this combination works.

//Harri

Todd said...

Hello,

I found iphonesque through the http://nokia5800.net site and finally installed and tested it last night. It works...sort of. I don't see any errors, but visiting http://browserspy.dk shows the HTTP User-Agent string changing, not the Javascript User-Agent string or the other JS properties. My phone is an E73 (3rd Ed. FP2) and I am trying to decide if I'm not signing it right (using a cert from http://opda.cn), if I should be using another version, or if this is just a limitation in my phone.

Thank you for for any advice!

Todd said...

I recently discovered a need to temporarily disable style sheets on my E73 and have just started looking for hacks or information on S60 browser internals. Harri, your blog seemed like a good place to start. :) Might you have any suggestions?