Установка сертификата через ADB

Если по какой-то причине вы не можете установить сертификат на Android устройство через пользовательский интерфейс, это можно сделать через ADB.

Подробнее про ADB можно узнать тут.

Установка

Создайте файл со скриптом следующего содержания. Или скачайте из нашего репозитория.

#!/bin/bash

# path to PEM or CRT file
IN="/path-to-cert/file.crt"

OUT="$(openssl x509 -inform PEM -subject_hash_old -in $IN | head -1).0"
cat $IN > $OUT
openssl x509 -inform PEM -text -in $IN -out /dev/null >> $OUT

# adb root
# adb shell mount -o remount,rw /system
# adb shell mount -o rw,remount,rw /system
adb remount

adb push $OUT /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/$OUT
adb reboot

rm $OUT

В файле укажите свой путь до PEM или CRT сертификата. Если у вас сертификат CER, его необходимо предварительно конвертировать.

openssl x509 -inform DER -in ssl_certificate.cer -out ssl_certificate.crt

Возможно для записи сертификата на устройство понадобиться root, в таком случае раскомментируйте в скрипте соответствующую строку.

В зависимости от вашего устройства / системы, возможно вместо adb remount придется указать одну из следующих команд.

adb shell mount -o remount,rw /system
или
adb shell mount -o rw,remount,rw /system

Далее сделайте скрипт исполняемым.

chmod +x '/path-to-script/cert-install.sh'

Затем подключитесь к устройству по ADB и запустите скрипт.

cert-install.sh

При успешном завершении в консоль будет выведено сообщение примерно следующего содержания.

remount succeeded
4c3ca1db.0: 1 file pushed. 0.4 MB/s (6918 bytes in 0.018s)

Отсутствие ошибок в консоли будет свидетельствовать от том, что сертификат успешно установлен, затем устройство перезагрузится.

Ссылки

Обсуждение на Stack Overflow
Еще один пример установки сертификатов

На этом всё. Но вы можете помочь проекту. Обещаю писать больше полезных статей.

А если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.