diff --git a/app/build.gradle b/app/build.gradle index 06fa903d1..c0b7292db 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -49,7 +49,6 @@ android { exclude '/org/bouncycastle/**' exclude '/kotlin/**' exclude '/kotlinx/**' - exclude '/okhttp3/**' } kotlinOptions { @@ -103,11 +102,12 @@ dependencies { implementation "com.squareup.retrofit2:converter-scalars:${vRetrofit}" implementation "com.squareup.retrofit2:adapter-rxjava2:${vRetrofit}" - def vOkHttp = '3.12.10' + def vOkHttp = '3.12.12' implementation("com.squareup.okhttp3:okhttp:${vOkHttp}") { force = true } implementation "com.squareup.okhttp3:logging-interceptor:${vOkHttp}" + implementation("com.squareup.okhttp3:okhttp-dnsoverhttps:${vOkHttp}") def vMoshi = '1.10.0-SNAPSHOT' implementation "com.squareup.moshi:moshi:${vMoshi}" diff --git a/app/src/main/java/com/topjohnwu/magisk/di/NetworkingModule.kt b/app/src/main/java/com/topjohnwu/magisk/di/NetworkingModule.kt index b05fcb2af..11e5cecfc 100644 --- a/app/src/main/java/com/topjohnwu/magisk/di/NetworkingModule.kt +++ b/app/src/main/java/com/topjohnwu/magisk/di/NetworkingModule.kt @@ -12,13 +12,16 @@ import io.noties.markwon.Markwon import io.noties.markwon.html.HtmlPlugin import io.noties.markwon.image.ImagesPlugin import io.noties.markwon.image.network.OkHttpNetworkSchemeHandler +import okhttp3.HttpUrl import okhttp3.OkHttpClient +import okhttp3.dnsoverhttps.DnsOverHttps import okhttp3.logging.HttpLoggingInterceptor import org.koin.dsl.module import retrofit2.Retrofit import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory import retrofit2.converter.moshi.MoshiConverterFactory import retrofit2.converter.scalars.ScalarsConverterFactory +import java.net.InetAddress val networkingModule = module { single { createOkHttpClient(get()) } @@ -43,6 +46,21 @@ fun createOkHttpClient(context: Context): OkHttpClient { builder.sslSocketFactory(NoSSLv3SocketFactory()) } + builder.dns(DnsOverHttps.Builder().client(builder.build()) + .url(HttpUrl.get("https://cloudflare-dns.com/dns-query")) + .bootstrapDnsHosts(listOf( + InetAddress.getByName("162.159.36.1"), + InetAddress.getByName("162.159.46.1"), + InetAddress.getByName("1.1.1.1"), + InetAddress.getByName("1.0.0.1"), + InetAddress.getByName("162.159.132.53"), + InetAddress.getByName("2606:4700:4700::1111"), + InetAddress.getByName("2606:4700:4700::1001"), + InetAddress.getByName("2606:4700:4700::0064"), + InetAddress.getByName("2606:4700:4700::6400") + )) + .build()) + return builder.build() }