**Feature summary**:
There should be a switch named "censorship circumvention",Please add a censorship circumvention feature in both iOS and Android apps to use domain fronting to access Wikipedia where it is blocked. default off,(e.g. activating the circumvention feature.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. There are some Android apps already implemented such method like [a
**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 detecting.on, The other one is [awritten 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)., Both of them are written in Kotlin, too.
also written in Kotlin
* Signal has a "censorship circumvention" features which utilizes Google Cloud and domain fronting as an alternative route to their server
**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-Ain-app circumvention feature helpful, they can read and edit Wikipedia without a VPN or proxy.