Files
android/libwvdrmengine/cdm/test/cdm_feature_test.sh
Rahul Frias a40af9d1ef Reword "blacklisted" to "forbidden"
[ Merge of http://go/wvgerrit/113563 ]

Bug: 159847851
Test: WV unit/integration tests
Change-Id: I138b3e3291cb9e75841d092ca1bfa9a652ad9f9a
2021-04-08 11:54:06 -07:00

221 lines
9.8 KiB
Bash

#!/bin/bash
#
# This test runs the cdm_feature_test
# Precondition:
# * cdm_feature_test has been pushed to the device and exits at
# /data/bin/cdm_feature_test
# * Follow instructions to load modifiable OEMCrypto
KEYBOX="keybox"
OEMCERT="oemcert"
SRM_UPDATE_SUPPORTED="srm_update_supported"
SRM_UPDATE_NOT_SUPPORTED="srm_update_not_supported"
SRM_INITIAL_VERSION_CURRENT="srm_initial_version_current"
SRM_INITIAL_VERSION_OUTDATED="srm_initial_version_outdated"
SRM_INITIAL_VERSION_NOT_SUPPORTED="srm_initial_version_not_supported"
SRM_REVOKED="srm_attached_device_revoked"
SRM_NOT_REVOKED="srm_attached_device_not_revoked"
OPTIONS_TXT_FILENAME="options.txt"
HOST_OPTIONS_PATH="/tmp/$OPTIONS_TXT_FILENAME"
# write_options_txt_file
# ["keybox"|"oemcert"|"srm_update_supported"|"srm_update_not_supported"|
# "srm_initial_version_current"|"srm_initial_version_outdated"|
# "srm_initial_version_not_supported"|"srm_attached_device_revoked"
# "srm_attached_device_not_revoked"]
write_options_txt_file()
{
YES="yes"
NO="no"
# default values
use_keybox=$YES
srm_initial_version_current=$NO
srm_initial_version_supported=$YES
srm_updatable=$NO
srm_revoked=$NO
for var in "$@"
do
case $var in
$KEYBOX ) use_keybox=$YES ;;
$OEMCERT ) use_keybox=$NO ;;
$SRM_UPDATE_SUPPORTED ) srm_updatable=$YES ;;
$SRM_UPDATE_NOT_SUPPORTED ) srm_updatable=$NO ;;
$SRM_INITIAL_VERSION_CURRENT ) srm_initial_version_current=$YES ;;
$SRM_INITIAL_VERSION_OUTDATED ) srm_initial_version_current=$NO ;;
$SRM_INITIAL_VERSION_NOT_SUPPORTED ) srm_initial_version_supported=$NO ;;
$SRM_REVOKED) srm_revoked=$YES ;;
$SRM_NOT_REVOKED) srm_revoked=$NO ;;
esac
done
echo "log_level 3" > $HOST_OPTIONS_PATH
echo "security_level 1" >> $HOST_OPTIONS_PATH
echo "current_hdcp 255" >> $HOST_OPTIONS_PATH
echo "max_hdcp 255" >> $HOST_OPTIONS_PATH
if [ "$srm_updatable" == "$YES" ]; then
echo "srm_update_supported 1" >> $HOST_OPTIONS_PATH
else
echo "srm_update_supported 0" >> $HOST_OPTIONS_PATH
fi
echo "srm_load_fail 0" >> $HOST_OPTIONS_PATH
if [ "$srm_initial_version_supported" == "$YES" ]; then
if [ "$srm_initial_version_current" == "$YES" ]; then
echo "srm_initial_version 3" >> $HOST_OPTIONS_PATH
else
echo "srm_initial_version 1" >> $HOST_OPTIONS_PATH
fi
else
echo "srm_initial_version 0" >> $HOST_OPTIONS_PATH
fi
echo "srm_load_version -1" >> $HOST_OPTIONS_PATH
if [ "$srm_revoked" == "$YES" ]; then
echo "srm_forbidden_device_attached 1" >> $HOST_OPTIONS_PATH
echo "srm_attached_device_id 20362845044" >> $HOST_OPTIONS_PATH
# echo "srm_attached_device_id 1079148782731" >> $HOST_OPTIONS_PATH
else
echo "srm_forbidden_device_attached 0" >> $HOST_OPTIONS_PATH
echo "srm_attached_device_id 12345678" >> $HOST_OPTIONS_PATH
fi
echo "security_patch_level 1" >> $HOST_OPTIONS_PATH
echo "max_subsample_size 0" >> $HOST_OPTIONS_PATH
if [ "$use_keybox" == "$NO" ]; then
echo "use_keybox 0" >> $HOST_OPTIONS_PATH
else
echo "use_keybox 1" >> $HOST_OPTIONS_PATH
fi
echo "use_fallback 1" >> $HOST_OPTIONS_PATH
echo "" >> $HOST_OPTIONS_PATH
echo "kLoggingTraceOEMCryptoCalls 1" >> $HOST_OPTIONS_PATH
echo "kLoggingDumpContentKeys 1" >> $HOST_OPTIONS_PATH
echo "kLoggingDumpKeyControlBlocks 1" >> $HOST_OPTIONS_PATH
echo "kLoggingDumpDerivedKeys 0" >> $HOST_OPTIONS_PATH
echo "kLoggingTraceNonce 0" >> $HOST_OPTIONS_PATH
echo "kLoggingTraceDecryption 0" >> $HOST_OPTIONS_PATH
echo "kLoggingTraceUsageTable 0" >> $HOST_OPTIONS_PATH
echo "kLoggingTraceDecryptCalls 0" >> $HOST_OPTIONS_PATH
echo "kLoggingDumpTraceAll 0" >> $HOST_OPTIONS_PATH
}
if adb shell ls -l /data/vendor/mediadrm; then
TARGET_OPTIONS_PATH="/data/vendor/mediadrm/oemcrypto/$OPTIONS_TXT_FILENAME"
else
TARGET_OPTIONS_PATH="/data/mediadrm/oemcrypto/$OPTIONS_TXT_FILENAME"
fi
## Test: OEMCertificateProvisioning
write_options_txt_file $OEMCERT
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=WvCdmFeatureTest.OEMCertificateProvisioning
## Test: KeyboxProvisioning
write_options_txt_file
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=WvCdmFeatureTest.KeyboxProvisioning
## Test: Srm|VersionCurrent|OPRequested|Updatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/0
## Test: Srm|VersionCurrent|OPRequested|NotUpdatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_NOT_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/1
## Test: Srm|VersionCurrent|OPRequired|Updatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/2
## Test: Srm|VersionCurrent|OPRequired|NotUpdatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_NOT_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/3
## Test: Srm|VersionOutdated|OPRequested|Updatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/4
## Test: Srm|VersionOutdated|OPRequested|NotUpdatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_NOT_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/5
## Test: Srm|VersionOutdated|OPRequired|Updatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/6
# TODO(rfrias): Uncomment out test after b/64946456 is addressed
## Test: Srm|VersionOutdated|OPRequired|NotUpdatable|NotRevoked|CannotPlayback
#write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_NOT_SUPPORTED $SRM_NOT_REVOKED
#adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
#adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/7
## Test: Srm|VersionCurrent|OPRequested|Updatable|Revoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_SUPPORTED $SRM_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/8
## Test: Srm|VersionCurrent|OPRequested|NotUpdatable|Revoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_NOT_SUPPORTED $SRM_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/9
# TODO(rfrias): Uncomment out test after b/64946456 is addressed
## Test: Srm|VersionCurrent|OPRequired|Updatable|Revoked|CannotPlayback
#write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_SUPPORTED $SRM_REVOKED
#adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
#adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/10
# TODO(rfrias): Uncomment out test after b/64946456 is addressed
## Test: Srm|VersionCurrent|OPRequired|NotUpdatable|Revoked|CannotPlayback
#write_options_txt_file $SRM_INITIAL_VERSION_CURRENT $SRM_UPDATE_NOT_SUPPORTED $SRM_REVOKED
#adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
#adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/11
## Test: Srm|VersionOutdated|OPRequested|Updatable|Revoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_SUPPORTED $SRM_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/12
## Test: Srm|VersionOutdated|OPRequested|NotUpdatable|Revoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_NOT_SUPPORTED $SRM_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/13
# TODO(rfrias): Uncomment out test after b/64946456 is addressed
## Test: Srm|VersionOutdated|OPRequired|Updatable|Revoked|CannotPlayback
#write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_SUPPORTED $SRM_REVOKED
#adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
#adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/14
# TODO(rfrias): Uncomment out test after b/64946456 is addressed
## Test: Srm|VersionOutdated|OPRequired|NotUpdatable|Revoked|CannotPlayback
#write_options_txt_file $SRM_INITIAL_VERSION_OUTDATED $SRM_UPDATE_NOT_SUPPORTED $SRM_REVOKED
#adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
#adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmTest.Srm/15
## Test: Srm|VersionNotSupported|OPRequested|NotUpdatable|NotRevoked|CanPlayback
write_options_txt_file $SRM_INITIAL_VERSION_NOT_SUPPORTED $SRM_UPDATE_NOT_SUPPORTED $SRM_NOT_REVOKED
adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmNotSupportedTest.Srm/0
# TODO(rfrias): Uncomment out test after b/64946456 is addressed
## Test: Srm|VersionNotSupported|OPRequired|NotUpdatable|NotRevoked|CannotPlayback
#write_options_txt_file $SRM_INITIAL_VERSION_NOT_SUPPORTED $SRM_UPDATE_NOT_SUPPORTED $SRM_NOT_REVOKED
#adb push $HOST_OPTIONS_PATH $TARGET_OPTIONS_PATH
#adb shell /data/bin/cdm_feature_test --gtest_filter=Cdm/WvCdmSrmNotSupportedTest.Srm/1