Monday, September 2, 2013

Solution to the "Netflix error 13001. Cannot communicate with Netflix" for Le Pan TC-970 tablet

I solved this problem today. I have a Le Pan TC-970. The problem is that android 2.2 has no regular (and easy) way of updating the security certificates used for secure network communication.

 When I try to visit netflix.com I get this error message about the certificate cannot be trusted. I knew that that means the key corresponding to the security certifcate netflix is using is not present in the tablet's key database.

 I suspected this may also have to do with the netflix app error (13001). I googled around for sometime to find how to update the tablet's security key database. I came across this howto:

 http://wiki.cacert.org/FAQ/ImportRootCert?action=show&redirect=ImportRootCert#Android_Phones

 It was clear android 2.2 has no way of updating the key store. To use the method in the how to you need to root the device. And that is what I did. To root the device I followed:
 http://forum.xda-developers.com/showthread.php?t=1483954

Netflix is using a certificate issued by GeoTrust DV SSL CA . I downloaded all the regular (not the application specific ones) root certificate files from :
http://www.geotrust.com/resources/root-certificates/

You also need to install android sdk on your computer for the adb shell to communicate with the tablet. I use ubuntu on my computer. So I followed :
 http://forum.xda-developers.com/showthread.php?t=921169

 Android 2.2 stores the certificate keys in a file /system/etc/security/cacerts.bks which is read-only normally. To modify it you need root permission and hence the need for rooting.

You can pull the file from your computer by an adb pull as explained in the howto. I also needed to convert the downloaded security files to the der format. Now you have to insert the new key files to the cacerts.bks using the keytool command and the updated cacerts.bks need to be sent to the tablet using a adb push command.

Before the adb push you need to remount the /system partition in read-write mode and change the permissions on the security folder from the adb shell. Once the new cacerts.bks is installed (copied) in the tablet it need to be rebooted. After that the app worked fine and no more security error messages while netflix.com from the browser.


While remounting the system partition in read-write mode you may need device name in TC-970 viz /dev/block/mtdblock3 . The adb shell command is: mount -o rw,remount /dev/block/mtdblock3 /system Hope it helps somebody.

It seems to me that, for netflix to fix it google needs to send an update to android 2.2 . It is also possible that netflix hasn't figured out the what is causing the problem. 

 Arun

1 comment:

ed medication said...

I like it when folks come together and share views. Great site, continue the good work!