How do you get a list of DRM plug-ins (agents) installed on the device?

The documentation for the Android DRM package says: "Common applications of the DRM API include ... Determining which DRM plugins (agents) are installed on the device."

The only method I can find in the DRM package for this is DrmManagerClient.getAvailableDrmEngines () . This method works in the sense that it returns a string array containing the names of DRM agents. This is what is indicated above in determining which plugins are installed, refers to?

However, this list, at least in some cases, completely contradicts the results of the newer method MediaDrm.isCryptoSchemeSupported () , which is in the package android.Media.

Examples:

HTC Desire 550 is running Android 7:

  • getAvailableDrmEngines():
    • DRW plugin for Playready
    • DriveActivator Plugin
    • MirrorLink Plugin
    • OMA HTC
  • isCryptoSchemeSupported():
    • Common PSSH / CENC
    • Widevine

Samsung SM-G870A is running Android 5.1.1:

  • getAvailableDrmEngines():
    • Widescreen DRM Plugin
    • Direct Lock OMA V1
    • (empty plugin name)
    • Firmware plugin
    • TZ Playready plugin
  • isCryptoSchemeSupported():
    • Common PSSH / CENC
    • Widevine

One developer who has a very popular DRM tool in the Google Play store kindly told me that he would consider an approach DrmManagerClientthat is obsolete / not commonly used.

MediaDrm.isCryptoSchemeSupported(), , , API 18 . MediaDrm //; , . UUID DASHIF . , , .

:

() DRM, ?

, , :

  • , DrmManagerClient.getAvailableDrmEngines() - ?
  • DrmManagerClient.getAvailableDrmEngines(), , ? ​​ Android?
    • , " " ( ) DRM-/? , DRM , , , . ( MediaDrm , " DRM" "" : " DRM- UUID, , UUID MediaDrm, DRM, . 16- UUID. isCryptoSchemeSupported (UUID) , ." ) , , HTC WideVine WideVine DRM?
  • DrmManagerClient.getAvailableDrmEngines() , , UUID, ?
+4
source share

Source: https://habr.com/ru/post/1692989/


All Articles