---
title: "멀티 DRM 릴리즈 노트"
description: "도브러너 멀티 DRM 서비스의 각 제품 별 릴리즈 노트입니다."
---
> For the complete documentation index, see [llms.txt](/llms.txt).

도브러너 멀티 DRM 서비스의 각 제품 별 릴리즈 노트입니다.

## 서버/패키저 제품군

### DRM 라이선스 서버

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.07.02 | 5.11.4 |- NCG DRM 관련 로그 데이터 처리를 개선하였습니다. |
| 2026.03.18 | 5.11.3 |- 라이선스 사이퍼 발급 로직의 안정성을 개선하였습니다.<br/>- PlayReady 7202 에러 응답 시 PlayReady SDK의 상세 에러 메시지를 포함해 트러블슈팅이 용이하도록 개선했습니다.<br/>- 내부 로그 처리 방식 개선으로 운영 가시성을 향상시켰습니다.<br/>- PlayReady 라이선스 Duration 최대값의 유효성 검사 오류를 수정했습니다. 최대 1,577,923,200초(약 50년)로 제한하여 오버플로우 오류를 방지합니다. |
| 2026.02.24 | 5.11.2 |- 구 PackManager의 내부 예외처리 로직을 개선했습니다.<br/>- NCG DRM 서버의 로직을 개선해 라이선스 발급 성능을 향상시켰습니다. |
| 2026.01.14 | 5.11.1 |- PlayReady Server SDK 4.7.8118로 PlayReady 라이선스 서버를 업데이트하였습니다.<br/>- PlayReady 서버 환경을 Windows에서 Linux(Amazon Linux 2023)로 이전하였습니다.<br/>- Linux 인프라를 통해 서버 성능 및 운영 관리를 개선하였습니다. |
| 2025.10.14 | 5.11.0 |- 내부 로그 데이터 처리를 개선하였습니다.<br/>- PlayReady 7202 에러 (PlayReady 서버 통신 실패) 발생 시 상세 에러 메시지를 추가하였습니다. |
| 2025.07.30 | 5.10.0 |- Widevine Server SDK 19.10.1 버전으로 서버를 업데이트하였습니다.<br/>- Widevine 오프라인 라이선스 요청의 에러 발생 시 로그 정보가 누락되는 오류를 수정하였습니다. |
| 2025.05.28 | 5.9.3 |- FairPlay와 PlayReady DRM에 대한 라이선스 리뉴얼 기능을 개선하였습니다. 해당 업데이트에 의해 라이선스 리뉴얼과 블랙리스트 기능을 통한 라이브 스트림 실시간 차단 시나리오를 적용할 수 있습니다.<br/>- PlayReady DRM에 대한 라이선스 사이퍼 적용 로직을 개선하였습니다.<br/>- FairPlay와 PlayReady DRM에서 블랙리스트와 CSL(동시 재생 제한) 기능을 함께 사용할 경우 발생하는 버그를 수정하였습니다.|
| 2025.05.22 | 5.9.2 |- DRM 라이선스 토큰의 Widevine Security Policy에 `allow_test_device` 항목을 추가하였습니다. 해당 Policy를 통해 Widevine DCSL에서 '테스트 기기'로 분류된 안드로이드 기기에 대한 라이선스 발급 여부를 제어할 수 있습니다. 기본값: `true` (발급 허용)<br/> 	- Widevine, WisePlay DRM에 대한 라이선스 리뉴얼 기능을 개선하였습니다. 해당 업데이트에 의해 라이선스 리뉴얼과 블랙리스트 기능을 통한 라이브 스트림 실시간 차단 시나리오를 적용할 수 있습니다.<br/> - Widevine, WisePlay DRM에서 블랙리스트와 CSL(동시 재생 제한) 기능을 함께 사용할 경우 발생하는 버그를 수정하였습니다.|
| 2025.03.26 | 5.9.0 |- PlayReady Server SDK를 4.4 버전에서 4.6.7674 버전으로 업데이트 하었습니다. 해당 업데이트는 PlayReady 라이선스 보안과 관련한 가장 최근의 개선 사항을 포함하고 있습니다. |
| 2025.02.19 | 5.8.0 |- HLS 클리어키 콘텐츠에 대한 지원이 추가되었습니다. <br/>- PlayReady License Cipher 지원이 추가되었습니다.<br/>- 유럽 지역에 대한 지원을 개선하기 위해 AWS 프랑크푸르트 리전으로 서비스 인프라를 확장하였습니다. |
| 2024.12.11 | 5.7.0 |- Huawei WisePlay DRM에 대한 라이선스 발급 기능이 추가되었습니다.<br/>- Widevine 서버 인증서를 다운로드 받을 수 있는 API가 추가되었습니다. 클라이언트 플레이어에서 해당 API로 인증서를 다운로드 받아 재사용하면 Widevine 라이선스 발급 시 인증서 요청이 생략되어 지연 시간을 줄일 수 있습니다.<br/>- 라이선스 사이퍼 사용 시 대상 서비스에 대한 도메인 체크 기능이 추가되었습니다.<br/>- 윈도우즈 크롬 브라우저에서 Widevine L1 CDM을 지원할 수 있도록 서버 로직이 개선되었습니다.	<br/>- FairPlay DRM에 대한 7136 에러 처리 관련 오류가 수정되었습니다. |
| 2024.10.30 | 5.6.4 |- Aurora DB에서 크로스리전 복제 관련 문제가 발생하지 않도록 데이터베이스 설정을 변경하였습니다. |
| 2024.10.24 | 5.6.3 |- NCG DRM의 Device Cert 관련 문제 해결을 위해 데이터베이스 쿼리를 업데이트하였습니다. |
| 2024.08.27 | 5.6.2 |- Widevine device revocation 관련 에러 메시지를 개선하였습니다. |
| 2024.06.25 | 5.6.0 |- 크롬 버전 라이선스 사이퍼 솔루션에 대한 지원이 추가되었습니다.<br/>- Widevine 라이선스 요청(챌린지 데이터)과 토큰의 키 값 일치 여부를 확인하는 로직이 추가되었습니다. (불일치 시 7131 에러 발생)<br/>- 라이선스 사이퍼 솔루션에 사용되는 WBC 라이브러리가 최신 버전으로 업데이트 되었습니다.<br/>- 암호화 포맷이 적용된 FairPlay 인증서에 대한 지원이 추가되었습니다. |
| 2024.04.03 | 5.5.1 |- 블랙리스트 API를 통한 사용자 또는 기기 차단 기능이 추가되었습니다.<br/>- 클라이언트 환경에 따라 CSL 적용 예외 처리를 할 수 있도록 라이선스 토큰 규격이 업데이트되었습니다. |
| 2023.12.12 | 5.4.0 |- 마이크로서비스 아키텍쳐를 적용해 라이선스 서버의 성능과 확장성을 개선하였습니다. |
| 2023.11.07 | 5.3.0 |- Widevine L3 취약점을 보완할 수 있는 라이선스 사이퍼 SDK에 대한 지원이 추가되었습니다.<br/>- Widevine License Server SDK을 최신 버전인 18.1.2로 업데이트하였습니다. |
| 2023.07.26 | 5.2.0 |- CSL 기능 적용 시, 라이선스 리뉴얼이 지원되지 않는 애플 에어플레이 스트리밍 재생은 적용 대상에서 제외되도록 개선하였습니다.<br/>- FairPlay 외부 키 설정과 관련된 오류를 수정하였습니다. |
| 2023.06.14 | 5.1.0 |- CSL(동시 재생 수 제한) 기능 적용 시 최대 동시 재생 수 초과로 인한 라이선스 에러 메시지에 현재 재생 중인 기기 목록을 표시하는 기능을 추가하였습니다.<br/>- FairPlay 라이선스 발급 시 외부 IV 값 적용이 가능하도록 개선하였습니다.<br/>- FairPlay DRM에 대하여 외부 키 방식으로 멀티키 라이선스 요청이 안되던 오류를 수정하였습니다. |
| 2023.05.09 | 5.0.0 |- Widevine 라이선스 발급 기능이 기존의 Proxy 연동 방식에서 License Server SDK 방식으로 변경되었습니다. <br/>- 라이선스 로그 데이터 처리 개선을 위해 데이터베이스 연동을 최적화하였습니다.<br/>- CSL(Concurrent Stream Limiting) 기능 사용 시, 최종 사용자의 요금제에 따라 최대 동시 재생 수를 설정할 수 있도록 라이선스 토큰에 해당 설정 값을 추가하였습니다.|
| 2023.01.26 | 4.16.3 |- CSL 기능 사용 시 크롬 브라우저 사용 시나리오에서 2105 에러가 발생하는 문제를 수정하였습니다. (여러 탭 또는 창에서 동일 서비스 이용 시)<br/>- FairPlay DRM의 Airplay 제어와 관련된 라이선스 토큰 정책의 오류를 수정하였습니다. |
| 2022.11.16 | 4.16.1 |- 오프라인 라이선스의 유효기간 지정 시, DRM별 License Duration 최대값 지정 및 체크 로직이 추가되었습니다. 최대값 이상의 duration이 토큰 policy로 입력된 경우, 각 DRM 별 최대값이 라이선스에 적용됩니다.<br/> - Fairplay : 최대 4294967295 초 (약136년)<br/> - PlayReady: 최대 2522880000 초 (약 80년)<br/> - Widevine : 최대 2147483647 초 (약 68년)<br/><br/>- CSL(Concurrent Stream Limiting) 기능과 관련하여 안드로이드 기기를 대상으로 한 동시 재생 카운트 오류를 수정하였습니다. |
| 2022.10.18 | 4.16.0 |- PlayReady 관련 에러 메시지 처리를 개선하였습니다.<br/>- 서버 성능 개선을 위해 NCG getServerInfo API 처리를 Java로 변환하였습니다.<br/>- Widevine의 provider_token 규격을 이용해 데스크탑 크롬에도 고유한 기기 ID를 적용합니다. (CSL 기능 사용 시 정확한 '동시 재생 수' 처리 가능)<br/>- 기타 각종 버그 수정 및 처리 개선 사항들이 적용되었습니다. |
| 2022.09.20 | 4.15.2 |- 대용량 라이선스 서비스 지원을 위해 DRM 관련 로그 데이터 처리 성능을 개선하였습니다.|
| 2022.08.03 | 4.15.1 |- CSL 기능과 관련해 Widevine can_renew policy 처리를 개선하였습니다. |
| 2022.07.13 | 4.15.0 |- 과도한 계정 공유를 방지할 수 있는 '동시 재생 제한'(Concurrent Stream Limiting, CSL) 기능을 지원합니다.<br/>- NCG DRM에 대한 Token Proxy 연동을 지원합니다.|
| 2022.05.24 | 4.14.0 |- 라이브 스트림의 DRM 키 로테이션과 관련해 트라이얼 및 상용 요금제에 따른 키 로테이션 지원 제어 기능이 추가되었습니다.<br/>- Widevine DRM의 override_device_revocation 정책에 대한 기본값을 'false'로 변경하였습니다. 보안 취약성으로 인해 지원 중단(revoked)된 안드로이드 기기에 대한 DRM 라이선스 발급을 허용하려면 라이선스 토큰의 해당 Policy 값을 'true'로 설정해야 합니다.<br/>- FairPlay DRM의 라이선스 요청을 처리할 때 AssetID 파싱 처리를 개선하였습니다. (7308 에러코드 발생 방지) |
| 2022.02.09 | 4.13.1 |- 해킹으로 변조된 구버전 크롬 Widevine CDM에 대해서 라이선스 발급이 되지 않도록 라이선스 서버를 업데이트 하였습니다. 해당 클라이언트에서의 Widevine 라이선스 요청은 7116 에러 코드와 함께 발급 실패 처리됩니다. |
| 2022.01.12 | 4.13.0 |- PlayReady Server SDK가 4.4로 버전업 되었습니다.<br/>- CBCS로 암호화된 CMAF 단일 콘텐츠를 윈도우 엣지 환경에서도 재생할 수 있게 SL2000 환경에 대한 PlayReady CBCS 라이선스 발급을 지원합니다.	 |
| 2021.10.26 | 4.12.0 |- 라이선스 서버의 응답 성능이 개선되었습니다. |
| 2021.10.19 | 4.11.0 |- 토큰 방식 라이선스 요청 시 응답 데이터 유형으로 `json`이 추가되었습니다.|
| 2021.06.09 | 4.10.2 |- Widevine persistent 라이선스와 관련된 버그가 수정되었습니다. |
| 2021.05.25 | 4.10.1 |- FairPlay 멀티키 라이선스와 관련된 버그가 수정되었습니다. |
| 2021.05.06 | 4.10.0 |- DRM 패키징 이력 정보에 대한 처리가 개선되었습니다. <br/>- 토큰을 이용한 DRM 라이선스 요청 시, 고객 측 서버와의 시간차로 인한 오류(7011 에러)를 줄이기 위해 토큰 유효시간 체크 로직을 개선하였습니다.|
| 2021.02.23 | 4.9.0 |- Widevine 프록시와 관련한 7115 에러 코드를 추가 ('Widevine 지원이 영구적으로 철회된 기기입니다.") <br/>- FairPlay 오프라인 라이선스 유효기간 정책 업데이트<br/> -- 오프라인 미지원 기기에서 무제한 오프라인 라이선스를 요청 시, 설정 가능한 최대 유효기간(duration)으로 라이선스 발급 (약 136년)<br/>- 트라이얼 계정에 적용되던 DRM 라이선스 콜백 기본 처리를 제거<br/> -- DRM 라이선스 연동이 미완료된 상태로 상용 전환해 발생하는 오류를 방지함<br/>- HLS 키 로테이션의 IV 로직 오류 수정 |
| 2020.10.22 | 4.8.0 |- 키 로테이션 기능 제어를 위한 Policy 추가 <br/>- FPS iOS 10 오프라인 시나리오 적용 <br/>- Widevine override revocation 제어 policy 추가 및 Widevine proxy 통신 에러코드 추가|
| 2020.09.07 | 4.7.0 |- Widevine 라이선스 발급: 구글 보안 기준 미달 기기에 라이선스 발급 가능하게 패치<br/>- 콜백 게이트웨이 Timeout 5초 -> 3초로 변경 |
| 2020.08.12 | 4.6.0 |- 글로벌 라이선스 URL 트라이얼 체크 기능 추가<br/>- Shaka Player 3.0 대상 라이선스 발급 지원 |
| 2020.06.03 | 4.5.0 |- 오프라인 렌탈 시나리오 적용 |
| 2020.05.12 | 4.4.1 |- Elastic Search 로그 누락 현상 수정 |
| 2020.04.27 | 4.4.0 |- 멀티키 라이선스 발급 기능, Response format, License policy V2 지원 추가 |
| 2020.03.17 | 4.3.1 |- NcgCloud 지원 제거, DB Connection 방식 수정 |
| 2020.03.05 | 4.3.0 |- Widevine allowed_track_type 기능 추가<br/>- 라이선스 토큰 내 'token' 키에 'policy'도 추가로 지원<br/>- FairPlay 오류 코드 추가<br/>- 토큰 해시 값 체크 시 drm type 대소문자 무관하게 지원<br/>- 라이선스 발급 시 7107, 7103 오류 중복 발생 수정 및 누락된 오류 코드 추가<br/>- FairPlay 라이선스 발급 시 오류 수정 |
| 2019.10.22 | 4.2.0 |- Widevine 하드웨어 DRM 설정 시 오디오 트랙은 hdcp_none, security level 1로 적용 <br/>- 트라이얼 계정에 대한 패키징 콜백 자동 처리 시 오류 수정 (파일 확장자가 없는 경우)<br/>- 클라이언트 SDK 인증 관련 오류 수정|
| 2019.01.15 | 4.1.8 |- NCG 토큰 관련 오류 수정<br/>- 클라이언트 SDK 인증 쿼리 오류 수정|
| 2018.09.19 | 4.1.3 |- Shaka Packager 연동을 위해 IV값을 hex 형식으로 응답하도록 수정 |
| 2018.08.09 | 4.1.1 |- 멀티키 라이선스 발급 기능 추가 (PlayReady 제외)<br/>- FairPlay의 경우, 패키징 시 iv 값을 사이트 당 하나로 사용<br/>- 실시간 HLS 키 발급 조건에 CID가 있을 경우, CID 기준 발급 기능 추가<br/>- 클라이언트 SDK 인증 기능 지원|
| 2018.04.09 | 4.0.0 |- 토큰 기반 라이선스 발급 시 DB 저장 없이 처리<br/>- 키 로테이션 기능 추가. pallycon-customdata-v2 규격에 content_type:live 일 경우에 활성화 (기본값: VOD) |

### KMS 서버

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.06.02 | 1.18.10 |- AWS MediaConvert 및 MediaPackage와 같은 서드파티 패키징 솔루션과의 연동에 사용되는 SPEKE v1 및 v2 패키징 키 간의 호환성이 향상되었습니다. |
| 2026.03.24 | 1.18.9 |- 키 발급 오류 발생 시 조치 사항 및 모니터링을 개선했습니다.<br/>- 멀티키 CPIX 요청 관련 신규 에러 코드(4002)를 추가했습니다.| 
| 2026.02.22 | 1.18.8 |- 특정 상황에 간헐적으로 발생하는 키 발급 오류를 수정하였습니다. |
| 2026.01.27 | 1.18.7 |- PlayReady CPIX 개선: DoveRunner CPIX V2 및 SPEKE v2.0 API에 PlayReady 전용 파라미터를 추가해 DRM 설정을 강화했습니다.<br/>- 에러 처리: PlayReady Header 버전 검증을 위한 에러 코드 4001을 추가하였습니다. |
| 2025.10.14 | 1.18.6 |- CPIX cid에 대한 빈 값 유효성 검사를 추가했습니다. (KMS 오류 코드 2515)<br/>- CPIX cid 길이 200자 초과 시 오류 코드를 추가했습니다. (KMS 오류 코드 2516)<br/>- 리브랜딩을 위한 DoveRunner CPIX URL을 추가했습니다. (/v2/cpix/doverunner/getKey)<br/>	- Widevine PSSH 공급자 값을 inkaentworks에서 doverunner로 변경했습니다. |
| 2025.06.24 | 1.18.5 |- doverunner.com 도메인을 사용하는 API URL에 대한 지원을 추가했습니다 <br/>- 새로운 검증 기능과 오류 코드를 추가했습니다<br/>  - 2515 오류: CID 값이 null입니다<br/>  - 2516 오류: CID 값이 너무 길습니다 (최대 200자) |
| 2025.03.28 | 1.18.4 |- DynamoDB 파티션 테이블 크기 제한과 관련한 문제를 수정하였습니다.|
| 2025.02.19 | 1.18.0 |- HLS 클리어키 콘텐츠에 대한 지원이 추가되었습니다.|
| 2024.12.11 | 1.17.0 |- CPIX API를 통한 Huawei WisePlay DRM 키 발급 기능이 추가되었습니다.<br/>- CPIX API에 PlayReady와 Widevine DRM에 대한 HLSSignalingData가 추가되었습니다. |
| 2024.07.03 | 1.16.3 |- KMS API 동시 호출 시 동일한 Key ID에 대해 서로 다른 키가 생성되는 문제를 수정하였습니다. |
| 2024.01.23 | 1.16.0 |- AWS MediaPackage Live v2 서비스와의 호환성을 위해 도브러너 KMS의 SPEKE와 CPIX API URL(v2)에 키 로테이션 여부에 대한 파라미터를 추가하였습니다.<br/>- AWS MediaPackage Live v2 서비스 지원과 관련한 버그를 수정하였습니다. |
| 2023.11.07 | 1.15.0 |- AWS MediaPackage Live v2 연동 시 KMS 오류 사항을 수정하였습니다. | 
| 2023.07.26 | 1.14.2 |- 키 임포트 API에서 사용하는 데이터베이스 로직의 오류를 수정하였습니다.|
| 2023.07.11 | 1.14.1 |- 키 임포트 API의 트랙 타입 관련 오류를 수정하였습니다.|
| 2023.06.14 | 1.14.0 |- KMS 연동 시 외부 IV 값 적용이 가능하도록 개선하였습니다.<br/>- SPEKE v1용 KMS URL에 SPEKE v2 요청이 입력되는 경우 에러 처리가 되도록 수정하였습니다. |
| 2022.10.18 | 1.13.0|- AWS MediaPackage 연동 시, SPEKE v2에 추가된 각종 멀티키 패키징 프리셋을 지원합니다. (SPEKE v2 마일스톤 3)|
| 2022.06.14 | 1.12.1|- 보다 안정적인 서비스를 위한 데이터베이스 패치를 적용하였습니다.|
| 2022.03.23 | 1.12.0|- CMAF CBCS 암호화 지원을 위해 새로운 SPEKE v1 연동 URL을 추가하였습니다.<br/>- SPEKE v2 연동을 통한 멀티 키 패키징 시 비디오와 오디오 트랙의 키 ID가 동일하게 지정되는 문제를 수정하였습니다.|
| 2022.03.10 | 1.11.0|- CMAF CBCS 암호화 지원이 추가되었습니다. 해당 릴리즈 이후에 도브러너 KMS 연동으로 패키징된 CMAF 콘텐츠는 기존에 지원되던 클라이언트 환경 외에 윈도우즈 엣지 브라우저에서도 재생이 가능합니다.|
| 2021.11.03 | 1.10.0|- CPIX 기반 KMS 연동을 통한 NCG, NCG-HLS 패키징을 지원합니다.|
| 2021.08.24 | 1.9.0 |- SPEKE v2 지원이 추가되어 이제 AWS Elemental MediaPackage를 통한 라이브 패키징 시 멀티키 적용이 가능합니다.|
| 2021.07.21 | 1.8.1 |- 하나의 AWS MediaConvert 작업으로 DASH, HLS 콘텐츠를 동시에 패키징 한 경우에 재생이 불가능하던 오류를 수정하였습니다.|
| 2021.05.06 | 1.8.0 |- DRM 서비스의 상태에 이상이 있는 경우, KMS URL의 응답 데이터에 해당 에러코드(1919)가 추가됩니다. <br/>- 멀티키 패키징 이력의 저장과 관련된 이슈가 수정되었으며, DRM 패키징 이력 관리가 개선되었습니다. |
| 2021.03.25 | 1.7.0 |- Harmonic KMS Simple Type 연동 지원 추가 (ATEME Titan File 제품과 연동 가능) |
| 2020.11.11 | 1.6.0 |- 도브러너 KMS V2 싱글키 지원<br/>- Widevine response에 PSSH DATA Element 추가|
| 2020.04.29 | 1.5.0 |- 멀티키 패키징 지원 (KMS V2), 도브러너 CPIX API에 멀티키 기능 추가(V2)<br/>- Bitmovin Encoder SDK, 도브러너 CPIX V2 연동 샘플 제공 |
| 2019.01.29 | 1.4.0 |- 도브러너 CPIX 연동 규격 추가 |

### DRM CLI 패키저

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.04.01 | 4.3.0 |- 사용자 지정 KMS URL 쿼리 매개변수를 위한 `--kms_query_params` 옵션을 추가했습니다.<br/>- 다중 키 패키징 시 오디오 암호화를 활성화하는 `--encrypt_audio` 옵션을 추가했습니다.<br/>- Shaka Packager 기본 버전을 3.7.0으로 업데이트했습니다.<br/>- 멀티 키 패키징 시 기본적으로 오디오 암호화를 건너뛰도록 했습니다.<br/>- 매니페스트에 콘텐츠 정보를 자동으로 포함하는 기능을 제거하고 선택적 기능으로 분리했습니다. |
| 2025.09.09 | 4.2.0 |- Windows 실행 파일의 코드 서명이 업데이트 되었습니다.<br/>- 브랜드 이름을 DoveRunner로 업데이트했습니다. |
|2025.01.10|4.1.0|- DASH 콘텐츠에 대한 Huawei WisePlay DRM 패키징 기능이 추가되었습니다. |
|2024.06.02|4.0.0|- DASH Adaptation Set에 대한 라벨링 기능을 추가하였습니다.<br/>- MP4 유형 자막 형식에 대한 옵션(TTML 또는 VTT)을 추가하였습니다.<br/>- Shaka 패키저 v3.2.0을 기반으로 DRM CLI Packager를 업데이트하였습니다.<br/>- 빌드 환경 및 서드파티 라이브러리 버전을 업데이트하였습니다.<br/>- 최신 도브러너 CPIX 클라이언트 모듈을 적용하였습니다.<br/>- 각종 마이너 버그를 수정하고 내부 모듈을 리펙토링하였습니다.|
|2024.01.26|3.10.0|- 멀티키 콘텐츠 패키징과 관련하여 멀티 매니페스트 생성 기능을 개선하였습니다.|
|2022.12.26|3.9.0 |- 리눅스용 빌드에 xHE-AAC 오디오 코덱 지원이 추가되었습니다.<br/>- Ubuntu용 패키저 빌드와 도커 실행 환경을 통해 macOS 환경에서도 CLI 패키저를 구동할 수 있게 되었습니다. (인텔 맥과 애플 실리콘 모두 지원) |
|2022.08.25|3.8.4 |- `--mp4_subtitle` 옵션 사용 시 출력되는 패키징 결과물에 VTT 형식 대신 TTML 형식의 자막이 적용됩니다. (자막 입력은 VTT 형식 필요)<br/>- `-i` 옵션으로 원본 파일을 입력할 때 사용할 수 있는 `:video_bitrate` 옵션을 `:video_bandwidth`로 변경하였습니다.<br/>	- 기존 버전의 각종 오류를 수정하였습니다. |
|2022.04.07|3.8.3 |- CentOS, Ubuntu 및 Windows용 별도 실행 파일을 제공합니다.	<br/>- HLS 패키징 시 KMS 통신과 관련한 버그를 수정하였습니다.<br/>- 파라미터 입력 값의 한글 또는 공백 문자와 관련한 버그를 수정하였습니다. |
|2022.03.11| 3.8.2 |- 도브러너 KMS CPIX API 통신을 통한 CMAF 패키징 기능이 추가되었습니다.<br/>- CMAF 패키징과 DASH 또는 HLS 패키징을 별개로 처리하도록 사용 시나리오를 변경하였습니다. |
|2022.01.25| 3.8.1 |- CPIX 표준 API 기반의 DRM 암호화 키 연동을 지원합니다. 하위 호환성을 위해 기존의 독자 방식 키 연동 기능도 계속 지원합니다. <br/>- 키 서버에서 생성한 PSSH 대신 패키저 자체 생성한 PSSH를 사용할 수 있는 옵션이 추가되었습니다. <br/>- ABR 콘텐츠 패키징 시 Manifest 파일 내 비디오 트랙을 화질 별로 정렬할 수 있는 기능이 추가되었습니다. <br/>- 기존 버전의 각종 버그가 수정되었습니다. |
|2021.09.16| 3.7.0 |- 자막 포함 패키징시 새로 추가된 `--mp4_subtitle` 파라미터를 통해 mp4 임베드 형태의 자막을 적용할 수 있습니다. 해당 파라미터를 입력하지 않은 경우에는 기본적으로 텍스트 VTT 형태 자막을 출력합니다.<br/>- 오디오 입력 파일의 미디어 헤더에 언어 정보가 없는 경우, 패키저의 입력 값(`:lang` 파라미터)을 기준으로 패키징 결과물을 생성합니다. |
|2021.04.16| 3.6.5 |- DASH 패키징 시 오디오/자막 트랙 레이블 설정 기능을 추가했습니다.|
| 2021.01.04 | 3.6.4 |- 도브러너 Client SDK에서 콘텐츠 다운로드 크기를 알 수 있도록 manifest(mpd, m3u8) 파일에 Custom Info 추가 |
| 2020.09.17 | 3.6.3 |- DASH mpd의 각 트랙에 평균 대역폭을 적용하는 기능 추가<br/>- 서버에서 PSSH를 전달받는 대신 패키저에서 직접 생성하도록 변경 |
| 2020.07.10 | 3.6.2 |- CMAF(cbcs) 기능을 위해 PlayReady 헤더 4.3.0.0 버전 지원 |
| 2020.05.27 | 3.6.1 |- HLS 패키징에 HEVC 코덱 (fMP4 컨테이너) 지원 추가<br/>- 입력 파일 경로 파라미터 인코딩 개선 <br/>- C++14 적용을 위해 gcc 버전 변경 (v4.8.5 -> v7.3.1) |
| 2020.04.27 | 3.6.0 |- 트랙 별 다중 Manifest 생성 기능 추가<br/>- 멀티 키 패키징 기능 정식 추가<br/>- 비디오 비트레이트(대역폭) 설정 기능 추가 |
| 2020.03.06 | 3.5.1 |- 멀티 키 패키징을 위해 해상도 (SD, HD, UHD1) 별 최대 영상 높이 (max height) 설정 기능 추가 |
| 2020.02.26 | 3.5.0 |- DASH 패키징에 WebM 지원, HLS 트랙 (오디오, 자막) 이름 설정 기능 추가 |
| 2019.09.10 | 3.4.1 |- Widevine 멀티키 패키징 추가, 오디오 트랙 비암호화 (skip audio encryption) 옵션 추가 |
| 2019.08.30 | 3.4.0 |- 멀티 비트레이트 라이브 스트림 패키징 기능 추가<br/>- PlayReady 관련 버그 수정 |
| 2019.05.08 | 3.3.1 |- Widevine PSSH 관련 버그 수정 |
| 2019.04.26 | 3.3.0 |- CMAF 패키징 기능 추가 |
| 2019.02.27 | 3.2.0 |- 소스코드 리팩토링 및 버그 수정|
| 2018.12.27 | 3.1.1 |- 버그 수정 |
| 2018.11.30 | 3.1.0 |- PSSH 생성 기능 추가, 패키징 진행 상황 표시, 다국어 자막 지원|
| 2018.10.19 | 3.0.0 |- Shaka Packager 기반으로 코어 모듈 변경|

### CPIX API 클라이언트

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.01.09 | 1.6.0 |- PallyCon에서 DoveRunner로 브랜드명이 변경됨에 따라 패키지명, 클래스명 및 기타 관련 이름이 브랜드에 맞춰 업데이트되었습니다.<br/>- cpix-client에 대한 참조 라이브러리(Jackson) 버전이 2.15.2에서 2.17.2로 업데이트되었습니다. |
| 2025.02.27 | 1.5.0 |- WisePlay DRM 및 클리어 키 유형을 추가하였습니다.<br/>- Widevine, PlayReady, WisePlay DRM 유형에 HLSSignalingData를 추가하였습니다.<br/>- PlayReady SmoothStreaming 데이터를 추가하였습니다.<br/>- 암호화 방식에 기본 값을 추가하였습니다.<br/>- AES-128과 Sample-AES 암호화 방식의 처리를 개선하였습니다.<br/>- HLSSignalingData에서 Master와 Media 플레이리스트를 구분해 처리합니다. |
| 2024.02.07 | 1.2.0 |- 사용자가 KMS URL에 `key-rotation` 및 `enc-token`과 같은 매개변수를 입력할 수 있도록 CpixClient 클래스의 인터페이스를 수정했습니다.<br/>- Linux OS에서 빌드할 때 발생하는 문제를 수정했습니다. |
| 2023.09.25 | 1.1.0 |- 라이브 키 로테이션 지원을 추가하였습니다. (싱글 키 로테이션)<br/>- CPIX API 응답에 대한 에러 처리를 개선하였습니다. |
| 2023.08.08 | 1.0.0 |- 도브러너 CPIX API 클라이언트의 최초 릴리즈 버전입니다. <br/>- C++, C#, 자바, 파이선 등 다양한 개발 언어에 대한 샘플을 제공합니다. |

### Wowza DRM 플러그인

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.10.24 | 2.7.0 |- iOS 재생 보안 강화 및 화면 녹화 방지를 위해 NCG-HLS 출력에 SAMPLE-AES 암호화 옵션 지원을 추가했습니다.<br/>- 제품 브랜드명을 DoveRunner로 변경했습니다. 패키지명, 클래스명 및 기타 관련 명칭이 변경되었습니다.<br/>- cpix-client의 참조 라이브러리(Jackson) 버전을 업데이트했습니다(2.15.2 → 2.17.2). |
| 2025.04.23 | 2.6.0 |- 화웨이 WisePlay DRM과 클리어키 방식 콘텐츠 패키징 기능이 추가되었습니다. |
| 2024.05.20 | 2.5.0 |- `key-rotation` 파라미터에 대한 지원을 추가하였습니다.<br/>- Application.xml 설정 중 KMS URL과 관련된 property를 변경하였습니다. |
| 2023.09.25 | 2.4.0 |- 최신 버전 CPIX 클라이언트 모듈을 적용하였습니다. |
| 2023.04.07 | 2.3.0 |- CMAF-DASH 패키징 지원 기능을 추가하였습니다. (PlayReady, Widevine DRM 적용 가능) |
| 2021.10.29 | 2.2.0 |- CPIX 기반의 KMS 연동을 통한 NCG-HLS 패키징을 지원합니다. <br/>- 텍스트 파일 기반의 매핑 테이블을 이용한 CID 설정 기능을 지원합니다.|
| 2020.12.02 | 2.0.1 |- KMS URL 프로퍼티 이름과 관련한 버그 수정|
| 2020.11.25 | 2.0.0 |- 콜백 URL 대신 CPIX API를 통해 키 서버와 연동하도록 업데이트|
| 2018.12.06 | 1.2.2 |- HLS 라이브 스트림에 NCG 적용 시 버그 수정 |
| 2018.06.15 | 1.2.0 |- FairPlay Streaming 용 HLS 패키징 지원 |
| 2018.04.24 | 1.1.0 |- 키 매니저 에러 처리과 관련한 보안 개선|
| 2018.03.12 | 1.0.0 |- 최초 릴리즈 버전 |

## 서버/패키저 연동 샘플

### DRM 라이선스 토큰 샘플 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.07.10 | 3.0.0 |- WisePlay DRM에 대한 라이선스 토큰 생성 기능이 추가되었습니다.	<br/>- 기존에 하나의 저장소로 관리되던 샘플 코드를 각 개발 언어별 저장소들로 분리하였습니다.<br/>- 도브러너 브랜드 명과 URL을 적용하였습니다. |
| 2024.04.30 | 1.0.0 |- 서버 개발 언어 별로 분리되어 있던 토큰 샘플을 하나의 저장소로 통합하였습니다.<br/>- CSL, License Cipher 등 도브러너 멀티 DRM의 최신 기능을 지원하도록 샘플을 업데이트하였습니다. |

### Shaka Packager 연동 샘플

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.01.10 | 1.1.0 |- 제품 브랜드명과 API 참조를 DoveRunner로 변경하였습니다.<br/>- 해당 연동 샘플에 대한 [가이드 문서](/ko/content-security/multi-drm/packaging/shaka-packager-integration/)를 추가하였습니다. |
| 2024.04.30 | 1.0.0 |- Shaka Packager 연동 샘플의 최초 릴리즈입니다. |

### GCP Live Stream 연동 샘플

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.01.20 | 1.1.0 |- 제품 브랜드명과 API 참조를 DoveRunner로 변경하였습니다. |
| 2023.05.19 | 1.0.0 |- GCP Live Stream 연동 샘플의 최초 릴리즈입니다. |

## DRM 클라이언트 SDK

### Widevine Android SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.07.01 | 4.5.3 |- AndroidX Media3 종속성을 1.8.0에서 1.10.0으로 업데이트했습니다.<br/>- Media3 1.9.0 이상 버전에 맞게 `WvMediaDrmCallback`을 업데이트했습니다.<br/>- Media3 1.10.0 이상 버전을 사용하는 앱과 호환됩니다.<br/>- SDK의 공개 API 규격은 변경되지 않았으므로 기존 앱의 연동 코드를 수정하지 않고 이 버전으로 업데이트할 수 있습니다. |
| 2026.05.19 | 4.5.2 |- DRM License Cipher v1.6.1 버전 지원을 위해 SDK 라이브러리를 업데이트했습니다.<br/>- Android 12 이하 버전에서 `FOREGROUND_SERVICE_DATA_SYNC` 권한 체크 오류로 인해 다운로드가 실패하던 문제를 수정했습니다. |
| 2026.04.16 | 4.5.1 |- `ContentData` 클래스에 mimeType 속성이 추가되어 미디어 콘텐츠의 MIME 유형을 강제합니다.<br/>- SDK의 `AndroidManifest.xml` 파일에서 `FOREGROUND_SERVICE` 및 `FOREGROUND_SERVICE_DATA_SYNC` 권한을 제거했습니다. 이전에는 이러한 권한이 SDK AAR 내에 선언되어 `Android Manifest Merger`를 통해 호스트 앱의 매니페스트에 자동으로 병합되었는데, 이로 인해 다운로드 기능을 사용하지 않는 앱이 Google Play 검토에서 거부되는 문제가 발생했습니다. |
| 2025.09.25 | 4.5.0 | - 지원되는 최소 안드로이드 버전이 5.0에서 6.0으로 업데이트되었습니다.<br/>- 미디어3 라이브러리 버전이 1.8.0으로 업데이트되었습니다.<br/>- 2.x SDK로 다운로드한 콘텐츠의 재생 지원을 위해 `ContentData` 클래스에 `localFileUrl` 파라미터를 추가하였습니다.<br/>- `token` 및 `customData`를 대체하기 위해 `DrmConfiguration` 클래스에 `authData` 파라미터를 추가하였습니다. |
| 2025.09.09 | 4.4.0 |- 스트리밍 콘텐츠의 영구 라이선스를 지원하기 위해 `getMediaSource` 함수가 업데이트되었습니다.<br/>- 브랜드 이름이 `PallyCon`에서 `DoveRunner`로 업데이트되었습니다. |
| 2024.12.24 | 4.3.2 |- 클리어 키와 Non-DRM 콘텐츠에 대한 지원이 추가되었습니다.  |
| 2024.09.24 | 4.3.1 |- 공통 미디어 클라이언트 데이터(CMCD) 표준에 대한 지원이 추가되었습니다.<br/>- 라이선스 Policy 2.0 버전을 지원합니다.<br/>- 이벤트 리스너 기능 및 콜백 인터페이스를 추가하였습니다.<br/>- 내부 라이브러리들을 업데이트하고 Media3 ExoPlayer를 1.4.1로 업데이트하였습니다. |
| 2024.07.12 | 4.2.0 |- 여러 콘텐츠의 동시 다운로드 시나리오에 대한 지원을 개선하였습니다. <br/>- Android TV 샘플을 추가하였습니다. |
| 2024.05.03 | 4.1.0 |- 일시 정지 후 제거 시 재다운로드가 발생하지 않는 문제를 수정하였습니다.<br/>- 더 나은 크롬캐스트 지원을 위해 castPlay 샘플을 업데이트했습니다.  |
| 2024.02.27 | 4.0.1 |- `getDrmSessionManager` 함수를 추가하였습니다. <br/>- `drmSessionManager` 파라미터를 입력할 수 있는 `getMediaSource` 함수를 추가했습니다. 미디어 소스 오브젝트를 생성하는 drmSessionManager를 지정할 수 있습니다.<br/>- 메인 스레드에서 `download()` 함수가 실행될 때 충돌이 발생하던 문제를 수정했습니다. 해당 함수는 내부에서 백그라운드 스레드로 실행됩니다.<br/>- 두 개 이상의 비디오 트랙을 선택할 때 발생하는 충돌을 수정했습니다. |
| 2024.01.11 | 4.0.0 |- 이번 버전부터 본 SDK는 기존의 ExoPlayer 라이브러리 대신 미디어3 라이브러리에 기반합니다.<br/>- 기존 ExoPlayer 는 2.19.1 버전을 마지막으로 구글 측의 지원이 중단되었습니다.<br/>- 기존 ExoPlayer 패키지를 계속 사용하려면 도브러너 Widevine SDK v3.4.x 버전을 이용해야 합니다. |
| 2023.12.11 | 3.4.6 |- 라이브 콘텐츠의 라이선스 키 로테이션 기능이 제대로 작동하지 않던 문제를 수정했습니다. |
| 2023.11.16 | 3.4.3 |- 2.x 버전으로부터의 로컬 데이터베이스 마이그레이션 기능이 제거되었습니다. |
| 2023.10.30 | 3.4.0 |- Widevine L3 취약점을 보완할 수 있는 라이선스 사이퍼 SDK에 대한 지원이 추가되었습니다.<br/>- 기존 2.x 버전에서 지원되던 부가 시나리오에 대한 지원이 추가되었습니다.<br/>- DownloadService에서 발생하던 알림 메시지를 제거하였습니다.<br/>- 크롬캐스트 지원과 관련한 문제를 수정하였습니다. |
| 2023.05.23 | 3.3.0 |- DRM 라이선스 획득을 위해 HTTP 요청/응답을 수행할 때 애플리케이션에서 커스텀 HTTP 헤더 및  바디 데이터(챌린지) 암호화를 적용할 수 있는 콜백 기능이 추가되었습니다.<br/>- 특정 안드로이드 기기에서 와이드바인 오류를 공장 초기화 없이 해결할 수 있는 기기 재프로비저닝(re-provisioning) 기능이 추가되었습니다. |
| 2023.03.10 | 3.2.0 |- Widevine HLS 콘텐츠에 대한 지원이 추가되었습니다.<br/>- Non-DRM 콘텐츠에 대한 다운로드 기능이 추가되었습니다.|
| 2022.12.20 | 3.1.0 |- 구 버전 SDK (v2.x)를 통해 다운로드된 오프라인 라이선스에 대한 데이터 이전 기능(migrateDB() 함수)을 추가하였습니다.<br/>- v2.x SDK를 사용하는 고객은 라이선스 데이터 이전 프로세스를 클라이언트 앱에 적용해야 합니다. |
| 2022.11.18 | 3.0.0 |- Android ExoPlayer의 콘텐츠 다운로드 및 DRM 라이선스 관리 기능을 기반으로 다운로드/오프라인 시나리오를 지원하도록 SDK 아키텍처를 업데이트했습니다.<br/>- ExoPlayer v2.18.1을 지원합니다. | 
| 2022.03.31 | 2.4.0 |- ExoPlayer 2.16.1 버전을 지원합니다.<br/>- 일부 안드로이드 기기에서 발생하는 호환성 문제를 해결하기 위해 Widevine Security Level을 L3로 강제 지정할 수 있는 기능이 추가되었습니다.<br/>	- 각종 오류 사항들을 수정하였습니다.|
| 2021.12.13 | 2.3.1 | - 이전 버전에서 불필요하게 추가되었던 MANAGE_EXTERNAL_STORAGE 권한이 제거되었습니다. |
| 2021.11.17 | 2.3.0 | - ExoPlayer 2.14.2 버전을 지원합니다. |
| 2021.10.21 | 2.2.0 | - provideForceProvisionRequest() 함수가 추가되었습니다.<br/> 해당 함수는 특정 기기에서 Widevine DRM 프로비져닝 오류로 인해 'Failed to restore keys: General DRM error (-2000)'와 같은 에러가 발생할 때 사용할 수 있습니다. <br/>자세한 사항은 SDK에 포함된 문서를 참고하시기 바랍니다. |
| 2021.10.07 | 2.1.3 | - 더 이상 사용되지 않는 org.apache.http 라이브러리를 제거하였습니다. |
| 2021.09.23 | 2.1.2 | - 비디오나 오디오만 있는 MPD 파일을 다운로드할 때 발생하는 오류가 수정되었습니다. |
| 2021.08.12 | 2.1.1 | - PallyconDownloadEventListener.onProgressUpdate() 함수가 리턴하는 다운로드 진행률이 각각의 트랙이 아닌 해당 다운로드 전체 크기에 대한 비율로 처리됩니다. |
| 2021.07.13 | 2.1.0 | - 콘텐츠 키를 요청할 수 있는 PallyconKeyRequest 인터페이스가 추가되었습니다. <br/> 자세한 사항은 SDK에 포함된 문서를 참고하시기 바랍니다. |
| 2021.06.29| 2.0.3 | - 라이선스 서버로부터 에러코드가 응답된 경우, 라이선스 요청을 재시도하는 대신 PallyConServerResponseException 예외가 반환되도록 SDK를 업데이트 하였습니다.<br/>- 이제 도브러너 Widevine SDK 라이브러리에서 READ_PHONE_STATE 권한을 요구하지 않습니다. |
| 2021.04.30 | 2.0.1 |- 다운로드 콘텐츠의 오프라인 재생 시, 기기 시간이 과거로 변경된 경우에 앱 크래시가 발생하는 버그를 수정하였습니다.<br/>- 이전 버전(v2.0.0)을 사용 중인 고객은 필히 업데이트해 주시기 바랍니다.|
| 2021.04.15 | 2.0.0 |- 본 SDK는 ExoPlayer 2.13.2 버전을 지원합니다. <br/>- DrmSessionManager를 반환하는 인터페이스가 변경되었습니다.|
| 2021.02.11 | 1.15.0 |- 디바이스의 루팅 여부를 알 수 있는 API가 추가되었습니다. PallyConDetectRooting.detectRootingDevice()|
| 2021.01.04 | 1.14.0 |- MPEG-DASH 파일 크기를 알수 있는 PallyConMpegDashInfo 클래스가 추가됩니다.|
| 2020.12.22 | 1.13.0 |- SDK 샘플이 라이선스를 Token으로 획득하도록 변경됩니다.<br/>- Token 으로 라이선스를 획득할 수 있는 API가 추가됩니다.<br/>- PallyConTokenInfo 클래스에 User ID와 Key Rotation 정보가 반영됩니다.|
| 2020.09.25 | 1.12.0 |- ExoPlayer 2.11.8 버전을 지원합니다.|
| 2020.08.12 | 1.11.0 |- 멀티 키 콘텐츠와 오프라인 렌탈 시나리오를 지원합니다.<br/>- v1.10.1에 추가되었던 existDownloadLicense 함수가 제거되고, 새롭게 getOfflineLicenseExpireDate 함수가 추가되었습니다.|
| 2020.07.27 | 1.10.2 |- 구글 정책에 따라 Target 28 -> 29로 변경됩니다.<br/>- 콘텐츠가 저장될 폴더명을 지정할 수 있는 PallyConDownloadTask API가 추가됩니다.<br/>- 콘텐츠 URL 분석 처리가 수정됩니다. |
| 2020.05.12 | 1.10.1 |- SDK에 적용된 ExoPlayer 버전이 2.10.4 -> 2.10.8 로 변경됩니다. |
| 2019.12.11 | 1.10.0 |- existDownloadedLicense API가 추가되어 DB에 라이선스 존재 여부를 알수 있습니다. |
| 2019.10.07 | 1.9.0 |- ExoPlayer 2.10.x 버전 업데이트로 AndroidX, Android API 28, Gradle 5.4.1, Gradle Plugin 3.5.0 이 적용되었습니다.<br/>- setEnableLog 메소드가 제거 되었습니다.<br/>- SDK 업데이트로 Android/AndroidTV Sample도 함께 업데이트 되었습니다. 변경 사항은 각 샘플을 확인하시기 바랍니다. |
| 2019.09.09 | 1.8.0 |- removeLicense(), removeLicenseByCustomData(), removeLicenseByProxy() 메소드에서 네트워크 연결 없이 라이선스 삭제가 가능합니다. |
| 2019.08.16 | 1.7.0 |- PallyConWVSDK 크기를 최적화는 작업이 진행되었습니다.<br/>- MpdTrackSelector 클래스에 setCookie() 함수가 추가했습니다.<br/>- PallyconLoggingListener가 추가 되어 내부 로그를 확인할 수 있습니다.<br/>- PallyconWVMSDK.setEnableLog 함수가 다음 버전에서 제외됩니다.  |
| 2019.07.12 | 1.6.8 |- SetCookie 함수의 오류를 수정했습니다. |
| 2019.06.20 | 1.6.7 |- Token 으로 라이선스를 다운로드 받을 수 있는 downloadLicenseByToken() 함수를 추가했습니다. |
| 2019.06.11 | 1.6.6 |- MediaDrmCallback 이 동작하는 SDK API에 설정된 Cookie가 적용되도록 변경되었습니다.<br/>- setCookie함수에 예외처리가 추가되었습니다.<br/>- enableLog함수명이 setEnableLog으로 변경하였으며, 예외처리가 추가되었습니다. |
| 2019.06.05 | 1.6.5 |- 64비트 지원 추가 |
| 2019.04.24 | 1.6.4 |- 안드로이드 4.4 ~ 5.0 버전 단말에서 발생하는 앱 설치 오류를 수정 |
| 2019.02.13 | 1.6.3 |- 콘텐츠 다운로드 완료 후 호출되는 콜백함수 추가<br/>- ExoPlayer 2.9.3 적용<br/>- Gradle version 4.6, Android Plugin version 3.2.1, compileSdkVersion 27 적용<br/>- Android 9.0에서 실행 시 발생하는 내부 오류 수정 |
| 2018.12.27 | 1.6.1 |- 어댑티브 DASH 콘텐츠를 다운로드 할 때 해상도를 선택할 수 있는 기능이 추가 되었습니다. |
| 2018.09.19 | 1.6.0 |- Simple 버전 샘플 프로젝트 추가. 기존 샘플보다 쉽게 SDK 기본 기능을 체험할 수 있습니다.<br/>- 대상 사이트가 SDK 사용 권한이 있는지 확인하기 위해 SDK 인증 기능을 추가했습니다. |

### FPS iOS SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.04.13 | 2.6.1 |- 콘텐츠 키 ID 처리 방식을 개선하여 `skd://` 접두사를 제거하는 대신 원래 값을 그대로 유지했습니다.<br/>- 데이터베이스에서 오프라인 라이선스 조회를 위한 하위 호환성을 추가하여 이전에 저장된 라이선스(접두사 제외)도 올바르게 검색할 수 있도록 했습니다. |
| 2026.03.24 | 2.6.0 |- 개발 및 테스트 워크플로우의 편의성 향상을 위해 시뮬레이터 환경 지원을 추가하였습니다.<br/>  - 참고: 시뮬레이터 환경에서는 DRM 콘텐츠 재생을 지원하지 않습니다. DRM 기능 검증은 반드시 실제 기기에서 진행해야 합니다.<br/>- Key ID 값이 `/`로 시작할 경우 URL 스킴 파싱 중 오류가 발생하던 문제를 수정하여, 라이선스 취득 과정에서의 예기치 않은 런타임 오류를 방지합니다. |
| 2025.09.01 | 2.5.0 |- 제품 브랜드명을 PallyCon에서 DoveRunner로 변경하였습니다.<br/>- iOS 16.7.11에서의 오프라인 재생 오류를 수정하였습니다. |
| 2025.03.24 | 2.4.0 |- 오프라인 라이선스의 만료일을 가져오는 클래스 및 메서드를 추가하였습니다.<br/>- 다운로드할 트랙 정보를 얻기 위한 m3u8 파서 클래스를 추가하였습니다.<br/>- SDK 최소 지원 버전이 iOS 13.0으로 변경되었습니다.<br/>- 라이선스 리뉴얼 구현이 DoveRunner 콘솔의 구성과 연동되도록 변경되었습니다.<br/>- DrmConfiguration 데이터에서 keyIdList 및 allowsKeyRotation 항목을 제거하였습니다. |
| 2024.07.26 | 2.3.0 |- iOS 12에서만 발생하는 CoreData 오류를 수정하였습니다. <br/>- KeyID를 사용하여 라이선스를 발급받을 수 없는 오류를 수정하였습니다. <br/>- PallyConDrmConfiguration.authData 입력이 선택 사항으로 변경되었습니다. <br/>- authData가 선택 사항으로 변경되어 PallyConDrmConfiguration.init() 함수가 수정되었습니다.|
| 2024.05.02 | 2.1.0 |- 애플의 앱스토어 정책에 따라 개인정보 매니페스트가 SDK에 추가되었습니다.<br/>- 2024년 5월 1일부터 앱을 앱스토어에 등록하거나 갱신하려면 해당 매니페스트가 추가된 최신 버전 SDK를 적용해야 합니다. |
| 2024.01.30 | 2.0.0 |- 더 나은 기능과 명확성을 위해 SDK API를 업데이트했습니다.<br/>- 더 이상 필요하지 않은 일부 오래된 API를 사용 중지했습니다. 자세한 사항은 SDK 내부 문서를 확인하시기 바랍니다. |
| 2023.07.19 | 1.17.3 |- iOS 17 베타 버전에서 발생하는 오류를 수정하었습니다. |
| 2023.03.10 | 1.17.2 |- 에어플레이 재생 기능과 관련한 문제를 수정하였습니다. |
| 2023.01.09 | 1.17.1a |- SDK 라이브러리 파일과 관련한 문제를 수정하였습니다. |
| 2022.08.22 | 1.17.1 |- 저용량 콘텐츠 다운로드 시 라이선스 오류 발생을 막기 위해서, 라이선스를 우선 획득하는 createDownloadTask() 함수가 추가되었습니다. <br/>- 콘텐츠 다운로드 기능을 AVContentKeySession 기반으로 업데이트하였습니다. 이에 따라 다운로드 기능은 iOS 11.1 이상에서만 지원됩니다. <br/>- AVAssetResourceLoader와 관련한 각종 오류를 수정하였습니다. |
| 2021.12.17 | 1.15.0 |- 기존에 iOS와 tvOS용으로 구분되었던 FPS SDK를 하나로 통합하였습니다. <br/>- tvOS 앱의 스토어 업로드를 위해 xcframework 라이브러리에서 bitcode 빌드를 지원합니다. |
| 2021.08.27 | 1.14.0 |- 클라이언트 앱에서 자막 추가 등 m3u8 playlist의 내용을 수정할 수 있도록 resourceLoaderRequest() 함수를 추가하였습니다.  |
| 2021.07.16 | 1.13.0 |- 앱에서 콘텐츠 키에 대한 요청과 응답을 직접 처리할 수 있도록 contentKeyRequest() 함수를 추가하였습니다.<br/>- proxy 서버 등 커스텀 라이선스 URL을 입력할 수 있는 파라미터를 prepare() 함수에 추가하였습니다.|
| 2021.01.04 | 1.12.0 |- HLS 파일 크기를 알수 있는 PallyConHLSInfo 클래스가 추가됩니다. Track 별로 콘텐츠 크기를 제공합니다.<br/>- 샘플에 HLS 사이즈를 볼수 있는 예제가 포함되어 있습니다.|
| 2020.12.23 | 1.11.0 |- SDK 샘플이 Token으로 라이선스를 획득하도록 코드가 변경됩니다.<br/>- Token 기반 라이선스 획득과 관련된 API가 추가됩니다.<br/>- PallyConTokenInfo 클래스에 User ID와 Key Rotation 정보가 추가되며, token 프로퍼티에서 policy 프로퍼티로 이름이 변경됩니다.|
| 2020.09.25 | 1.9.0 |- 1.8.5 버전에 추가되었던 existDownloadedLicense 함수가 제거되었습니다. 새로 추가된 getOfflineLicenseExpireDate 함수를 통해 라이선스 유무와 만료 날짜를 알 수 있습니다.<br/>- getOfflineLicenseExpireDate 함수가 추가되었습니다.<br/>- 멀티키로 패키징된 콘텐츠의 라이선스 획득과 재생을 지원합니다.|
| 2020.07.06 | 1.8.8 |- SDK가 Xcode 11.5 와 swift 5.2.4가 반영 됩니다.<br/>- XCframework SDK 가 추가됩니다. |
| 2020.02.24 | 1.8.7 |- 콘텐츠 다운로드와 라이선스 다운로드가 함께 동작하도록 수정되었습니다. |
| 2020.01.22 | 1.8.6 |- 콘텐츠 다운로드 시 Cellular 사용을 제한 할 수 있습니다.<br/>- 시뮬레이터 라이브러리(x86_64, i386)가 제거된 SDK가 배포됩니다. |
| 2020.12.11 | 1.8.5 |- 라이선스 존재 여부를 알수 있는 existDownloadedLicense 가 추가됩니다. |
| 2019.11.07 | 1.8.4 |- Xcode 11.2, Swift 5.2 에서 빌드된 iOS/tvOS SDK를 배포합니다. |
| 2019.10.18 | 1.8.3 |- Xcode 11, Swift 5.1 에서 빌드된 iOS/tvOS SDK를 배포합니다. |
| 2019.07.29 | 1.8.2 |- iOS 9 타겟에서 Symbol not found 발생하는 오류 수정하였습니다. |
| 2019.07.19 | 1.8.1 |- 저장된 라이선스가 삭제되지 않는 버그를 수정하였습니다. |
| 2019.06.01 | 1.8.0 |- SDK 인증 과정을 제거했습니다. |
| 2019.04.05 | 1.7.0 |- Swift 5.0 버전을 지원합니다.<br/>- 다운로드 기능의 버그를 수정하였습니다. |
| 2019.01.28 | 1.6.5 |- KeyChain에 접근 권한을 '항상 접근'으로 변경하였습니다. |
| 2019.01.05 | 1.6.4 |- SDK 인증 관련 일부 기능이 수정되었습니다.|
| 2018.12.20 | 1.6.3 |- 어댑티브 스트림 콘텐츠의 특정 Bandwidth 파일만 다운로드 받을 수 있도록 파라미터가 추가되었습니다. |
| 2018.11.29 | 1.6.2 |- 초기 SDK 정보 획득 시 저장된 KeyChain 정보를 초기화 하도록 수정했습니다.<br/>- 인증 실패 시 KeyChain 에 저장된 정보를 초기화 하도록 수정했습니다. |
| 2018.11.21 | 1.6.1 |- SDK 인증 시 키체인 저장과 관련된 오류를 수정하였습니다.<br/>- Download API의 오류를 수정하였습니다. |
| 2018.09.19 | 1.6.0 |- Simple 버전 샘플 프로젝트 추가. 기존 샘플보다 쉽게 SDK 기본 기능을 체험할 수 있습니다.<br/>- Swift 4.2, iOS 12 지원. Xcode 10, Swift 4.2 로 빌드 되었습니다.<br/>- 대상 사이트가 SDK 사용 권한이 있는지 확인하기 위해 SDK 인증 기능을 추가했습니다. |

### NCG Android SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.06.11 | 2.19.1 |- `NcgEpubFile.close()` 호출 시 네이티브 파일 컨텍스트를 즉시 완전히 해제하도록 동작을 변경했습니다. 동일 CID 재오픈 시에도 네이티브 레이어의 암호화 객체는 캐시되므로 성능에는 영향이 없습니다.<br/>- `NcgEpubFile.release()` 호출 시 내부 라이선스 및 헤더 상태가 초기화되도록 개선하여, 동일 인스턴스에서 다른 CID를 오픈할 때 라이선스 재검증이 정상적으로 수행됩니다.<br/>- `NcgEpubFile` 인터페이스(`createNcgEpub()`, `open()`, `close()`, `release()`)의 Javadoc을 올바른 라이프사이클 및 CID당 인스턴스 사용 규칙에 맞게 업데이트했습니다.<br/>- 멀티스레드 환경에서 동일한 콘텐츠를 빠르게 반복 오픈할 때 `NcgEpubFile`에서 발생하던 네이티브 크래시(SIGSEGV / double-free)를 수정했습니다. `close()`와 `release()` 간의 동시 접근 문제가 원인이었으며, 두 메서드에 동기화(synchronized) 처리를 적용하여 해결했습니다.  |
| 2026.04.29 | 2.19.0 |- NcgEpubFile 클래스는 이제 멀티스레드 사용을 지원합니다. 각 NcgEpubFile 인스턴스는 단일 스레드에서 처리되어야 하며, 동일한 open() 호출에서 여러 스레드가 동시에 읽는 것은 지원되지 않습니다.	<br/>- NcgEpubFile.open() 함수에 cID(콘텐츠 ID) 매개변수를 추가했습니다. 동일한 콘텐츠 ID가 재사용될 경우 내부 파일 열기 및 DRM 정보 구문 분석이 건너뛰어져 성능이 향상됩니다.<br/>- NcgEpubFile.close() 함수는 더 이상 open() 호출 직후에 호출되지 않습니다. 모든 파일 작업이 완료된 후에만 close() 함수를 호출해야 합니다.| 
| 2025.02.19 | 2.16.5 |- 16 KB 페이지 사이즈에 대한 지원이 추가되었습니다.<br/>- targetSdk 버전이 35로 업데이트되었습니다.<br/>- EPUB용 파일을 열 때 발생할 수 있는 충돌 문제를 수정하였습니다. |
| 2024.11.06 | 2.16.4 |- 동일한 파일을 두 번 열 때 잘못된 닫기 처리 문제를 수정했습니다. |
| 2024.08.22 | 2.16.2 |- 구글 플레이 스토어 정책에 따라 targetSdk 버전을 34로 상향하였습니다.<br/>- NcgEpubFile 클래스의 open() 함수 성능을 개선하였습니다. |
| 2024.02.21 | 2.16.0 |- Ncg2Agent 오브젝트를 생성할 수 있는 빌더 클래스를 추가했습니다.<br/>- Ncg2Agent에 LicenseConfig 클래스를 사용하는 새로운 함수들을 추가했습니다. 자세한 사항은 SDK에 포함된 릴리즈 노트를 참조하시기 바랍니다.<br/>- SDK 문서가 DoxyGen에서 JavaDoc으로 변경되었습니다.<br/>- 라이브러리 배포 방법을 JAR에서 AAR로 변경했습니다.<br/>- NCG init() 중 registerReceiver() 함수의 크래시를 수정했습니다. |
| 2024.01.11 | 2.15.0|- 성능 향상을 위해 내부 라이브러리를 업데이트했습니다. |
| 2023.08.29 | 2.14.0|- 이펍(ePUB) 콘텐츠에 대한 복호화 성능을 개선하였습니다.|
| 2022.12.19 | 2.12.0|- 이펍(ePUB) 콘텐츠 지원 개선을 위해 Poco zip 라이브러리와 관련 API를 추가하였습니다. <br/>- 이펍 파일(zip 포맷) 지원과 관련한 샘플 코드를 추가하였습니다. |
| 2022.04.25 | 2.11.1|- 안드로이드의 범위 지정 저장소(Scoped Storage) 지원을 위해 샘플 앱의 다운로드 저장 위치를 변경하였습니다.<br/>- DRM API의 반복 호출 시 세그멘테이션 에러가 발생하던 이슈를 수정하였습니다. |
| 2021.12.23 | 2.11.0|- NCG 코어의 각종 버그를 수정하고 안정성을 개선하였습니다.|
| 2021.09.12 | 2.10.0|- 특정 상황에서의 라이선스 발급 실패를 해결하기 위해, 라이선스 에러코드가 7003이고 Device ID가 Widevine UUID인 경우 Device ID와 RODB를 초기화합니다. 이 경우 기존에 기기에 저장된 라이선스 정보는 삭제되며, Ncg2Agent.init()함수를 호출한 후 새로 라이선스를 요청해야 합니다.|
| 2021.04.21 | 2.9.0 |- SDK를 통해 재생되는 NCG HLS 스트림에 대한 불법적 접근을 막기 위해 로컬 웹서버의 보안을 강화했습니다.|
| 2021.03.04 | 2.8.0 |- 라이선스 토큰의 정보를 확인할 수 있는 getTokenInformation() 함수가 추가되었습니다. <br/>- SDK 샘플을 토큰 기반으로 업데이트하였습니다.|
| 2021.01.07 | 2.7.0 |- NCG-HLS 콘텐츠에 대한 다운로드 재생을 지원합니다.|
| 2020.09.03 | 2.6.3 |- SDK Sample 프로젝트에 scoped storage 권한이 추가됩니다.|
| 2020.08.12 | 2.6.2 |- Token으로 라이선스 획득이 가능한 API가 추가됩니다.|
| 2020.07.01 | 2.6.1 |- 샘플 프로젝트 오류를 수정하여 반영합니다.|
| 2020.05.28 | 2.6.0 |- Android 루팅 확인 시 강도를 지정할 수 있는 setRootingCheckLevel() API가 추가됩니다. |
| 2020.04.29 | 2.5.5 |- 구글 정책에 따라 타겟 버전이 29로 변경됩니다. <br/>- Android Q(API 29)부터 Widevine UUID를 Device ID로 사용합니다.| 
| 2020.04.02 | 2.5.4 |- NCG Core 에 m3u8 파일에서 EXT-X-MAP에 있는 URI 추출하는 함수가 추가되어 NCG SDK에 반영됩니다.<br/>- NCG Advanced 샘플이 HLS 콘텐츠 여부에 따라 각각 다른 플레이어가 호출되도록 변경됩니다. |
| 2020.03.13 | 2.5.3 |- 안드로이드 루팅 체크가 변경됩니다. | 
| 2020.02.05 | 2.5.2 |- Secure Time 관련 로그가 NcgExceptionalEventListener로 출력됩니다.<br/>- NCG Core에 모든 로그가 출력되지 않습니다. |
| 2019.11.11 | 2.5.1 |- Android Target Sdk Version이 27에서 28로 변경됩니다.<br/>- AndroidX 가 적용되었습니다.<br/>- 일부 디바이스에서 외부 출력 및 루팅 확인이 안되는 문제를 수정했습니다. |
| 2019.10.07 | 2.5.0 |- 로컬 웹서버에서 크래시 발생을 제거했습니다. |
| 2019.06.05 | 2.4.0 |- Android 64bit(arm64-v8a, x86_64) 지원<br/>2019년 8월부터 Android 64bit 지원이 필수가 되어 NCG SDK에 Android ABI arm64-v8a, x86_64 가 포함되었습니다. 8월부터 구글 플레이에 앱을 등록하려면 NCG SDK v2.4.0 이상을 반드시 적용해야 합니다.<br/>- Android API Level 변경(API 15 -> 16)<br/>NCG SDK 64bit를 지원하면서 NDK에서 최소 지원이 Android API Level 16 으로 변경되었습니다. 64bit 에서 Android 최소 지원은 Android API Level 21 입니다. |
| 2019.02.27 | 2.3.2 |- 안드로이드 9.0 버전 지원이 추가되었습니다. |
| 2018.12.27 | 2.3.1 |- Android 에뮬레이터에서 실행되는 것을 차단하는 보안 패치가 추가되었습니다. |
| 2018.09.19 | 2.3.0 |- Simple 버전 샘플 프로젝트 추가. 기존 샘플보다 쉽게 SDK 기본 기능을 체험할 수 있습니다.<br/>- 시큐어타임 로직 개선. 일부 단말에서 오프라인 재생 시 보안이 강화되었습니다. |

### NCG iOS SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.04.22 | 3.2.0 |- 파일 I/O API가 이제 스레드 안전합니다. `open:path:error:`도 이제 스레드 안전합니다.<br/>- 라이선스는 콘텐츠 ID별로 내부적으로 캐시되어 반복 호출 시 성능이 최적화됩니다.<br/>- `open:path:error:` 함수의 시그니처가 변경되었습니다. 첫 번째 매개변수가 파일 경로 대신 contentId(콘텐츠 ID)입니다.<br/>- 다음 `NCGFile` API는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다.<br/>- `open:path:isPrepare:error:` → 대신 `open:contentId:path:error:`를 사용하십시오.<br/>- `openReusingNCGFile:path:error:` → 대신 `open:contentId:path:error:`를 사용하십시오.<br/>- `prepare:error:` → 더 이상 필요하지 않습니다. `open:contentId:path:error:`에서 라이선스를 자동으로 처리합니다. |
| 2024.06.26 | 3.0.0 |- 토큰 기반 라이선스 연동 위주로 iOSNcgSDK의 API를 리펙토링 하였습니다.<br/>- 더 이상 필요하지 않은 일부 오래된 API를 사용 중단(Deprecate) 하였습니다. 해당 API는 v3.0.0 릴리스 후 6개월 후에 SDK에서 제거됩니다.<br/>- Swift-DocC 기반으로 SDK 문서를 리뉴얼 하였습니다. |
| 2024.05.02 | 2.13.0 |- 애플의 앱스토어 정책에 따라 개인정보 매니페스트가 SDK에 추가되었습니다.<br/>- 2024년 5월 1일부터 앱을 앱스토어에 등록하거나 갱신하려면 해당 매니페스트가 추가된 최신 버전 SDK를 적용해야 합니다. |
| 2024.01.11 | 2.12.0|- 성능 향상을 위해 내부 라이브러리를 업데이트했습니다. |
| 2023.02.08 | 2.11.1 |- 이펍(ePub) 콘텐츠를 더 잘 지원하기 위해 zip.ncg 파일을 읽을 수 있는 Ncg2FileZip 인터페이스를 추가했습니다. 자세한 내용은 SDKSimple-Swift-Zip 샘플을 참조하세요.<br/>- 지원되는 iOS 버전이 최소 iOS 11 이상으로 변경되었습니다. |
| 2022.02.18 | 2.10.1 |- NCG 코어 라이브러리의 각종 버그를 수정하고 안정성을 개선했습니다. |
| 2022.01.20 | 2.10.0 |- SDK에서 사용하는 CURL 라이브러리를 최신 버전(7.79.1)으로 업데이트 했습니다.|
| 2021.11.29 | 2.9.1 |- 라이브러리 헤더 경로를 Simulator와 Device 구분 없이 하나로 통합했습니다.|
| 2021.11.04 | 2.9.0 |- xcframework 형태의 NCG 라이브러리를 추가했습니다.|
| 2021.09.02 | 2.8.2 |- Advanced Sample 에서 NcgHttpRequestDelegate 프로토콜에 대한 델리게이트가 로컬웹서버에 설정이 안되는 오류를 수정했습니다.|
| 2021.06.11 | 2.8.1 |- 호환성 향상을 위해 SDK 내부에서 사용되는 CURL 라이브러리를 교체했습니다. |
| 2021.04.21 | 2.8.0 |- SDK를 통해 재생되는 NCG HLS 스트림에 대한 불법적 접근을 막기 위해 로컬 웹서버의 보안을 강화했습니다.|
| 2021.03.11 | 2.7.1 |- Ncg2Agent.setExceptionalEventDelegate: 설정과 NcgExceptionalEventDelegate 구현으로 추가적인 로그를 확인할 수 있게 되었습니다.|
| 2021.03.04 | 2.7.0 |- 하나의 앱에 NCG iOS SDK와 도브러너 FPS SDK를 모두 적용하는 경우에 발생하는 컴파일 에러를 방지하기 위해 기존 PallyConTokenInfo 인터페이스를 Ncg2TokenInfo로 변경하였습니다.<br/>- 최신 Xcode에서 발생하는 빌드 에러를 해결하기 위해 iOSNcgSDK.framework에서 시뮬레이터용 라이브러리를 제거하였습니다.|
| 2021.01.07 | 2.6.0 |- getTokenInfo() 함수를 통해 주어진 Token 정보를 확인 할 수 있습니다. <br/>- SDK 샘플의 기본 라이선스 연동을 토큰 방식으로 업데이트 했습니다. |
| 2020.10.18 | 2.5.2 |- 토큰으로 라이선스 획득 시 Acquire URL을 지정할 수 있는 API가 추가되었습니다. |
| 2020.04.03 | 2.5.1 |- NCG Core에 m3u8 파일에서 EXT-X-MAP에 있는 URI를 추출하는 함수가 추가되었습니다. |
| 2019.10.08 | 2.5.0 |- 로컬 웹서버에서 크래시 발생을 제거했습니다. |
| 2019.01.22 | 2.4.2 |- 토큰 방식의 라이선스 획득을 위한 새로운 함수가 추가 되었습니다. (acquireLicenseByToken) |
| 2018.11.27 | 2.4.1 |- RODB 파일이 손상되거나 수정 된 경우 복구 프로세스가 업데이트되었습니다. |
| 2018.09.19 | 2.4.0 |- Simple 버전 샘플 프로젝트 추가. 기존 샘플보다 쉽게 SDK 기본 기능을 체험할 수 있습니다.<br/>- 시큐어타임 로직 개선. 일부 단말에서 오프라인 재생 시 보안이 강화되었습니다.<br/>- Swift 4.2, iOS 12 지원. Xcode 10, Swift 4.2 로 빌드 되었습니다.<br/>- Xcode 10 버전 C++ 라이브러리 이름 변경. Xcode 10버전부터 기존의 libstdc++에서 libc++로 변경되었습니다. |

### NCG Windows SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2024.01.11 | 1.12.0|- 성능 향상을 위해 내부 라이브러리를 업데이트했습니다. |
| 2023.03.10 | 1.11.0 |- 기존의 정적 링크 라이브러리 외에 DLL 버전의 SDK 라이브러리가 추가되었습니다. |
| 2022.06.17 | 1.10.0 |- WBC(White Box Crypto) 관련 보안 모듈이 업데이트 되었습니다.|
| 2021.01.07 | 1.6.1 |- 레지스트리에 저장된 이전 SDK에서 생성한 PCID를 삭제하지 않도록 업데이트 됩니다. <br/>- getLicenseInfo()에서 라이선스가 있음에도 예외처리 되어 라이선스가 없을 경우에만 예외처리되도록 수정됩니다. |
| 2020.10.14 | 1.6.0 |- 레지스트리에 저장된 이전 PCID를 새로운 SDK에서 사용할 수 있도록 내부 SDK가 업데이트 됩니다.  |
| 2020.03.27 | 1.5.0 |- 이전 버전 SDK에서 생성한 RODB를 새로운 SDK의 RODB로 마이그레이션 가능한 API가 추가됩니다.<br/> .ncg_data.sys 파일 이름이 .ncg_data_win.sys 파일로 변경됩니다.|
| 2019.11.02 | 1.4.0 |- `HttpRequestCallback.getHttpHeader()` 인터페이스가 추가됩니다. |
| 2019.03.07 | 1.3.0 |- Http 콜백이 설정되면 해당 정보가 관련 함수에 모두 적용되도록 반영됩니다.|

### NCG macOS SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2023.03.06 | 1.2.0 |- 최신 맥OS 지원을 위해 NCG 코어 모듈과 샘플 코드를 업데이트하였습니다.|
| 2022.10.07 | 1.1.2 |- 대용량 파일 지원을 위해 Ncg2File.read 함수에서 읽을 수 있는 최대 버퍼 사이즈를 증가시켰습니다. <br/>- SDK 내부에서 네트워크(스트리밍)로 한 번에 읽을 수 있는 NCG 파일의 크기가 최대 4MB로 변경되었습니다. |
| 2021.04.12 | 1.1.1 |- 에러 로그 출력과 관련한 버그를 수정하였습니다. |
| 2020.09.02 | 1.1.0 |- Secure Time 획득 처리를 SDK 초기화 시점에서 라이선스 획득 시점으로 변경하였습니다. |

### PlayReady UWP SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.12.11 | 2.2.0 |- License Cipher 연동 지원을 강화하였습니다.<br/>- customdata 암호화 워크플로우와의 호환성을 향상시켰습니다. |
| 2025.04.15 | 2.1.0 |- DRM 키 추출 도구에서의 무단 라이선스 요청을 차단하는 `DRM 라이선스 사이퍼` 솔루션에 대한 지원이 추가되었습니다.<br/>- 제품 브랜드 명을 `팰리컨`에서 `도브러너`로 변경하였습니다. |
| 2024.07.03 | 2.0.0 |- 1.x 버전의 API 함수와 내부 코드를 리펙토링하고 로그 기능을 강화하였습니다. <br/>- SDK 라이브러리와 샘플 프로젝트를 VS 2022 버전 기반으로 업데이트하였습니다.<br/>- 다운로드 시나리오에 대한 지원을 개선하였습니다.<br/>- SDK 샘플의 UI 관련 기능을 개선하였습니다.<br/>- 기존 버전의 여러 사소한 버그를 수정하였습니다. |
| 2024.04.03 | 1.8.0 |- 이동식 저장장치에 대한 지원이 추가되었습니다. |
| 2023.08.30 | 1.7.0 |- Reactive 라이선스 시나리오에서 사용자 지정 LA URL에 대한 지원이 추가되었습니다.<br/>- 라이선스 요청에 대한 콜백 인터페이스가 추가되었습니다.|
| 2022.12.26 | 1.5.0 |- DASH on-demand 프로파일 지원이 추가되었습니다.<br/>- ABR 및 멀티키 콘텐츠의 다운로드 및 재생 기능이 개선되었습니다.<br/>	- 자막 파일 다운로드와 관련된 버그를 수정하였습니다. |
| 2022.12.06 | 1.4.0 |- SDK 인증 로직이 제거되었습니다.<br/>- 샘플 코드의 한글 주석을 영문화했습니다. |
| 2020.09.16 | 1.3.0 |- SDK 사용 권한을 체크하는 인증 로직이 추가되었습니다.<br/>|

### 멀티 DRM Flutter SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.09.05 | 1.2.1 |- 플레이어 모듈을 Better Player에서 Better Player Plus로 교체하였습니다.<br/>- 제품 브랜드명을 PallyCon에서 DoveRunner로 변경하였습니다. |
| 2025.01.10 | 1.1.4 |- 내부에서 사용하는 Widevine과 FairPlay 클라이언트 SDK의 버전을 업데이트했습니다.<br/>- Android advanced sample의 Widevine 콘텐츠 다운로드/오프라인 시나리오 관련 버그를 수정하였습니다.|
| 2024.04.03 | 1.1.0 |- 스트리밍 콘텐츠 재생 시 Better Player를 이용하도록 샘플을 업데이트했습니다.<br/>- 콘텐츠 재생 관련 오류를 수정하였습니다. |
| 2023.03.15 | 1.0.0 |- Flutter 기반의 크로스플랫폼 애플리케이션을 지원하는 `멀티 DRM Flutter SDK`가 신규 출시되었습니다.<br/>- 안드로이드와 iOS 환경에서 각각 Widevine과 FairPlay DRM으로 암호화된 콘텐츠의 스트리밍과 다운로드 시나리오를 지원합니다.|

### 멀티 DRM React Native SDK

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.10.03 | 1.2.0 |- `react-native-video` 버전이 6.13.0으로 업데이트되었습니다.<br/>- 브랜드명이 `DOVERUNNER`에서 `DoveRunner`로 변경되었습니다.<br/>- iOS용 `DOVERUNNERFairPlay` SDK가 `DoveRunnerFairPlay`로 이름이 변경되었습니다.|
| 2024.10.28 | 1.1.2 |- react-native 버전을 업데이트하였습니다.<br/>- 도브러너 multi-DRM iOS/Android SDK 버전을 업데이트하였습니다. |
| 2024.03.05 | 1.1.1 |- 일부 사소한 문제를 수정하였습니다. |
| 2023.05.03 | 1.0.0 |- React Native 기반의 크로스플랫폼 애플리케이션을 지원하는 `멀티 DRM React Native SDK`가 신규 출시되었습니다.<br/>- 안드로이드와 iOS 환경에서 각각 Widevine과 FairPlay DRM으로 암호화된 콘텐츠의 스트리밍과 다운로드 시나리오를 지원합니다.|

## DRM 라이선스 사이퍼 SDK

### 라이선스 사이퍼 안드로이드 SDK 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.04.18 | 1.4.0 |- 고객 사이트별 커스텀 빌드 적용으로 솔루션 보안을 강화하였습니다. |
| 2025.02.20 | 1.3.0 |- 새로운 유형의 DRM 키 추출 도구를 차단하기 위해 보안 로직이 강화되었습니다. |
| 2024.12.05 | 1.2.0 |- 새로운 방식의 DRM 키 추출 툴에 대한 방어 기능이 추가되었습니다.<br/>- 대상 서비스에 대한 도메인 체크 기능이 추가되었습니다. |
| 2024.06.25 | 1.1.0 |- 라이선스 사이퍼 솔루션에 사용되는 WBC 라이브러리가 최신 버전으로 업데이트 되었습니다. (안드로이드, 크롬 버전 공통) |
| 2023.11.20 | 1.0.0 |- 소프트웨어 레벨 DRM인 Widevine L3의 보안을 강화하는 `DRM 라이선스 사이퍼` 솔루션이 신규 출시되었습니다.<br/>- 라이선스 사이퍼 SDK는 안드로이드 앱에서의 Widevine 라이선스 요청을 암호화해 각종 해킹 툴로부터 콘텐츠 키를 보호합니다. |

### 라이선스 사이퍼 웹 SDK 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.08.05 | 1.4.1 |- 새로운 버전의 DRM 키 추출툴에 대한 감지와 차단 기능을 추가하였습니다.|
| 2025.04.18 | 1.4.0 |- 고객 사이트별 커스텀 빌드 적용으로 솔루션 보안을 강화하였습니다.<br/>- 다양한 플레이어 솔루션 및 클라이언트 환경과의 호환성을 강화하였습니다. |
| 2025.02.20 | 1.3.0 |- Windows Edge에서 PlayReady 키 추출에 대한 보호 기능이 추가되었습니다.<br/>- 새로운 유형의 DRM 키 추출 도구를 차단하기 위해 보안 로직이 강화되었습니다. |
| 2024.12.05 | 1.2.0 |- 새로운 방식의 DRM 키 추출 툴에 대한 방어 기능이 추가되었습니다.<br/>- 대상 서비스에 대한 도메인 체크 기능이 추가되었습니다.<br/>- 웹 플레이어 연동 방식을 개선하여 플레이어에 따른 별도의 연동 코드를 제거하고 보안을 강화하였습니다. |
| 2024.06.25 | 1.1.0 |- 크롬 브라우저에 대한 지원이 추가되었습니다. 이제 DRM 라이선스 요청에 대한 콜백 API가 제공되는 임의의 HTML5 플레이어에 라이선스 사이퍼를 적용해 Widevine 키 유출을 방지할 수 있습니다.<br/>- 라이선스 사이퍼 솔루션에 사용되는 WBC 라이브러리가 최신 버전으로 업데이트 되었습니다. (안드로이드, 크롬 버전 공통) |

### 라이선스 사이퍼 UWP SDK 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.12.11 | 1.1.0 |- 전체 challenge data 대신 XML body data 내 challenge 값만 암호화하도록 방식을 개선하였습니다.<br/>- PlayReady challenge data XML을 파싱하는 플레이어(예: Bitmovin Player)와의 호환성을 향상했습니다.<br/>- License Cipher 암호화 사용 시 재생 안정성을 개선하였습니다. |
| 2025.04.15 | 1.0.0 |- UWP(Universal Windows Platform) 기반의 PlayReady 클라이언트 어플리케이션에서 DRM 키 추출을 방지하는 라이선스 사이퍼 UWP 버전 SDK가 출시되었습니다. |

### 라이선스 사이퍼 Tizen TV SDK 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.07.17 | 1.0.0 |- DRM 라이선스 사이퍼를 타이젠 TV 클라이언트 앱에 적용할 수 있도록 해당 SDK를 신규 개발하였습니다.<br/>- 이제 삼성 타이젠 TV 플랫폼에서도 Widevine 라이선스 및 암호화 키를 보호할 수 있습니다. |

### 라이선스 사이퍼 webOS TV SDK 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.08.01 | 1.0.0 |- DRM 라이선스 사이퍼를 웹OS TV 클라이언트 앱에 적용할 수 있도록 해당 SDK를 신규 개발하였습니다.<br/>- 이제 LG 웹OS TV 플랫폼에서도 Widevine 라이선스 및 암호화 키를 보호할 수 있습니다. |

## 클라이언트 연동 샘플 

### HTML5 플레이어 연동 샘플 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2026.05.08 | 2.4.0 |- 모든 샘플 카테고리에 대한 탐색 페이지를 추가했습니다. <br/>- Shaka 플레이어용 CSL 샘플에 PlayReady 지원을 추가했습니다. <br/>- 폴더 구조를 `basic`, `advanced`, `shared`로 재구성했습니다. <br/>- 기본 파일과 확장자 패턴을 사용하여 헬퍼 파일을 `shared/js/`로 통합했습니다. <br/>- 최신 Shaka Player 라이선스 갱신 API를 적용했습니다. <br/>- 하드웨어 DRM 샘플에서 Windows Chrome의 Widevine L1 대신 PlayReady SL3000을 사용하도록 변경했습니다. <br/>- Shaka 샘플을 v5.0.2와 호환되도록 업데이트했습니다. <br/>- Shaka v5의 Widevine Robustness 설정에 배열 형식을 사용하도록 수정했습니다. |
| 2025.09.01 | 2.3.0 |- CSL(동시 재생 제한) 기능을 위하여 Shaka 플레이어 샘플에 FairPlay 라이선스 갱신 지원을 추가하였습니다.<br/>- Basic 샘플의 DRM 보안 수준을 소프트웨어 수준 보안으로 변경하였습니다. 하드웨어 수준 보안 설정 방법은 Advanced 샘플에서 확인할 수 있습니다. |
| 2025.07.08 | 2.1.0 |- `advanced/csl` 샘플의 Video.js 플레이어에 FairPlay 라이선스 갱신 지원을 추가하였습니다. |
| 2025.04.15 | 2.0.1 |- 하드웨어 DRM 지원과 관련하여 VideoJS 샘플의 Robustness 설정을 업데이트 하였습니다. |
| 2025.04.04 | 2.0.0 |- 하드웨어 DRM 지원과 관련하여 플레이어 설정에 Robustness 옵션과 키 시스템에 대한 사항을 추가하였습니다. <br/>- `advanced` 샘플 폴더에 `hardware-drm` 샘플을 추가했습니다. |

### 삼성 타이젠 TV 연동 샘플 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2024.05.10 | 1.0.0 |- 타이젠 TV용 멀티 DRM 연동 샘플을 릴리즈하였습니다. <br/>- AVPlay API와 웹 플레이어 연동 방식을 지원합니다.|

### LG webOS TV 연동 샘플 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2024.05.20 | 1.0.0 |- webOS용 멀티 DRM 연동 샘플을 릴리즈하였습니다.<br/>- 웹 플레이어 연동 방식을 지원합니다.|

### Roku 연동 샘플 

|날짜 |버전 |내용 |
|:---|:---|:---|
| 2025.06.27 | 1.1.0 |- Roku 기기의 DRM 연동 샘플이 기존의 PlayReady에서 Widevine 기반으로 업데이트되었습니다. |

### Fire TV Vega OS 연동 샘플 

|:---|:---|:---|
| 2025.05.13 | 1.0.0 |- Amazon Fire TV 기기의 Vega OS 어플리케이션 개발을 위한 멀티 DRM 연동 샘플을 릴리즈하였습니다. |