**Feature summary** (what you would like to be able to do and where):
There should be a switch named "censorship circumvention", default off, activating the circumvention feature.
All blocking technique of Wikipedia are:
* DNS poisoning
* Deep Packet Inspection for SNI
* 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. There are some Android apps already implemented such method like [a client for pixiv.net](https://github.com/Notsfsssf/Pix-EzViewer/tree/master/app/src/main/java/com/perol/asdpl/pixivez/networks), `pixiv.net` is also blocked in China by SNI detecting. The other one is [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). Both of them are written in Kotlin, too.
**Use case(s)** (list the steps that you performed to discover that problem, and describe the actual underlying problem which you want to solve. Do not describe only a solution):
As shown in [Censorship of Wikipedia](https://en.wikipedia.org/wiki/Censorship_of_Wikipedia) article, many countries has blocked access to Wikipedia.
**Benefits** (why should this be implemented?):
People in these area may find use In-App circumvention feature helpful, they can read and edit Wikipedia without a VPN or proxy.