广告
返回顶部
首页 > 资讯 > 移动开发 >Android证书安装过程介绍
  • 386
分享到

Android证书安装过程介绍

2024-04-02 19:04:59 386人浏览 薄情痞子
摘要

目录一.证书在源码中的路径二.证书在固件中的路径三.手动安装流程四.c层五.为什么要锁屏密码一.证书在源码中的路径 5.1系统证书(命名是 openssl x509 -subject

一.证书在源码中的路径

5.1系统证书(命名是 openssl x509 -subject_hash_old -in filename)

libcore/luni/src/main/files/cacerts

7.1及以后系统证书

/system/ca-certificates/files

二.证书在固件中的路径

/system/etc/security/cacerts

三.手动安装流程

设置-->安全-->从SD卡安装证书:

AndroidManif.xml里


<Preference android:key="credentials_install"
        android:title="@string/credentials_install"
        android:summary="@string/credentials_install_summary"
        android:persistent="false">
    <intent android:action="android.credentials.INSTALL"
            android:targetPackage="com.android.certinstaller"
            android:targetClass="com.android.certinstaller.CertInstallerMain"/>
</Preference>

packages/apps/CertInstaller

CertInstallerMain打开Document,选择证书文件,选择好后。启动CerInstaller

然后根据证书类型区分createPkcs12PassWordDialog和createNameCredentialDialog,看个简单的createNameCredentialDialog


try {
    startActivityForResult(
            mCredentials.createSystemInstallIntent(),   //Intent intent = new Intent("com.android.credentials.INSTALL");
            REQUEST_SYSTEM_INSTALL_CODE);
} catch (ActivityNotFoundException e) {
    Log.w(TAG, "systemInstall(): " + e);
    toastErrorAndFinish(R.string.cert_not_saved);
}

看intent,又到了Settings的CredentialStorage

Settings/src/com/android/settings/CredentialStorage.java    installIfAvailable

添加证书:Settings/src/com/android/settings/CredentialStorage.java    installIfAvailable()

删除证书:Settings/src/com/android/settings/TrustedCredentialsSettings.java   AliasOperation#doInBackground

显示证书:Settings/src/com/android/settings/TrustedCredentialsSettings.java   AdapterData#AliasLoader#doInBackground   

证书内容:Settings/src/com/android/settings/TrustedCredentialsSettings.java  CertHolder  SslCertificate

安装类型两种: userKey和Ca证书(pk12要处理密码)

CertInstaller\src\com\android\certinstaller\CredentialHelper.java

异常码:

机器未设置密码锁

机器未解锁

锁屏方式不符合要求还是packages/apps/CertInstaller/CertInstallerMain,startActivityForResult结果回调


if (requestCode == REQUEST_SYSTEM_INSTALL_CODE) {
    if (resultCode == RESULT_OK) {
        Log.d(TAG, "credential is added: " + mCredentials.getName());
        Toast.makeText(this, getString(R.string.cert_is_added,
                mCredentials.getName()), Toast.LENGTH_LONG).show();
 
        if (mCredentials.hasCaCerts()) {
            // more work to do, don't finish just yet
            new InstallCaCertsToKeyChainTask().execute();
            return;
        }
        setResult(RESULT_OK);
    } else {
        Log.d(TAG, "credential not saved, err: " + resultCode);
        toastErrorAndFinish(R.string.cert_not_saved);
    }
}

如果是CaCerts,还要进行 new InstallCaCertsToKeyChainTask().execute() --> mCredentials.installCaCertsToKeyChain --> keyChainService.installCaCertificate

keyChainService实现在packages/apps/KeyChain  mTrustedCertificateStore.installCertificate

external/conscrypt/src/platfORM/java/org/conscrypt/TrustedCertificateStore   installCertificate --> writeCertificate

四.c层

system/security/keystore/keystore.cpp

添加证书  installIfAvailable -> mKeyStore.put -> mBinder.insert (这里还是java层)
-> KeyStoreProxy::insert -> KeyStore::put  (这里getEncryptionKey用到一个AESkey,哪里来的?)

五.为什么要锁屏密码

以设置密码为例
Settings/src/com/android/settings/ChooseLockPassword.java  mLockPatternUtils.saveLockPassword
frameworks/base/core/java/com/android/internal/widget/LockPatternUtils.java  getLockSettings().setLockPassword
frameworks/base/services/core/java/com/android/server/LockSettingsService.java  setLockPassword -> maybeUpdateKeystore  -> ks.passwordUid
-> 到keystore.cpp的password_uid 

password_uid 有三种状态,其中STATE_UNINITIALIZED和STATE_LOCKED都会调用setupMasterKeys,经锁屏密码设置AESkey
这里就解答了添加证书时的AESKey是哪来的

这个是基于Android5.1分析的,高版本可能文件名不同,但是知道大概位置,搜索下,应该没什么难度        

到此这篇关于Android证书安装过程介绍的文章就介绍到这了,更多相关Android证书安装内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android证书安装过程介绍

本文链接: https://www.lsjlt.com/news/159450.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android证书安装过程介绍
    目录一.证书在源码中的路径二.证书在固件中的路径三.手动安装流程四.c层五.为什么要锁屏密码一.证书在源码中的路径 5.1系统证书(命名是 openssl x509 -subject...
    99+
    2022-11-12
  • Nginx下SSL证书安装部署步骤介绍
    目录问题描述:安装步骤1.准备工作2.远程连接服务器3.拷贝证书和私钥文件4.编辑 Nginx 根目录下的 conf/nginx.conf 文件5.在 Nginx 根目录下,通过执行...
    99+
    2022-11-12
  • XpmJS的介绍以及安装过程
    XpmJS的介绍以及安装过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、XpmJS 是啥XpmJS可以链接任何云端资源,为小程序、移动应用提供云资源通道和后端能力。降...
    99+
    2023-06-19
  • php安装redis扩展过程介绍
    目录一、下载扩展包二、解压安装包三、 编译四、配置五、make编译六、安装位置七、查询php配置文件位置八、添加redis扩展九、是否安装成功一、下载扩展包 命令  cd /us...
    99+
    2022-11-12
  • linux环境下安装mysql8.0过程介绍
    目录前言一、linux更改yum源(如果MYSQL安装慢可以试)二、版本三、安装四、查看临时密码五、配置外网可以访问六、测试七、 数据库卸载八、 问题总结前言 借助同事写得笔记和自己...
    99+
    2022-11-12
  • centos安装mysql数据库的过程介绍
    本篇内容主要讲解“centos安装mysql数据库的过程介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“centos安装mysql数据库的过程介绍”吧!首先下载MySQL的安装文件,我这里安装...
    99+
    2023-06-10
  • 如何安装安卓(Android 7.0+)CA根证书
    简介 写这个教程时,已经是2023年,现在最新的安卓系已经是Android 13 。从Android7.0以后系统不再信任用户的证书,导致我们在使用一些网络调试工具时非常不便,为了解决这个问题,本教程将教你如何一步步操作,将用户级别的CA证...
    99+
    2023-09-01
    android adb android模拟器
  • phpStudy安装ssl证书教程
    这篇文章主要介绍“phpStudy安装ssl证书教程”,在日常操作中,相信很多人在phpStudy安装ssl证书教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”phpStudy安装ssl证书教程”的疑惑有所...
    99+
    2023-06-04
  • 详细介绍GitLab的安装和配置过程
    在当今的软件开发领域,版本控制是一项非常重要的工作,而Git是这个领域中最为流行的版本控制系统之一。但是,为了更好地管理自己的项目,还需要搭建一套Git服务器来进行代码的提交和管理。其中,GitLab就是一个极好的选择。本文将详细介绍Git...
    99+
    2023-10-22
  • pycocotools介绍以及在windows10下的安装过程
    目录前言pycocotools库的介绍pycocotools库的安装pycocotools安装失败 compiler_compat/ld项目场景问题描述原因分析解决方案总结前言 最近...
    99+
    2023-02-22
    pycocotools介绍 windows10下安装pycocotools pycocotools安装
  • Android证书安装的方法是什么
    这篇文章主要介绍“Android证书安装的方法是什么”,在日常操作中,相信很多人在Android证书安装的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android证书安装的方法是什么”的疑惑有所...
    99+
    2023-06-21
  • oracle11g 最终版本11.2.0.4安装详细过程介绍
     --安装背景 上次碰到问题,cursor:mutex S导致的load过高, 有说可以升级到11.2.0.4就能避免这种问题,所以准备重新搭建新版本11.2.0.4。 安装环境是:az...
    99+
    2022-10-18
  • Python 通过pip安装Django详细介绍
    Python 通过pip安装Django详细介绍 经过前面的 Python 包管理工具的学习,接下来我们就要基于前面的知识,来配置 Django 的开发与运行环境。 首先是安装 Django(通过pip安装...
    99+
    2022-06-04
    详细介绍 Python pip
  • IIS6多域名证书安装教程
    这篇文章主要讲解了“IIS6多域名证书安装教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“IIS6多域名证书安装教程”吧!IIS6 多域名证书安装 – HTTPS SSL 教程第一步先给一...
    99+
    2023-06-04
  • Tomcat 安装SSL证书 – HTTPS SSL 教程
    Tomcat 安装SSL证书 – HTTPS SSL 教程Tomcat 安装SSL证书第一步: 进入Tomcat安装目录, d:/apache-tomcat-8.0.18, 把下载的jks文件放在tomcat安装目录即可。d:/apache...
    99+
    2023-06-04
  • android 9PNG图片制作过程(图文介绍)
    在android开发的过程中我们经常因为没有好的美工图片失真,这样使界面看起来要逊色很多,有的时候可能我们会想在drawable-hdpi,ldpi,mdpi下放不同分辨率的图...
    99+
    2022-06-06
    png图片 png Android
  • Tushare介绍、安装及使用教程
            本人是一个二本大数据的学生,想未来从事数据分析师的岗位。虽然说路漫漫道阻且长,但是我还是想跟大家分享一下平时做一些数据分析喜欢用的数据源,如果大家看完我的文章后,有什么不好的地方欢迎大家在评论区写下宝贵的意见,我看到都会积极...
    99+
    2023-10-08
    python
  • 各种Python库安装包下载地址与安装过程详细介绍(Windows版)
    在用Python开发时(Windows环境),会碰到需要安装某个版本的第三方库,为了以后查找、安装方便,总结如下: windows版的各种Python库安装包下载地址: http://www.lfd.uci...
    99+
    2022-06-04
    下载地址 详细介绍 安装过程
  • Android Spider Fiddler - 夜神模拟器证书安装App抓包
    文章目录 前言一、软件安装1.Openssl安装1.1下载安装1.2配置环境变量1.3查看openssl版本,输入命令:openssl version 2.夜神模拟器安装1.1 下载...
    99+
    2023-09-04
    fiddler https 爬虫 抓包 App抓包
  • Windows环境下Nginx 服务器 SSL 证书安装部署操作过程
    目录操作场景Nginx 类型的服务器证书压缩包拷贝证书文件和私钥文件修改 nginx.conf 配置检查并重启 Nginx 服务操作场景 本文档指导您如何在Windows Nginx...
    99+
    2022-11-13
    nginx 服务器 SSL 证书安装部署 nginx 服务器 SSL 证书部署 nginx SSL 证书安装
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作