**Feature summary**:
Please add a censorship circumvention feature in both iOS and Android apps to use domain fronting to access Wikipedia where it is blocked. (e.g. China)
All blocking technique of Wikipedia are:
* DNS poisoning
* Deep Packet Inspection for SNI (always followed by a TCP reset attack)
* IP blocking
This feature should basically has two parts:
1. IP selecting by their availability.
2. SNI obfuscation (domain fronting).
The first one is for areas which blocked some of Wikimedia IPs but not all, app should test the availability of all Wikimedia data centers, they are published [here](https://meta.wikimedia.org/wiki/Wikimedia_servers#Hosting) on Meta-Wiki. Now there are 6 data centers: eqiad, codfw, esams, ulsfo, eqsin, drmrs. The IP address of them are located on some specified domains, for example,
* eqiad IP address is on `text-lb.eqiad.wikimedia.org` and `upload-lb.eqiad.wikimedia.org`.
* codfw IP address is on `text-lb.codfw.wikimedia.org` and `upload-lb.codfw.wikimedia.org`.
App get all data center IP by DNS looking up these domains. We can also hardcode these IP address as long as they are not frequently changing. App should test if some of them are reachable and use them. This effectively solved both DNS poisoning and IP blocking problem.
The second one is for DPI, it can be implemented by adjusting App's network stack, App should connect to Wikimedia IPs without sending SNI extension in TLS handshake and verify the certificate manually.
**Similar features in other apps**
* [A client for pixiv.net](https://github.com/Notsfsssf/Pix-EzViewer/tree/master/app/src/main/java/com/perol/asdpl/pixivez/networks), for accessing `pixiv.net` which is also blocked in China by SNI detection, written in Kotlin
* [A client for e-hentai.org](https://github.com/Ehviewer-Overhauled/Ehviewer/tree/1.8.x.x/app/src/main/java/com/hippo/ehviewer/client), also written in Kotlin
* Signal has a "censorship circumvention" features which utilizes Google Cloud and domain fronting as an alternative route to their server
* ProtonVPN. If it detects potential blocks, it will try to resolve a certain domain using DoH and use HTTPS certificate pinning to access that IP as an alternative backend
**Use case(s)**:
As shown in [Censorship of Wikipedia](https://en.wikipedia.org/wiki/Censorship_of_Wikipedia) article, many countries have blocked access to Wikipedia.
**Benefits**:
People in these area may find in-app circumvention feature helpful, they can read and edit Wikipedia without a VPN or proxy.