**Feature summary**:
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)**:
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.