解决Android7以上Charles抓包Unkown

小米MIUI10升级至MIUI11,发现之前能够抓包的Charles无法抓包,显示unknown,后来经过研究发现在Android 7以上部分机型会出现这种问题,目测应该是Android对权限进一部进行了把控,后经过几篇文章发现了解决办法,现告知于大家,该方法必须拥有root权限

准备工作

获取证书hash值并命名

1
openssl x509 -subject_hash_old -in <pem证书>

获取到hash值并将其命名为 hash.0

将 hash.0 证书放至系统证书目录

Android 系统证书目录:/system/etc/security/cacerts/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1. adb devices
//判断手机是否链接,手机需要开启开发者模式 USB调试

2. adb push hash.0 /sdcard/
//这一步的意思是将证书拷贝到系统存储目录下,也可以手动拷贝

3. adb shell
//进入安卓shell

4. su
//切换至root用户

5. mv /sdcard/hash.0 /system/etc/security/cacerts/
//将证书移动至系统证书目录下
//这一步可能会报权限错误
//原因是没有权限,解决方案是 root用户下,执行 mount -o rw,remount /system

6. chmod 644 hash.0
//这一步是给证书权限

7. chown :root hash.0
//这一步是将文件所有组 改为root

8. reboot
//重启手机

打开手机,系统设置–>更多设置–>系统安全–>信任的凭据

检查是否配置成功

抓包成功

参考文章:

  • 本文作者: Ysc Test
  • 本文链接: https://ysctest.cn/posts/5a351f0c.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 法律声明: 本博客提供的所有包括但不限于(文章和API)等服务,仅用于学习,技术分享、交流。不得用于违法犯罪、损害国家利益。非法使用者本站不承担任何法律责任,并且本站保留追究其法律责任的权力!!!