//////////////////////////////////////////////////////////////////////////////// // Copyright 2016 Google LLC. // // This software is licensed under the terms defined in the Widevine Master // License Agreement. For a copy of this agreement, please contact // widevine-licensing@google.com. //////////////////////////////////////////////////////////////////////////////// // Description: // Provisioned device info format definitions. syntax = "proto2"; package widevine; import "protos/public/device_common.proto"; option java_package = "com.google.video.widevine.protos"; option java_outer_classname = "ProvisionedDeviceInfoProto"; // Contains device model information for a provisioned device. message ProvisionedDeviceInfo { enum WvSecurityLevel { // Defined in Widevine Security Integration Guide for DASH on Android: // http://doc/1Zum-fcJeoIw6KG1kDP_KepIE5h9gAZg0PaMtemBvk9c/edit#heading=h.1t3h5sf LEVEL_UNSPECIFIED = 0; LEVEL_1 = 1; LEVEL_2 = 2; LEVEL_3 = 3; } // Widevine initial provisioning / bootstrapping method. DRM certificates are // required for retrieving licenses, so if a DRM certificate is not initially // provisioned, then the provisioned credentials will be used to provision // a DRM certificate via the Widevine Provisioning Service. enum ProvisioningMethod { // Don't use this. PROVISIONING_METHOD_UNSPECIFIED = 0; // Factory-provisioned device-unique keybox. FACTORY_KEYBOX = 1; // Factory-provisioned device-unique OEM certificate. FACTORY_OEM_DEVICE_CERTIFICATE = 2; // Factory-provisioned model-group OEM certificate. FACTORY_OEM_GROUP_CERTIFICATE = 3; // Factory-provisioned model-group DRM certificate (Level-3 "baked in"). FACTORY_DRM_GROUP_CERTIFICATE = 4; // OTA-provisioned keybox (Level-1 ARC++). OTA_KEYBOX = 5; // OTA-provisioned device-unique OEM certificate. OTA_OEM_DEVICE_CERTIFICATE = 6; // OTA-provisioned model-group OEM certificate. OTA_OEM_GROUP_CERTIFICATE = 7; // OTA-provisioned device-unique DRM certificate (Bedrock). OTA_DRM_DEVICE_CERTIFICATE = 8; } // Widevine system ID for the device. Mandatory. optional uint32 system_id = 1; // Name of system-on-a-chip. Optional. optional string soc = 2; // First registered manufacturer. Optional. optional string manufacturer = 3; // First registered manufacturer's model name. Matches "brand" in device // metadata. Optional. optional string model = 4; // First registered type of device (Phone, Tablet, TV, etc). optional string device_type = 5; // First registered device model year. Optional. optional uint32 model_year = 6; // Widevine-defined security level. Optional. optional WvSecurityLevel security_level = 7 [default = LEVEL_UNSPECIFIED]; // True if the certificate corresponds to a test (non production) device. // Optional. optional bool test_device = 8 [default = false]; // Indicates the type of device root of trust which was factory provisioned. optional ProvisioningMethod provisioning_method = 9; // A list of ModelInfo using the same system_id. repeated DeviceModel model_info = 10; }