MTK平台如何添加SUPL证书

最近公司基于MTK平台启动了一个新项目,主要销往海外,需要配置一下海外的运营商SUPL证书,在此记录下配置流程

发布日期 2021-07-03

前言

最近公司基于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配置的整个流程就完了,总体来说也不是特别复杂。