在使用Android KitKat之前,您必须在设备上安装根目录才能安装新证书.
这是可能的,而且很容易.我能够在我的非根设备上安装Charles Web Debbuging代理证书,并成功地嗅探SSL流量.
从http://wiki.cacert.org/FAQ/ImportRootCert中提取
在Android版本4.0之前,对于Android版本的姜饼&;Froyo,只有一个只读文件(/system/etc/security/cacerts.bks)包含信任存储区,其中包含Android默认信任的所有CA(‘SYSTEM’)证书.无论是系统应用程序还是使用Android SDK开发的所有应用程序都使用此功能.使用这些说明在Android姜饼,Froyo,.上安装CAcert证书
从Android 4.0(Android ICS/‘Ice Cream Sandwich’,Android 4.3‘Jelly Bean’&;Android 4.4‘KitKat’)开始,系统可信证书作为单独文件出现在文件夹‘/system/etc/security/’中的(只读)系统分区上.但是,用户现在可以轻松地添加他们自己的"用户"证书,这些证书将存储在"/data/misc/keychain/certs-add"中.
系统安装的证书可以在Android设备上的设置中进行管理->;安全性->;证书->;'而用户信任证书则在"用户"部分进行管理.当使用用户信任的证书时,Android将强制Android设备的用户实施额外的安全措施:当使用用户提供的证书时,必须使用PIN码、模式锁或密码来解锁设备.
将CAcert证书安装为"用户信任"证书非常容易.将新证书安装为"系统可信"-证书需要更多的工作(并且需要root访问),但它的优点是避免了Android锁屏要求.
From Android N (7.0) onwards它变得更难了,请看下面这段摘录的Charles proxy website条:
从Android N开始,你需要在应用程序中添加配置,以便
要将应用程序配置为信任Charles,您需要添加
添加一个文件res/xml/network\u security\u config.将xml添加到应用程序:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
然后在应用程序 list 中添加对此文件的引用,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>