Add options to dump Widevine Cdm properties, Widevine Cdm metrics, or both. The valid arguments are Cdm Metrics (m|M) or Cdm Properties (p|P). If no arguments are provided, both Cdm properties and Cdm metrics will be displayed. Test: adb shell lshal debug [drm service] [m/p] adb shell lshal debug android.hardware.drm@1.3::IDrmFactory/widevine Bug: 154027349 Change-Id: I95c10dd7d4274226936295c73be4eb1612c2ef6a
69 lines
1.9 KiB
C++
69 lines
1.9 KiB
C++
//
|
|
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine Master
|
|
// License Agreement.
|
|
//
|
|
|
|
#ifndef WV_DRM_FACTORY_H_
|
|
#define WV_DRM_FACTORY_H_
|
|
|
|
#include "HidlTypes.h"
|
|
#include "WVGenericCryptoInterface.h"
|
|
#include "WVTypes.h"
|
|
|
|
namespace wvdrm {
|
|
namespace hardware {
|
|
namespace drm {
|
|
namespace V1_3 {
|
|
namespace widevine {
|
|
|
|
using ::android::hardware::hidl_handle;
|
|
using ::android::hardware::hidl_vec;
|
|
|
|
struct WVDrmFactory : public IDrmFactory {
|
|
WVDrmFactory() {}
|
|
virtual ~WVDrmFactory() {}
|
|
|
|
Return<bool> isCryptoSchemeSupported(
|
|
const hidl_array<uint8_t, 16>& uuid) override;
|
|
|
|
Return<bool> isCryptoSchemeSupported_1_2(const hidl_array<uint8_t, 16>& uuid,
|
|
const hidl_string& mimeType,
|
|
SecurityLevel level) override;
|
|
|
|
Return<bool> isContentTypeSupported(const hidl_string& mimeType) override;
|
|
|
|
Return<void> createPlugin(const hidl_array<uint8_t, 16>& uuid,
|
|
const hidl_string& appPackageName,
|
|
createPlugin_cb _hidl_cb) override;
|
|
|
|
Return<void> getSupportedCryptoSchemes(
|
|
getSupportedCryptoSchemes_cb _hidl_cb) override;
|
|
|
|
Return<void> debug(const hidl_handle& fd, const hidl_vec<hidl_string>& args);
|
|
|
|
private:
|
|
WVDRM_DISALLOW_COPY_AND_ASSIGN(WVDrmFactory);
|
|
|
|
static WVGenericCryptoInterface sOemCryptoInterface;
|
|
|
|
static bool areSpoidsEnabled();
|
|
static bool isBlankAppPackageNameAllowed();
|
|
static int32_t firstApiLevel();
|
|
static std::string stringToHex(const std::string& input);
|
|
static void printCdmMetrics(FILE* out);
|
|
static void printCdmProperties(FILE* out);
|
|
|
|
friend class WVDrmFactoryTestPeer;
|
|
};
|
|
|
|
extern "C" IDrmFactory* HIDL_FETCH_IDrmFactory(const char* name);
|
|
|
|
} // namespace widevine
|
|
} // namespace V1_3
|
|
} // namespace drm
|
|
} // namespace hardware
|
|
} // namespace wvdrm
|
|
|
|
#endif // WV_DRM_FACTORY_H_
|