mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 03:21:51 +01:00
Override X-Requested-With header value in WebView requests (closes #6781)
This commit is contained in:
parent
041a6dd919
commit
996f770935
@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.network.NetworkHelper
|
|||||||
import eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegate
|
import eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegate
|
||||||
import eu.kanade.tachiyomi.util.preference.asImmediateFlow
|
import eu.kanade.tachiyomi.util.preference.asImmediateFlow
|
||||||
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil
|
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil
|
||||||
|
import eu.kanade.tachiyomi.util.system.WebViewUtil
|
||||||
import eu.kanade.tachiyomi.util.system.animatorDurationScale
|
import eu.kanade.tachiyomi.util.system.animatorDurationScale
|
||||||
import eu.kanade.tachiyomi.util.system.logcat
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import eu.kanade.tachiyomi.util.system.notification
|
import eu.kanade.tachiyomi.util.system.notification
|
||||||
@ -148,6 +149,23 @@ open class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getPackageName(): String {
|
||||||
|
try {
|
||||||
|
// Override the value passed as X-Requested-With in WebView requests
|
||||||
|
val stackTrace = Thread.currentThread().stackTrace
|
||||||
|
for (element in stackTrace) {
|
||||||
|
if ("org.chromium.base.BuildInfo".equals(element.className, ignoreCase = true)) {
|
||||||
|
if ("getAll".equals(element.methodName, ignoreCase = true)) {
|
||||||
|
return WebViewUtil.SPOOF_PACKAGE_NAME
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
}
|
||||||
|
return super.getPackageName()
|
||||||
|
}
|
||||||
|
|
||||||
protected open fun setupAcra() {
|
protected open fun setupAcra() {
|
||||||
if (BuildConfig.FLAVOR != "dev") {
|
if (BuildConfig.FLAVOR != "dev") {
|
||||||
initAcra {
|
initAcra {
|
||||||
|
@ -101,7 +101,6 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
|
|||||||
|
|
||||||
val origRequestUrl = request.url.toString()
|
val origRequestUrl = request.url.toString()
|
||||||
val headers = request.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap()
|
val headers = request.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap()
|
||||||
headers["X-Requested-With"] = WebViewUtil.REQUESTED_WITH
|
|
||||||
|
|
||||||
executor.execute {
|
executor.execute {
|
||||||
val webview = WebView(context)
|
val webview = WebView(context)
|
||||||
|
@ -105,7 +105,6 @@ class WebViewActivity : BaseActivity() {
|
|||||||
headers = source.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap()
|
headers = source.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap()
|
||||||
binding.webview.settings.userAgentString = source.headers["User-Agent"]
|
binding.webview.settings.userAgentString = source.headers["User-Agent"]
|
||||||
}
|
}
|
||||||
headers["X-Requested-With"] = WebViewUtil.REQUESTED_WITH
|
|
||||||
|
|
||||||
supportActionBar?.subtitle = url
|
supportActionBar?.subtitle = url
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ import android.webkit.WebView
|
|||||||
import logcat.LogPriority
|
import logcat.LogPriority
|
||||||
|
|
||||||
object WebViewUtil {
|
object WebViewUtil {
|
||||||
const val REQUESTED_WITH = "com.android.browser"
|
const val SPOOF_PACKAGE_NAME = "com.android.chrome"
|
||||||
|
|
||||||
const val MINIMUM_WEBVIEW_VERSION = 95
|
const val MINIMUM_WEBVIEW_VERSION = 95
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user