All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.1.4 - 2024-11-19
- Library disabler error messages are now displayed in
DEBUG
mode for improved verbosity.
- Fixed errors in ADB shell messages.
- Resolved issues with executing shell commands via
subprocess
.
2.1.3 - 2024-11-03
- Detection system for keybox data changes to prevent redundant exports.
- Max API version available for plaintext keybox.
- Encrypted keybox files are now exported with a
.enc
extension for clarity.
- Issue with invalid keybox data preventing proper reception and export.
- Device token encoding error for keybox data.
2.1.2 - 2024-11-02
- Descriptions for functions used by the Frida script.
- Support for dumping the keybox from older versions of CDM.
- Replaced
libc
-based keybox interception with a native function. - Adjusted player/auto options to execute before DRM detection, enhancing detection on legacy devices.
- Improved handling for displaying varying keybox contents based on the device ID.
- Streamlined JS function detection for better performance.
- Resolved startup issue with the Widevine service when launching the script.
- Addressed unsupported error with the new
ADB
class. - Fixed detection of the
MAIN
activity in applications. - Corrected parsing errors when listing applications.
- Improved detection of minimum required functions.
2.1.1 - 2024-10-28
- Private key functionality for enhanced key extraction security.
- Local DRM server for (almost) offline use.
- Option to import the private key for easier management.
- Automatic installation and usage of a local player.
- New
Advanced
group for better argument organization. - Experimental keybox extraction from the device.
- Added CDM details for SDK 35.
- Device interactions migrated to the
ADB
class for better encapsulation. - Code comments added and optimizations made for clarity.
- Displaying the
GetDeviceId
function name.
- Improved error handling for shell commands.
xmltodict
is now a required dependency.- Enhanced formatting of
logging
messages for better readability. - Error in skip option for using a function file.
2.1.0 - 2024-10-20
- Added private key function.
- Option to skip automatic detection of private functions.
- Confirmed support for Widevine SDK 22.
- Updated dependencies.
- Clarified details regarding optional dependencies.
- Extra argument in the
GetDeviceID
function. - Incorrect handling of the display of unknown functions.
2.0.9 - 2024-09-25
- Added private key function.
- Improved error handling related to file path issues during write operations.
2.0.8 - 2024-07-27
- Added compatibility with WSA (Windows Subsystem for Android).
- Display location of
liboemcrypto.so
if detected (instead of the base address of the library). - Simplified text for disabling the library.
2.0.7 - 2024-07-23
- Improved library disabler display.
- Optimized data export.
- Removed unnecessary cast.
- Corrected disabled library address.
- Fixed multiple hooks in library disabler.
- Enhanced process enumeration for older Android versions.
2.0.6 - 2024-07-12
- Renamed the private key function.
- Updated the device ID function.
- Improved the deactivation message for a library.
- Prevented multiple function replacements during a single execution.
2.0.5 - 2024-07-08
- Added new private functions.
- Support for encrypted challenges in error messages.
- Dynamic disabling of
liboemcrypto.so
without using Magisk module.
- Organized imports.
- Updated some messages.
- New verbosity level for CDM to prevent confusion.
- Detection of Widevine process.
2.0.4 - 2024-07-07
- Vendor now in list to maintain the order of items (python
set
issue).
2.0.3 - 2024-07-07
- Added support for private key function (SDK 35 x86_64).
- Removed confusing
Malformed message
warning.
2.0.2 - 2024-07-07
- Vendor filtering based on device SDK.
- Improved device ID retrieval from challenges.
- Clarified library arguments in documentation.
- Improve library vendor detection.
- Corrected Frida script encoding.
- Adjusted library arguments in documentation for clarity.
- Refined usage of function reference files.
- Updated support for OEM 18+ devices.
2.0.1 - 2024-07-06
- Added support for handling Frida server running errors.
- Enhanced the relevance of pywidevine device (WVD) help documentation.
- Corrected the size of the private key.
2.0.0 - 2024-07-06
- Support for custom library names.
- Patch for the
GetCdmClientPropertySet
function to enforce unencrypted challenges on specific devices. - Hook for the
getOemcryptoDeviceId
function for compatible devices. - Native C API filter to prevent crashes during hooks.
- Handling of a binary challenge file to aid in resolving client IDs.
- Optional verbosity with output files if specified.
- Process watcher for library resolution, primarily for older devices.
- Removed display of OEM and library version as they were often incorrect.
- New patch method (rewriting) to enforce unencrypted challenges.
- Widevine detection method now based on process names.
- Program no longer stops when the function file is not used when normally required.
- Full path display of the library (instead of parent only).
- Program is now formatted as a library.
- Simplified symbol address resolution.
- New, more relevant output structure.
- Private key size is no longer recalculated.
- Dynamic detection of the argument position for challenges.
- Corrected path for extracted files.
- Backward-compatible support for listing all processes via ADB.
- Fixed automatic mode device usage.
- Support for parsing errors related to CDM data.
- Frida session closure after process analysis.
1.1.0 - 2024-06-22
- Implemented a system to filter potentially crash-inducing native C function names.
- Support for custom library names for new versions.
- Corrected directory structure creation for devices.
1.0.9 - 2024-06-02
- Added autostart error message.
- Added private key function (30/arm64-v8a).
- Added private key function (34/arm64-v8a)
- Changed
.wvd
filename to original filename. - Updated liboemcrypto-disabler link in docs.
- Changed default index for vendor 34.
1.0.8 - 2024-05-22
- Auto mode for opening the Bitmovin DRM player.
- Additional generation of the .wvd device.
- Added a function known from SDK 30 (arm64-v8a).
- Renamed JS script.
- Updated dependency versions.
- Use pywidevine for the protobuf part.
- Support for int device names.
- Fixed dynamic auto mode.
1.0.7 - 2024-05-12
- Added a new function specific to VENDOR 15 based on insights from videohelp.
- Included a detailed process for extracting keys in offline mode.
1.0.6 - 2024-04-26
- Added
mksrc
script to manually improve Android shell interaction.
- Removed example from the XML functions to prevent misunderstandings.
- Enhanced the Android shell functionality.
- Fixed encoding issues with ADB commands, addressing issue #3.
1.0.5 - 2024-04-08
- Added a function known from SDK 33 (arm64-v8a).
- Removed import analysis that was causing the JavaScript script to crash.
1.0.4 - 2024-04-06
- Added the
--force
option to use the default vendor, bypassing analysis. - Progress information for analysis stages.
- Support for Android 14.
- Error message for using SDK version 34 and above without an XML functions file.
- Documentation links for certain error messages.
- Switched from Frida to ADB for listing processes due to a Frida issue.
- Optimized process search to improve performance.
- Improved error reporting when the Widevine process is not detected.
- Fixed compatibility with buggy
frida-server
versions by using direct PID attachment. - Updated the script handling for non-standard version scenarios.
1.0.3 - 2024-04-01
- Environment check for ADB and automatic start if not running.
- Extraction function support for SDK version 34 and above.
- Simplified command-line argument processing.
- Enhanced error handling to avoid Frida library hook errors.
- Transitioned from using symbols to functions for better clarity and efficiency.
- Display of loaded script for improved debugging and verification.
- Resolved target analysis issues, ensuring accurate process targeting.
- Corrected function argument count errors for more robust script execution.
- Fixed function selection by name to accurately identify and use the correct functions.
1.0.2 - 2024-03-31
- Added support for interpreting and using symbols, enhancing analysis capabilities.
- Optimized analysis logic during the hook process for increased efficiency.
- Improved script generation process for more reliable and effective hooking.
1.0.1 - 2024-03-31
- Introduced support for non-standard version handling, accommodating a wider range of target applications.
1.0.0 - 2024-03-30
- Initial release of the project, laying the foundation for future enhancements and features.