Не удается установить сертификат ЦС на Android 11

В предварительной версии Android 11 при попытке установить сертификат CA возникла ошибка:

Intent intent = new Intent("android.credentials.INSTALL");
intent.putExtra("name", getCertName());
intent.putExtra("CERT", getCert());
startActivity(intent);

Сообщение об ошибке:

Не удается установить сертификаты ЦС

Сертификаты CA могут поставить под угрозу вашу конфиденциальность и должны быть установлены в настройках.

Я не нашел ничего об этом изменении в документации Android. Есть идеи? Какие-либо обходные пути (кроме установки вручную из настроек)?

ОБНОВЛЕНИЕ (28/4):

Обнаружена ошибка в Issuetracker: https://issuetracker.google.com/issues/151858120

2 ответа

Решение

Там крошечная заметка об этом на предприятии список изменений Android 11 здесь, в котором говорится:

Примечание. Приложения, установленные на неуправляемых устройствах или в личном профиле устройства, больше не могут устанавливать сертификаты ЦС с помощью createInstallIntent(). Вместо этого пользователи должны вручную установить сертификаты CA в настройках.

Похоже, это сделано намеренно, и вы не сможете обойти это на обычных неуправляемых устройствах. Вам нужно либо изучить полное управление устройством Android, либо вместо этого предоставить пользователям инструкции по настройке вручную.

Я тоже столкнулся с той же проблемой.

Пожалуйста, выполните следующие действия в Android 11 или 11+.

В Android 11 для установки сертификата ЦС пользователям необходимо вручную:

  1. Открыть настройки устройства
  2. Перейдите в "Безопасность"
  3. Перейдите в "Шифрование и учетные данные"
  4. Перейдите в «Установить из хранилища» или «Установить сертификат» (в зависимости от устройств).
  5. Выберите «Сертификат ЦС» из списка доступных типов.
  6. Примите предупреждение.
  7. Найдите файл сертификата на устройстве и откройте его.
  8. Подтвердите установку сертификата
Другие вопросы по тегам