11package io.github.chsbuffer.revancedxposed
22
33import android.app.Application
4+ import android.widget.Toast
45import app.revanced.extension.shared.Utils
56import de.robv.android.xposed.IXposedHookLoadPackage
67import de.robv.android.xposed.IXposedHookZygoteInit
@@ -29,8 +30,7 @@ class MainHook : IXposedHookLoadPackage, IXposedHookZygoteInit {
2930 " com.reddit.frontpage" to { RedditHook (app, lpparam) },
3031 " com.google.android.apps.photos" to { GooglePhotosHook (lpparam) },
3132 " com.instagram.android" to { MetaHook (app, lpparam) },
32- " com.instagram.barcelona" to { MetaHook (app, lpparam) }
33- )
33+ " com.instagram.barcelona" to { MetaHook (app, lpparam) })
3434
3535 fun shouldHook (packageName : String ): Boolean {
3636 if (! hooksByPackage.containsKey(packageName)) return false
@@ -45,10 +45,26 @@ class MainHook : IXposedHookLoadPackage, IXposedHookZygoteInit {
4545
4646 inContext(lpparam) { app ->
4747 this .app = app
48+ if (isReVancedPatched(lpparam)) {
49+ Utils .showToastLong(" ReVanced Xposed module does not work with patched app" )
50+ return @inContext
51+ }
4852 hooksByPackage[lpparam.packageName]?.invoke()?.Hook ()
4953 }
5054 }
5155
56+ private fun isReVancedPatched (lpparam : LoadPackageParam ): Boolean {
57+ return runCatching {
58+ lpparam.classLoader.loadClass(" app.revanced.extension.shared.Utils" )
59+ }.isSuccess || runCatching {
60+ lpparam.classLoader.loadClass(" app.revanced.extension.shared.utils.Utils" )
61+ }.isSuccess || runCatching {
62+ lpparam.classLoader.loadClass(" app.revanced.integrations.shared.Utils" )
63+ }.isSuccess || runCatching {
64+ lpparam.classLoader.loadClass(" app.revanced.integrations.shared.utils.Utils" )
65+ }.isSuccess
66+ }
67+
5268 override fun initZygote (startupParam : StartupParam ) {
5369 this .startupParam = startupParam
5470 XposedInit = startupParam
0 commit comments