Не удается получить доступ к DrmEngines для Android

Я использую DrmManagerClient для получения доступных DRMengines следующим образом:

DrmManagerClient mDrmManager = new DrmManagerClient(context);
   String[] engines = mDrmManager.getAvailableDrmEngines();

С некоторыми устройствами, такими как huawei или honor, getAvailableDrmEngines возвращается 0 но устройство может поддерживать Widevine, потому что я протестировал его с помощью приложения DRM Info. Что я сделал не так или что я пропустил?

0 ответов

Возможно, ваше устройство не поддерживает классический DRM API. Может быть, попробуйте с новым API MediaDrm.

Я не пробовал это сам, но я ожидаю, что Widevine L1 должен вернуть 6 (по умолчанию) или SECURITY_LEVEL_HW_SECURE_ALL, а L3 должен сообщить SECURITY_LEVEL_SW_SECURE_DECODE или SECURITY_LEVEL_SW_SECURE_CRYPTO.

Возвращенные значения могут измениться, но вы поняли идею.

Widevine L3 против Widevine L1:

  • L1: все операции по обработке контента и криптографии обрабатываются в среде Trusted Execution Environment (TEE)
  • L2: внутри TEE обрабатываются только криптографические операции
  • L3: операции по обработке контента и криптографии (преднамеренно) обрабатываются вне TEE, или устройство не поддерживает TEE.
Другие вопросы по тегам