Android内置证书文件

将证书文件内置到Android系统内部使其受信任,Android从7.0开始用户证书就不受信任了,这就导致抓包的过程中HTTPS无法解密,这一章我们来学习如何内置证书文件(这里以系统源码Android 9.0,pixel一代为例)。

一、环境准备

(1) Android系统源码编译环境
(2) 开发环境(SubLime Text3)

二、概述

这章主要涉及到证书的提取、证书的导入(内置),首先我们了解一些小知识,如下表
(1)Android手机内部目录

目录描述
用户证书目录/data/misc/user/0/cacerts-added/
系统证书目录/system/etc/security/cacerts

(2)Android系统源码目录

目录描述
系统证书目录/aosp/system/ca-certificates/files
系统证书目录/aosp/system/ca-certificates/google/files

二、提取证书

.pem/.cer证书文件转为.0证书文件,这里有两种方法。
(1)将证书安装到手机上,再将.0证书文件进行导出

adb pull /data/misc/user/0/cacerts-added/xxxx.0  #提取证书

(2)使用openssl将证书转为.0证书文件
a. 获取证书文件的哈希值

#cer证书文件
openssl x509 -inform DER -subject_hash_old -in xxxx.cer
#pem证书文件
openssl x509 -inform PEM -subject_hash_old -in xxxx.pem

在这里插入图片描述
b. 生成.0证书文件

#cer证书文件
openssl x509 -inform DER -text -in xxxx.cer > 哈希值.0
#pem证书文件
openssl x509 -inform PEM -text -in xxxx.pem > 哈希值.0

在这里插入图片描述

三、内置证书

.0证书文件导入到android源码目录(/aosp/system/ca-certificates/files

cp xxxx.0 /aosp/system/ca-certificates/files

四、编译

source build/envsetup.sh
lunch 47  #以自己的设备为准
make -j32  #以自己电脑性能适当调整数字

asjhan for Android reverse

posted @ 2021-07-20 20:26  asjhan  阅读(166)  评论(0编辑  收藏  举报  来源