<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cdm on Terminal</title><link>https://muisti.atk-neuvos.fi/tags/cdm/</link><description>Recent content in Cdm on Terminal</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 22 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://muisti.atk-neuvos.fi/tags/cdm/index.xml" rel="self" type="application/rss+xml"/><item><title>Dump your own L3 CDM</title><link>https://muisti.atk-neuvos.fi/posts/cdm/</link><pubDate>Thu, 22 Oct 2026 00:00:00 +0000</pubDate><guid>https://muisti.atk-neuvos.fi/posts/cdm/</guid><description>&lt;p&gt;Sometimes you need widevine keys/device for whatever reason, like dumping content from your streaming service.&lt;/p&gt;
&lt;h3 id="install-android-studio-by-whatever-means-necessary"&gt;Install android studio by whatever means necessary&lt;/h3&gt;
&lt;h3 id="prepare-a-virtual-device"&gt;Prepare a virtual device&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;create new device in device manager&lt;/li&gt;
&lt;li&gt;choose Pixel 4 XL&lt;/li&gt;
&lt;li&gt;install API 34 and select Google APIs Intel x86_64 Atom System Image&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="prepare-host-and-host-software"&gt;Prepare host and host software&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir keydive &amp;amp;&amp;amp; cd keydive
python3 -m venv .venv keydive &amp;amp;&amp;amp; .venv/bin/activate
pip install frida frida-tools keydive
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="download-or-build-frida-server-apk"&gt;Download or build frida server apk&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="launch-the-android-virtual-device-from-studio"&gt;Launch the android virtual device from studio&lt;/h3&gt;
&lt;h3 id="check-that-emulator-is-visible-to-adb"&gt;Check that emulator is visible to adb&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;adb devices
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="run-frida-server-on-virtual-device"&gt;Run frida-server on virtual device&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="run-keydumper-in-python-venv-keydive"&gt;Run keydumper in python venv (keydive)&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;keydive -kw -a player
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Proper startup looks like this:
&lt;img src="https://muisti.atk-neuvos.fi/posts/cdm/keydive.png" alt="startup"&gt;&lt;/p&gt;</description></item></channel></rss>