Перед Android KitKat вам доведеться викорінити свій пристрій, щоб встановити нові сертифікати.
Від Android KitKat (4.0) до Nougat (7.0) це можливо і просто. Мені вдалося встановити сервер Charles Debbuging Proxy на моєму не вкоріненому пристрої та успішно обнюхати трафік SSL.
Витяг з http://wiki.cacert.org/FAQ/ImportRootCert
До версії Android 4.0 з версією Android Gingerbread & Froyo існував єдиний файл, доступний лише для читання (/system/etc/security/cacerts.bks), що містить довірений магазин із усіма сертифікатами CA ('system'), яким за замовчуванням довіряється Android. Це використовують як системні програми, так і всі програми, розроблені за допомогою SDK для Android. Скористайтеся цими інструкціями щодо встановлення сертифікатів CAcert на Android Gingerbread, Froyo, ...
Починаючи з Android 4.0 (Android ICS / 'Сандвіч з морозивом', Android 4.3 'Jelly Bean' та Android 4.4 'KitKat'), системні довірені сертифікати знаходяться на (тільки для читання) системному розділі в папці '/ system / тощо / безпеки / 'як окремі файли. Однак тепер користувачі можуть легко додати власні сертифікати "користувача", які зберігатимуться у "/ data / misc / keychain / certs-додано".
Встановленими системою сертифікатами можна керувати на пристрої Android у розділі "Налаштування -> Безпека -> Сертифікати ->" Система ", тоді як користувацькі довірені сертифікати керуються у розділі" Користувач ". Використовуючи довірені сертифікати користувача, Android змусить користувача пристрою Android виконувати додаткові заходи безпеки: використання PIN-коду, блокування зразка або пароль для розблокування пристрою є обов'язковими при використанні сертифікатів, що надаються користувачем.
Встановити сертифікати CAcert як сертифікати "довірені користувачеві" дуже просто. Встановлення нових сертифікатів як «системних довірених» сертифікатів вимагає більше роботи (і вимагає кореневого доступу), але це має перевагу уникнути вимоги блокувального екрану Android.
З Android N далі стає трохи складніше, дивіться цей витяг із веб-сайту проксі Charles :
Що стосується Android N, вам потрібно додати конфігурацію до свого додатка, щоб він довіряв сертифікатам SSL, згенерованим Charles SSL Proxying. Це означає, що ви можете використовувати SSL Proxying лише з програмами, якими ви керуєте.
Для того, щоб налаштувати ваш додаток на довіру Чарльзу, вам потрібно додати в нього файл файлу налаштування безпеки. Цей файл може змінити системний стандарт за замовчуванням, що дозволяє вашій програмі довіряти встановленим користувачем сертифікатами CA (наприклад, сертифікат Charles Root). Ви можете вказати, що це стосується лише налагоджувальних версій вашої програми, так що виробничі збірки використовують профіль довіри за замовчуванням.
Додайте у свою програму файл res / xml / network_security_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>
Потім додайте посилання на цей файл у маніфест вашої програми таким чином:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>