mirror of
https://github.com/gedoor/legado.git
synced 2024-07-04 23:36:56 +08:00
Cronet 支持DnsHttpsSvcb
Cronet 设置`UseDnsHttpsSvcb`等实验选项支持HTTPS 类型的dns请求,从dns HTTPS记录中就能获取到支持的alpn,用来确定升级http3。
77379815db
This commit is contained in:
parent
b918029eff
commit
15fbc844f1
|
@ -16,7 +16,7 @@ def version = "3." + releaseTime()
|
|||
def gitCommits = Integer.parseInt('git rev-list HEAD --count'.execute().text.trim())
|
||||
|
||||
android {
|
||||
compileSdkVersion 33
|
||||
compileSdk 33
|
||||
buildToolsVersion "33.0.0"
|
||||
namespace 'io.legado.app'
|
||||
kotlinOptions {
|
||||
|
@ -47,6 +47,8 @@ android {
|
|||
project.ext.set("archivesBaseName", name + "_" + version)
|
||||
multiDexEnabled true
|
||||
|
||||
buildConfigField "String", "Cronet_Version", "\"$CronetVersion\""
|
||||
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments += [
|
||||
|
@ -63,7 +65,6 @@ android {
|
|||
}
|
||||
buildTypes {
|
||||
release {
|
||||
buildConfigField "String", "Cronet_Version", "\"$CronetVersion\""
|
||||
if (project.hasProperty("RELEASE_STORE_FILE")) {
|
||||
signingConfig signingConfigs.myConfig
|
||||
}
|
||||
|
@ -73,7 +74,7 @@ android {
|
|||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
debug {
|
||||
buildConfigField "String", "Cronet_Version", "\"$CronetVersion\""
|
||||
|
||||
if (project.hasProperty("RELEASE_STORE_FILE")) {
|
||||
signingConfig signingConfigs.myConfig
|
||||
}
|
||||
|
@ -82,13 +83,15 @@ android {
|
|||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
android.applicationVariants.all { variant ->
|
||||
variant.outputs.all {
|
||||
def flavor = variant.productFlavors[0].name
|
||||
outputFileName = "${name}_${flavor}_${defaultConfig.versionName}.apk"
|
||||
}
|
||||
}
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
variant.outputs.all {
|
||||
def flavor = variant.productFlavors[0].name
|
||||
outputFileName = "${name}_${flavor}_${defaultConfig.versionName}.apk"
|
||||
}
|
||||
}
|
||||
|
||||
flavorDimensions "mode"
|
||||
productFlavors {
|
||||
app {
|
||||
|
@ -125,6 +128,7 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly "com.android.tools.build:gradle:$agp_version"
|
||||
//noinspection GradleDependency,GradlePackageUpdate
|
||||
coreLibraryDesugaring('com.android.tools:desugar_jdk_libs:1.2.2')
|
||||
testImplementation('junit:junit:4.13.2')
|
||||
|
|
|
@ -12,6 +12,7 @@ import org.chromium.net.CronetEngine.Builder.HTTP_CACHE_DISK
|
|||
import org.chromium.net.ExperimentalCronetEngine
|
||||
import org.chromium.net.UploadDataProviders
|
||||
import org.chromium.net.UrlRequest
|
||||
import org.json.JSONObject
|
||||
import splitties.init.appCtx
|
||||
|
||||
|
||||
|
@ -29,6 +30,7 @@ val cronetEngine: ExperimentalCronetEngine? by lazy {
|
|||
enableHttp2(true) //设置支持http/2
|
||||
enablePublicKeyPinningBypassForLocalTrustAnchors(true)
|
||||
enableBrotli(true)//Brotli压缩
|
||||
setExperimentalOptions(options)
|
||||
}
|
||||
try {
|
||||
val engine = builder.build()
|
||||
|
@ -40,6 +42,28 @@ val cronetEngine: ExperimentalCronetEngine? by lazy {
|
|||
}
|
||||
}
|
||||
|
||||
val options by lazy {
|
||||
val options = JSONObject()
|
||||
|
||||
//设置域名映射规则
|
||||
//MAP hostname ip,MAP hostname ip
|
||||
// val host = JSONObject()
|
||||
// host.put("host_resolver_rules","")
|
||||
// options.put("HostResolverRules", host)
|
||||
|
||||
//启用DnsHttpsSvcb更容易迁移到http3
|
||||
val dnsSvcb = JSONObject()
|
||||
dnsSvcb.put("enable", true)
|
||||
dnsSvcb.put("enable_insecure", true)
|
||||
dnsSvcb.put("use_alpn", true)
|
||||
options.put("UseDnsHttpsSvcb", dnsSvcb)
|
||||
|
||||
options.put("AsyncDNS", JSONObject("{'enable':true}"))
|
||||
|
||||
|
||||
options.toString()
|
||||
}
|
||||
|
||||
fun buildRequest(request: Request, callback: UrlRequest.Callback): UrlRequest? {
|
||||
val url = request.url.toString()
|
||||
val headers: Headers = request.headers
|
||||
|
|
|
@ -3,12 +3,12 @@ plugins {
|
|||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 32
|
||||
buildToolsVersion '32.0.0'
|
||||
compileSdk 33
|
||||
//buildToolsVersion '32.0.0'
|
||||
namespace 'me.ag2s.epublib'
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 32
|
||||
minSdk 21
|
||||
targetSdk 33
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles "consumer-rules.pro"
|
||||
|
@ -19,8 +19,6 @@ android {
|
|||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
android {
|
||||
}
|
||||
|
||||
}
|
||||
compileOptions {
|
||||
|
@ -33,5 +31,6 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly "com.android.tools.build:gradle:$agp_version"
|
||||
implementation "androidx.annotation:annotation:1.5.0"
|
||||
}
|
|
@ -19,6 +19,7 @@ android.useAndroidX=true
|
|||
android.enableJetifier=true
|
||||
# Kotlin code style for this project: "official" or "obsolete":
|
||||
kotlin.code.style=official
|
||||
kotlin.incremental.useClasspathSnapshot=true
|
||||
android.enableResourceOptimizations=true
|
||||
android.enableNewResourceShrinker=true
|
||||
android.experimental.enableNewResourceShrinker.preciseShrinking=true
|
||||
|
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
|||
#Mon May 23 22:07:39 CST 2022
|
||||
#Mon Sep 26 08:03:55 CST 2022
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
|
Loading…
Reference in New Issue
Block a user