为Android2.2设备更新cacerts

这两天入手了一个Android2.2系统的全键盘设备,无奈浏览网页经常遇到无效证书问题,此时查看,发现是因为2.2系统自带的证书太旧,新的HTTPS网站证书都不支持。这个问题期初以为很好解决,不就是更换下证书么,估计替换下文件就好了。但是实际上没有这么简单。经过查找,发现Android2.2的根证书都在 /system/etc/security/cacerts.bks 这个文件包内,并不是直接可以添加的。这个文件如何修改呢?参照网上的文章,需要使用keytool来修改,还有人找出了android打包bks用的脚本在android代码库中的位置。所以这里就把google写的脚本下载下来,稍作修改,把android5.1上的根证书文件夹打包拷贝到本地,然后重新打包成cacerts.bks。重新读写挂载/system,把文件传到设备上,重启,不料每次浏览器都崩溃。什么原因呢? 使用adb logcat查看,发现说是keystore版本不对。查了下,果然是,我下载的bcprov是jdk15-154版本的,改成网友提示的jdk16-146版本,重新打包,挂载,传输,重启。完美解决~