Android's Achilles' Heel - The Sim Toolkit
Quite a few people, myself included, believe that Android is going to become absolutely huge in Africa. Here in Rwanda, smartphones are becoming more and more prevalent for the upper tier consumers. Though the Blackberry is the only smart phone sold by local carriers, it is not uncommon to see unlocked iPhones as well, no less a status symbol here as the rest of the world.
Of course the beauty of Android is that at any moment one of the carriers here could start selling them, unlike the iPhone, Android is open for anybody to sell on any network. As a matter of fact, I have it on good authority that the biggest carrier here, MTN, will start carrying some Android handsets soon. And as the price continues to drop, I'm sure they will become just as popular here as they have become in the West.
That is if it wasn't for one giant gotcha: Android's terrible support for the Sim Toolkit.
Now if you live in the States, you might not even know what the STK is, so a bit of explaining is in order. Put simply, the STK allows carriers to load a simple set of menus and 'applications' on your SIM card. Again, on your fancy iPhone, you may question the need or purpose for such a thing, but that's because you are still years behind and using a credit card. Here, where credit cards are virtually unknown, the present and future of payments is Mobile Money, which is almost always delivered via.. you guessed it, the STK.
See, the STK works on virtually any device, from a $5 Alcatel to a $200 Nokia, these phones all implement the GSM standard and therefore allow anybody, both rich and poor to access services like Mobile Money.
Except if you have an Android handset.
Earlier versions of Android, up to 1.6, actually included a rather rough, but functional Sim Toolkit application, but at some point it was dropped, and even Google's own latest and greatest ROM's for its Nexus One and Nexus S handsets lack it. As a matter of fact, I don't know of any devices running Android 2.3 that include it.
Thankfully, CyanogenMod has been forward porting the Sim Toolkit for a while now, and sure enough, Cyanogen 7.0 still has it. But it is a buggy and unpleasant experience. I tried to activate MTN Mobile Money today using my Nexus One, and half way through the process just gave up and used my $5 backup phone instead. I can access most menus using Cyanogen, but only by force quitting the Sim Toolkit after every request.
I'm not the only one commenting on this, the web is full of people screaming that their fancy new $500 smartphone is too snobby, too highfaluting, to play with the rest of the world.
So here's a clue Google:
If you want Android to be relevant anywhere apart from the West, then start thinking about how we live day to day. Build a browser that does wire compression before sending it down (oh hai Opera!), give us finer control over when background data is used, give us USSD API support, and for god sake's, implement a 20 year old standard so we can use the services that make our lives more convenient than yours.
16 responses
@nicholasgot: NFC is going after a pretty different market. That is trying to displace credit cards in the west. You aren't going to see NFC readers become popular anytime soon in Rwanda, there is no infrastructure to support it. Mobile Money works today (look up mPesa), on a wide scale and on even the cheapest devices. All you need is a working Sim Toolkit.
All the other Android, especially those coming from ODM / OEM, will integrate standard STK natively. Which makes of Android a clear winner when it comes to open OS in Africa.
I'm UICC engineer of LG handset. as you know UICC means USIM and it includes SIM Toolkit.
I agreed your opinion about lack of android's STK support. but handset maker try to improve native STK service of android's and these days it almost same with feature phone.
I agree that Android needs to include a good USSD Browser with open APIs, for example one provided by Myriad (http://www.myriadgroup.com/Mobile-Operators/~/link.aspx?_id=9A9066BF0B86423B9...) but I do not think it would help much providing support for an outdated technology like SIM toolkit (more than 10yrs old!). Relying on SIM based apps or techno means very long deployment cycles and going back to the walled garden approach of WAP. Who wants to wait 2 yrs to have a new app deployed ?
You can perfectly implement mobile money transfer through USSD combined with a nice app, and since USSD is operator controlled you can add security to the transactions. But putting back the SIM in the game will only lead to longer delays; just look at NFC, specs have been around since 2005-2006 but since it required apps to be stored on the SIM it introduced an additional compatibility layer and prevented take off.
So yes Google, provide support for USSD, make some deals with operators to allow app developers to use it for apps (as well as SMS as data bearer) !
In essence, you are making the wrong argument, the SIM toolkit is here to stay, at least for a good while.
That said, it isn't across all handsets. Huwaei and SafariCom have launched a $100 Android handset that does include a SIM toolkit, it's just a mystery why the Nexus series specifically don't support the SIM toolkit.
Specificities of the african market:
- people tend to have several SIMs from different operators to minimize costs, but usually have only one handset as they are expensive
- they are 99% prepaid and buying a SIM is cheap, they do not hold onto the same subscription for very long
So SIM toolkit, which is tied to the SIM card is not the right solution. USSD or SMS services are more portable. Plus all the SIM toolkit apps are developed by the big SIM vendors (Gemalto, G&D/Smarttrust, Oberthur) who are located in Europe or China. This prevents local developers/operators from building their own services independently.
The only interest of STK is that it works (or should work) on all GSM handsets the same, on your 10 years old Nokia 3310 as well as your brand new android phone. If you like having a text based interface that is.
So yes Android should provide "legacy" APIs to allow applications to use SMS, USSD or even voice bearers more easily and operators should provide APIs to their servers so that developers can build adapted services.
That's that, sorry.
So I agree that operators need to provide a solution to allow access to legacy services using STK. That may mean a simple downloadable app that use can get for free on a zero rated APN (gprs access point). Or buying tons of Huawei or ZTE handsets allowing STK menus to be displayed according to the GSM standard (defined in 1995, older than Java !) if they feel like it.
All I am saying is that if google wants to adapt android to requirements of the African market, and enable local developers to build their own apps / services, they should implement some legacy, non IP based technologies like USSD but also negotiate with local operators so they can open up their networks to developers. So that a local business that wants to build an awesome SMS based app can go ahead and build it using android and network APIs and not worry about getting authorization, learning new protocols like UCP or SMPP, etc.
The problem is dependent on the handset's RIL implementation. On many devices the radio interface layer is proprietary, so third-party developers only spend time getting the basic stuff like calls, SMS, data, etc working rather than spending all their time reverse engineering some crazy closed-source hardware.
Life sucks. Long live open-source software.