Compared to 0.17.47-beta.4:
- Fix Hysteria 2 Chrome parrot not working with mutual TLS or certificate pinning.
Compared to 0.17.47:
- Split the release into default flavor (Android 6.0+) and legacy flavor (Android 5.0+, with some Gradle dependencies pinned to old versions). The legacy flavor is for old devices only and using it on new devices may lead to unexpected behaviors. 1
- Implement ShadowQUIC in core and remove the previous experimental ShadowQUIC plugin. There is no plan to implement SunnyQUIC and Brutal, and they have been removed. 23
- Add experimental Snell v4 and Snell v6 support. (by @Minis233)
- Add "Chrome parrot" for Hysteria 2.
- Update mieru to 3.35.0 and add low entropy mode.
- Third-party breaking change: XHTTP path. (XTLS/Xray-core@1aabe7e)
- "ServerNameToVerify" is extended to other protocols. 4
- "Pinned peer certificate SHA-256" supports pinning non-leaf certificate. If non-leaf certificates are matched, ServerName will be verified. 5
Footnotes
-
e.g. https://issuetracker.google.com/issues/519796838. The support for the legacy flavor is on a best-efforts basis and may be ended at any time. ↩
-
If you use official ShadowQUIC as the server, you may need to disable
zero-rttotherwise connections may fail randomly. Related bug: spongebob888/shadowquic#191. ↩ -
The client ALPN must match the server ALPN. For ShadowQUIC in Exclave, if no ALPN is specified, it defaults to no ALPN (rather than
h3). However, for the official ShadowQUIC, if you don't specify the ALPN (alpn: null), it defaults toh3; specifying an empty array (alpn: []) as the ALPN means no ALPN. ↩ -
This is solely for enhancing the interoperability of similar options (e.g.
name-cert-verifyandverifyPeerCertByName) in other software. ↩ -
This is solely for enhancing the interoperability of similar options (e.g.
fingerprintandpinnedPeerCertSha256) in other software. ↩