Source release 17.1.0

This commit is contained in:
John "Juce" Bruce
2022-07-07 17:14:31 -07:00
parent 8c17574083
commit 694cf6fb25
2233 changed files with 272026 additions and 223371 deletions

View File

@@ -2,6 +2,82 @@
[TOC]
## 17.1.0 (2022-06-29)
**Note:** CE CDM 17.1.0 is the first release of the CE CDM 17 series. It is
numbered 17.1 to reflect that it supports and requires OEMCrypto v17.1.
### Features:
- Supports and requires OEMCrypto v17.1.
- Supports Provisioning 4.0, a new provisioning scheme that does not require
installing keyboxes in the factory. Talk to your Widevine Partner
Engineering contact if you would like to start using Provisioning 4.0.
- Includes a large number of additional tests that exercise edge-cases in the
CDM and OEMCrypto. The total run-time of the unit test suite is now very
long. As such, partners are recommended to run only a subset of the full
suite during development. Information on what subset to run and how to do
this can be found in the CE CDM Integration Guide.
- Note that running the full test suite is still required before you can
release your device.
- Documentation is no longer distributed with the CDM as a PDF and can now be
found on the [Widevine Developer Site][wv-devsite].
- The CE CDM no longer includes a copy of OEMCrypto with the CDM. If you are
an OEMCrypto implementer, you should have access to the
[OEMCrypto partner repository][oec-partner-repo], which contains additional
source code and information about implementing OEMCrypto, including the
Widevine-written OEMCrypto implementation, the OEMCrypto Porting Kit. (OPK)
If you are not an OEMCrypto implementer, then you will need to get an
OEMCrypto implementation from your SoC manufacturer before you can use the
CE CDM.
- Added a method to retrieve the system ID of the underlying OEMCrypto
implementation.
- Client information is no longer passed into `Cdm::initialize()` at runtime.
Instead, client information is set at compile-time and baked into the CDM
binary. New variables have been added to `platform_properties.gypi` to
support this.
- A method has been added to retrieve the client information from the CDM.
- A new example platform directory has been released, `example/`, which will
provide a cleaner base to build your own platform files from than the
previous `x86-64/` directory.
[wv-devsite]: https://developers.google.com/widevine/drm/client/ce-cdm
[oec-partner-repo]: https://widevine-partner.googlesource.com/oemcrypto/
### Dependency Updates:
- The bundled version of Protobuf has been updated to [v3.19.1][proto-3.19.1].
Note that, as before, Widevine CE CDM will work with any version of Protobuf
back to 2.6. However, we provide the version of Protobuf that we test with
internally as a default.
- The bundled version of BoringSSL has been updated to commit
[`731d6cbef936e60a04738edf4eb4fc93e187706a`][boringssl-731d6c].
- The bundled version of googletest & googlemock have been updated to commit
[`e2f3978937c0244508135f126e2617a7734a68be`][googletest-e2f397].
[proto-3.19.1]: https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.1
[boringssl-731d6c]: https://boringssl.googlesource.com/boringssl/+/731d6cbef936e60a04738edf4eb4fc93e187706a
[googletest-e2f397]: https://github.com/google/googletest/commit/e2f3978937c0244508135f126e2617a7734a68be
### Bugfixes:
**Note:** As CE CDM v17.1 contains almost two years of bugfixes since the
previous release, this list contains only highlights and is not comprehensive.
- Fixed an issue where the host interfaces could not be stored in smart
pointers due to the visibility of their destructors.
- Fixed an issue where the CDM could try to access the usage table header via
the wrong `IStorage` instance.
- Widevine now does development with a stricter set of flags and sanitizers,
which have enabled us to find and fix several issues in the code and should
allow it to build on a wider range of toolchains without customizing
compilation flags.
- Changed several log messages to format values in a more cross-platform way.
- Several crashes due to null pointers and thread-safety issues have been
fixed.
- Fixed an issue where the unit tests could crash depending on the order the
object files were linked into it.
## 16.4.0 (2020-10-09)
Features: