2

The entry page of Android's DRM documentation [1] says that Android provides a DrmManagerClient-native implementation as the interface to native modules. From what I can tell, the interface is DrmManagerClient.h [2].

When it comes to the Java API, it's clearly stated that only API level 18 and higher supports the modular version of Widevine. API 18 introduced the MediaDrm class, while the NDK contains a NativeMediaDrm.h from API level 21 on. Newer Androids comes with "libwvdrmengine.so" and "libwvm.so", which could be one library for WV modular and one for WV classic. An Internet search shows libwvm.so being used on Android 4.0.4 and later.

Which Android-versions support Widevine-modular in DrmManagerClient-native?

[1] https://source.android.com/devices/drm.html

[2] android/platform/frameworks/av/include/drm/DrmManagerClient.h

Per Christian Henden
  • 1,514
  • 1
  • 16
  • 26

1 Answers1

1

I wouldn't put so much trust on documentation. For example, it's 6 years they still have to adjust it to reflect commit 0a32d7981b98fdfca48a1e35ca746f1cc11849d3.

Anyway, Widevine-classic was actually introduced in 3.0, but aside of the changes for the introduction of modularity you mention in 4.3, I'm not aware of any other special trick.

According to this the libraries you are talking about are not to be considered "separated". My educate guess is that after Stagefright they just "compartmentalized" everything involved with media reproduction as much as possible, even DRM. But WV is still only two paths.

mirh
  • 514
  • 8
  • 14