Thursday, June 6, 2013

Getting mobile data in Japan (b-mobile)

Getting mobile internet connectivity in Japan can be a bit of a problem. While Japan has a great mobile network, foreigners on temporary visitor visa rarely get to use it since you need to be a long-term residence in order to get a prepaid card or sign a contract. Before, you need to rent a phone or use roaming to use a mobile phone in Japan, both which are prohibitively expensive for any long-term use. However, recently, there have been new MVNOs (mobile virtual network operators) reselling NTT docomo's network which allows foreigners to also use them.

NTT docomo's SIM card
Two popular MVNO are eConnect Japan and b-mobile. eConnect Japan is aimed at foreigners with the site being entirely in English and the SIM does not require activation. You can order the SIM card for airport pickup or have it sent to your hotel. However, eConnect Japan is more expensive and there is no automatic service, which means that data usage check and recharging are processed manually and takes a long time.

b-mobile is aimed more at Japanese customers with a large variety of SIM cards on its Japanese site. b-mobile also has an English site, however, its selection on the English site is very limited and the SIM cards on the Japanese site is a better deal. However, SIM cards on the Japanese sites needs to be activated from a Japanese mobile phone, which might be a problem if you're traveling and don't know anyone in Japan.

For me, I choose the 1GB 定額 SIM which allows me to use 1GB of data for 30 days (no phone calls available). I've ordered it on Amazon and requested it to be sent to FamilyMart for convenience store pickup (Amazon allows you to pick up their product from FamilyMart or Lawson in case it is more convenient than having it sent to an address). Two days later, it was delivered. To pick up the merchandise, you need to use the FamiPort machine and input the order number and password given by Amazon via email and give the receipt to the cashier. The machine is entirely in Japanese, but the process is pretty straightforward.

FamiPortSIM Card Packaging
After the SIM card got activated, I've inserted it into my phone and setup the APN settings. After that, this is where strange things happen...


(Technical details warning!)

My phone is on "no signal" and "emergency calls only" and yet I've got an internet connection! I'm not the only one with the problem though and it turns out that its due to the peculiarity of the SIM card. Each SIM card usually have a circuit switching (CS) component for calls and a packet switching (PS) component for data. However, this SIM card only has the PS component without the CS component, which is very unusual (data only SIMs in other countries usually has a CS component for compatibility). This confuses the phone into showing "no signal". (As for "emergency calls only", it is technically correct since phone calls can't be made.)

To fix this and show signal properly, a Japanese developer has developed a patch for Android phone. The patch is completely in Japanese and utilizes smali (disassembly) patching. However, as an Android Platform hacker with the tools to rebuild Android from source, there must be a better way than smali patching. Looking at the patch, I can see that it patches the regCodeToServiceState code inside the telephony framework. On my Nexus 4, the RIL returns service state "1" and "13". I simply changed "13" to return an "in-service" state and my signal display is now fixed! There are also other minor cosmetic issues to be fixed due to the "emergency calls only" state, but I will not discuss them here.


(End of technical details)

Finally, let's end this post with the details of recharging the SIM card. The SIM card can be recharged online using a credit card (doesn't have to be Japanese). First, you have to sign up for a b-mobile account and enter your credit card information. Then, on your Android phone, download the bCharge app and login with your b-mobile account while connected to 3G. Your SIM will be automatically registered onto your b-mobile account and you can recharge it using the app or the b-mobile website. The app also allows you to check your remaining balance and also provides a widget.




No comments:

Post a Comment