Я нашел способ решения проблемы, но он требует root и может работать только с корневыми, самоподписанными или промежуточными CA.
Если у вас есть сертификат, которому Android не доверяет, при его добавлении он попадает в личный магазин сертификатов. Когда вы добавляете сертификат в это персональное хранилище сертификатов, системе требуется более высокий уровень безопасности для разблокировки устройства. Но если вам удастся добавить свой сертификат в системное хранилище, у вас нет этого требования. Очевидно, что root требуется для добавления сертификата в системное хранилище, но это довольно просто.
Вот как это сделать:
1 - Добавьте свой сертификат как обычно. Например, мой сертификат был назван some.crt
. Он будет храниться в вашем личном магазине, и Android попросит вас ввести PIN-код / пароль ... Продолжить.
2 - С файловым менеджером с корневыми возможностями, просматривайте файлы в /data/misc/keychain/cacerts-added
или /data/misc/keystore
. Здесь вы должны увидеть файл, который называется 1000_USRCERT_some
это сертификат, который вы добавили на шаге 1.
3 - Переместите этот файл в system/etc/security/cacerts
(вам нужно будет смонтировать системный раздел r / w)
4 - перезагрузить телефон
5 - Теперь вы можете удалить пин-код / пароль, которые вы установили для разблокировки устройства.
У меня работал самоподписанный сертификат на Android 4.4.2. Надеюсь, это поможет!