mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Limit package name overriding to Android 8+ (related to #6846)
This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
			
		||||
package eu.kanade.tachiyomi
 | 
			
		||||
 | 
			
		||||
import android.annotation.SuppressLint
 | 
			
		||||
import android.app.ActivityManager
 | 
			
		||||
import android.app.Application
 | 
			
		||||
import android.app.PendingIntent
 | 
			
		||||
@@ -57,6 +58,7 @@ open class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
 | 
			
		||||
 | 
			
		||||
    private val disableIncognitoReceiver = DisableIncognitoReceiver()
 | 
			
		||||
 | 
			
		||||
    @SuppressLint("LaunchActivityFromNotification")
 | 
			
		||||
    override fun onCreate() {
 | 
			
		||||
        super<Application>.onCreate()
 | 
			
		||||
 | 
			
		||||
@@ -151,14 +153,20 @@ open class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun getPackageName(): String {
 | 
			
		||||
        try {
 | 
			
		||||
            // Override the value passed as X-Requested-With in WebView requests
 | 
			
		||||
            val stackTrace = Looper.getMainLooper().thread.stackTrace
 | 
			
		||||
            val chromiumElement = stackTrace.find { it.className.equals("org.chromium.base.BuildInfo", ignoreCase = true) }
 | 
			
		||||
            if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) {
 | 
			
		||||
                return WebViewUtil.SPOOF_PACKAGE_NAME
 | 
			
		||||
        // This causes freezes in Android 6/7 for some reason
 | 
			
		||||
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
 | 
			
		||||
            try {
 | 
			
		||||
                // Override the value passed as X-Requested-With in WebView requests
 | 
			
		||||
                val stackTrace = Looper.getMainLooper().thread.stackTrace
 | 
			
		||||
                val chromiumElement = stackTrace.find {
 | 
			
		||||
                    it.className.equals("org.chromium.base.BuildInfo",
 | 
			
		||||
                        ignoreCase = true)
 | 
			
		||||
                }
 | 
			
		||||
                if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) {
 | 
			
		||||
                    return WebViewUtil.SPOOF_PACKAGE_NAME
 | 
			
		||||
                }
 | 
			
		||||
            } catch (e: Exception) {
 | 
			
		||||
            }
 | 
			
		||||
        } catch (e: Exception) {
 | 
			
		||||
        }
 | 
			
		||||
        return super.getPackageName()
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user