当点击Wi-Fi Settings, Advanced界面的“安装证书”;或者在Settings的Security界面下的CredentialStorage界面点击“安装证书”。com.android.certinstaller包中的CertInstallerMain类会收到Settings发送的Credentials.INSTALL_AS_USER_ACTION intent。

然后,CertInstallerMain类开始创建一个线程,并开始run。在run中,因为收到了Credentials.INSTALL_AS_USER_ACTION intent, CertInstallerMain开始判断SD卡是否存在,这里,我们将证书都push到SD卡里了,SD卡当然是存在的。这种情况下,CertInstallerMain类通过其继承的CertFile类开始读取卡里的所有证书文件。CertFile类读取证书的过程很简单:它把自己设置成了一个FileFilter,在accept方法中,CertFile只接收后缀为Credentials.EXTENSION_CRT, Credentials.EXTENSION_P12, Credentials.EXTENSION_CER, Credentials.EXTENSION_PFX的文件。也就是说当前,Android只支持后缀为crt, p12,cer和pfx的数字证书。

接着,当SD卡里只有一个证书的时候它弹出一个安装提示框,当SD卡里有一堆证书的时候,它会弹出一个证书列表,这个列表由CertFileList类维护,放点击某个证书的时候,会和当SD卡里只有一个证书的时候一样,调用installFromFile方法,弹出一个对话框。CertFile类的install方法会通知CertInstaller来负责证书的安装。

CertFile类对p12证书和其它证书进行了分类,要是p12证书,我给个对话框,输入完密码就OK了。我这里,还使用了WIFI WAP需要的CA证书进行测试。对于CA证书,当点击弹出对话框的“确认”对应的按钮后,它会通过CredentialHelper类建立一个com.android.credentials.INSTALL intent发给com.android.settings.CredentialStorage类。当CertInstaller类启动后它会直接创建一个CredentialHelper类,CredentialHelper类就直接将安装的证书分类成CA和USER,所以当点击“确认”后,CredentialHelper会将CA证书的信息通过Credentials.EXTRA_CA_CERTIFICATES_NAME和Credentials.EXTRA_CA_CERTIFICATES_DATA放到com.android.credentials.INSTALL的intent中。

最后,Settings收到了这个intent,通过installIfAvailable()方法,将CA证书的信息保存到了KeyStore中。然后,Settings可以通过KeyStore来读取保存的证书。

取消

评论

android crt证书,如何在android手机安装数字证书 crt和p12相关推荐

  1. [681]小米手机安装charles证书,提示“没有可安装的证书”

    相信很多开发和测试人员在工作过程中都会用到抓包工具,我平时习惯用charles抓包.所以这里主要讲charles证书问题. 在给手机设置完代理后,需要安装证书才能抓包.大部分手机都可以直接在浏览器中输 ...

  2. android在java下建立模块,Android Studio:如何在Android模块中包含Java模块?

    在Android工作室我有一个Android模块,我们称之为MyAndroid.我还有一个Java模块(不是独立的JAR,而是模块中的完整Java项目),我们称之为MyJava.Android Stu ...

  3. 小米手机安装Charles证书

    小米手机安装Charles证书 确保电脑已经配置好 更改手机所连接Wi-Fi主机名(电脑IP)和端口(8888) 用UC浏览器(自带浏览器

  4. Windows 10 下支付宝无法安装数字证书解决方法

    正常登录进支付宝,会提示你不支持当前环境 其实是支付宝的 BUG,我们换个地方安装就可以搞定了 另外,最好别用新版的 Chrome(谷歌浏览器) 用 32 位的 IE 或者 360 浏览器等是可以的 ...

  5. 【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程

    以下教程可能耗费你数小时时间,请注意时间. 目标:抓取HTTPS的包 如果你的手机是在Android 7.0+及其以上,想要抓取HTTPS的请求,必须要将证书(*.pem)用系统用户的权限安装,即把这 ...

  6. 青花瓷抓包工具如何对Android手机https请求抓包及华为手机安装Charles证书方法详解!

    网上搜索了很多文档,这两篇是写的比较全面的,整个流程看完,你就会安装使用了! 参考:windows下使用Charles工具如何对android手机https请求进行抓包 参考:Android安装Cha ...

  7. android charles 证书_手机安装Charles证书

    安装步骤: 1.cmd-->IPCONFIG,查看ipv4地址 2.proxy-->SSL proxying settings-->SSL proxying 3.配置端口号:prox ...

  8. 小米手机安装 charles 证书,提示“没有可安装的证书”

    错误环境: 1. Mac 下的 charles 2. 小米手机(MI 6 MUI 9.6 ,Android 8.x) 错误提示: 安装 charles 证书时,提示"没有可安装的证书&quo ...

  9. 实现手机安装根证书(系统证书)和使用drony 解决普通代理部分应用不能抓包的问题

    说明 Android证书分为"用户证书"和"系统证书"两种,在设置->安全->"查看安全证书"列表中,可以看到"系统& ...

最新文章

  1. 关于设计模式的一次聊天
  2. 嵌套 思维导图_工作小Tips:如何用思维导图来整理你的汇报
  3. java if语句选择题_选择语句(if else) 习题(2017/12/1)
  4. 关键字static、const、volatile的作用
  5. NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理
  6. python学习-综合练习二(整数和浮点数判断奇偶、质数判断)
  7. pcl_openmap_OpenMap教程5 – 3层GIS应用程序
  8. 史上最强虎妈:她是一介农妇,17岁嫁给50岁老头,23岁守寡,却养出35个博士...
  9. springboot 通过url访问本地文件
  10. mysql @符号_MySQL 数值类型
  11. css几个居中的方法
  12. 数据分析师是做什么的?数据分析师岗位职责
  13. 人工智能、大数据和云计算之间,它们之间主要有什么关系?
  14. 北大计算机辅助翻译专业考研,【最新权威版】2019年北京大学计算机辅助翻译CAT考研难度解析—报录比...
  15. PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization论文笔记
  16. 近端梯度法(proximal gradient)
  17. 程序员分享:最近面试 Java 后端开发的感受
  18. 科研热点|警惕!10月WOS数据库更新,这2本期刊被剔除SCI~
  19. 1688商品详情API接口(1688商品信息查询接口)
  20. 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现...

热门文章

  1. sscom5.13.1 串口调试工具下载
  2. Python数据分析第十二课:单变量、双变量及多变量分析图
  3. 机器学习之必备知识篇
  4. 1354柯南的变声蝴蝶结
  5. 解析全国省市区Json数据
  6. 如何使用html代码给文字加边框?
  7. 省市县三级联动数据库
  8. 5个测试Vue.js程序的有用工具和库
  9. 用友二次开发之总账自定义结转
  10. Linux安装Mysql完整步骤