diff --git a/libwvdrmengine/tools/ota_keybox/set_debug_count.sh b/libwvdrmengine/tools/ota_keybox/set_debug_count.sh new file mode 100755 index 00000000..4ddb263c --- /dev/null +++ b/libwvdrmengine/tools/ota_keybox/set_debug_count.sh @@ -0,0 +1,123 @@ +#!/usr/bin/bash +# Copyright 2021 Google LLC. All Rights Reserved. This file and proprietary +# source code may only be used and distributed under the Widevine License +# Agreement. + +# Setup + +adb_path=$(which adb) +if [ -z "$adb_path" ] || [ ! -f "$adb_path" ]; then + echo "Cannot find ADB" 1>&2 + exit 1 +fi + +# Determine data path. On some devices, when the tests run as root, +# they use a different directory for the MediaDRM files. +while [ ! -z "$1" ]; do + case $1 in + -h | --help ) + echo "Usage: [-s DEVICE_ID] [-r] [--wipe-l3]" + echo " Configures devices files for testing OTA Keybox Provisioning." + echo + echo "Optional arguments:" + echo " -h, --help Show this help message and exit" + echo " -s DEVICE_ID Specify device ID to use" + echo " -r, --root Use data directory for root user" + echo " (unittests only)" + echo " --wipe-l3 Wipe L3 data along with L1. Useful for" + echo " testing app robustness." + echo " --no-reboot Do not reboot the device after setup." + echo " Normally required if the CDM is in use." + exit + ;; + -s | --id ) + if [ -z "$2" ]; then + echo "Missing device ID for option $1" 1>&2 + exit 2 + fi + device_id="$2" + shift + shift + ;; + -r | --root ) + root_path="yes" + shift + ;; + --wipe-l3 ) + wipe_l3="yes" + shift + ;; + --no-reboot ) + reboot="no" + shift + ;; + * ) + echo "Unexpected argument: $1" 1>&2 + exit 2 + ;; + esac +done + +if [ ! -z "$device_id" ]; then + echo "Using device: $device_id" + export ANDROID_SERIAL="$device_id" +fi + +# Must run as root to write to directory. +adb_user=$(adb shell whoami) +if [ "$adb_user" != "root" ]; then + echo "Changing ADB to run as root" + adb root +fi + +# Select path for MediaDRM data. +if [ "$root_path" = "yes" ]; then + echo "Using root path: IDM0" + data_path="/data/vendor/mediadrm/IDM0" +else + echo "Using prod path: IDM1013" + data_path="/data/vendor/mediadrm/IDM1013" +fi + +# Clear existing DRM data + +if adb shell test -d "$data_path" ; then + echo "Deleting MediaDRM files..." + if adb shell test -d "$data_path/L1" ; then + echo "Deleting L1..." + adb shell rm -rf "$data_path/L1/*" + fi + if [ "$wipe_l3" = "yes" ] && adb shell test -d "$data_path/L3" ; then + echo "Deleting L3..." + adb shell rm -rf "$data_path/L3/*" + fi +fi + +if ! adb shell test -d "$data_path/L1" ; then + if ! adb shell mkdir -p "$data_path/L1"; then + echo "Failed to create MediaDRM data directory" 1>&2 + exit 1 + fi +fi + +# Set debug_ignore_keybox_count.txt + +if [ "$root_path" = "yes" ]; then +adb shell <<'ALT_EOF' + echo 1 >> /data/vendor/mediadrm/IDM0/L1/debug_ignore_keybox_count.txt + exit +ALT_EOF +else +adb shell <<'EOF' + echo 1 >> /data/vendor/mediadrm/IDM1013/L1/debug_ignore_keybox_count.txt + exit +EOF +fi + +if [ "$reboot" != "no" ]; then + adb reboot + echo "Waiting for device to boot..." + adb wait-for-device root +fi + +adb logcat -G 8M