Sometimes you need widevine keys/device for whatever reason, like dumping content from your streaming service.

Install android studio by whatever means necessary#

Prepare a virtual device#

  • create new device in device manager
  • choose Pixel 4 XL
  • install API 34 and select Google APIs Intel x86_64 Atom System Image

Prepare host and host software#

mkdir keydive && cd keydive
python3 -m venv .venv keydive && .venv/bin/activate
pip install frida frida-tools keydive

Download or build frida server apk#

git checkout https://github.com/frida/frida.git
wget https://github.com/frida/frida/releases/download/17.24.3/frida-server-17.24.3-android-x86_64.xz

Launch the android virtual device from studio#

Check that emulator is visible to adb#

adb devices

Run frida-server on virtual device#

adb root
adb push frida-server-17.24.3-android-x86_64 /data/local/tmp/
adb shell
cd /data/local/tmp/
chmod 750 frida*
./frida-server-17.24.3-android-x86_64

Run keydumper in python venv (keydive)#

keydive -kw -a player

Proper startup looks like this: startup

Activate DRM test app in emulator#

Click on bottom right buttom and select “Test DRM playback”

Magic will happen and keys will be extracted to keydive console