前言
最近公司基于MTK平台启动了一个新项目,主要销往海外,需要配置一下海外的运营商SUPL证书,(不知道SUPL是什么的同学可以自行百度,这里不多做介绍),每个平台的SUPL证书配置的方法都不一样,高通,展锐,MTK各有各的方法,之前没有接触过这一块,经过与MTK的沟通加上自己的摸索终于搞定了证书添加,在此做个记录,以备后用。
一,加密处理
MTK平台的SUPL证书是要经过加密处理后才能添加到项目里面,好在这个加密过程MTK已经给我们提供了相应的工具,我们只需要按照官方的指导运行脚本就行了,路径如下
main/android/vendor/mediatek/proprietary/frameworks/base/agps/certutil/gen_hash_name/host/linux-x86
从图中可以看出加密处理过程是调用 1_do_translate_in_linux.sh
这个脚本,加密的原始证书文件是放在CERT
这个文件夹里面的
我们可以看一下CERT文件夹里面的内容,放的全是证书文件
这里说明一下CERT.sample
文件夹中放置的是一些MTK默认的运营商的SUPL证书,类似中国移动,中国电信之类的,还有海外的一些大的运营商,运行脚本之后,会生成三个临时文件夹,0_der_md5
,0_pem_md5
,0_pem_sha1
。
我们需要的加密后的文件就在0_pem_md5
这个文件夹中,xxx.0文件
二,集成证书
生成加密文件后还没有完成,还要把文件放到指定的位置,这样编译项目的时候就会一块编译进去
main/android/vendor/mediatek/proprietary/frameworks/base/agps/certutil/files/cacerts_supl
三,使用证书
如果需要使用SUPL,那需要配置和SUPL有关的配置文件,配置文件的路径:
main/android/vendor/common/agps/agps_profiles_conf2.xml
如果需要根据插卡识别不同运营商的配置,需要先提前配置好agps_profiles_conf2.xml文件.
根据SIM信息去加载SUPL配置的原理:系统读取SIM卡的MNC和MCC信息,通过MNC和MCC信息去匹配agps_profiles_conf2.xml文件中对应的配置,匹配成功后拿来使用。
如果branch是R版之后,那SUPL的配置是在agps_profiles_conf2_carrier_XXX.xml中配置,路径如下
/device/mediatek/vendor/common/agps/carrier/
至此MTK平台的SUPL配置的整个流程就完了,总体来说也不是特别复杂。