From aea5922e0ebf4843934941e1320953d74b97964b Mon Sep 17 00:00:00 2001 From: rhunk <101876869+rhunk@users.noreply.github.com> Date: Fri, 3 Oct 2025 23:43:10 +0200 Subject: [PATCH] fix(core): spotlight not loading Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com> --- .../me/rhunk/snapenhance/core/SecurityFeatures.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/SecurityFeatures.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/SecurityFeatures.kt index c735d380..c24f180a 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/core/SecurityFeatures.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/core/SecurityFeatures.kt @@ -101,7 +101,7 @@ class SecurityFeatures( context.event.subscribe(UnaryCallEvent::class) { event -> val callOptions = event.adapter.arg(2).let { it.javaClass.getMethod("build").invoke(it) } ?: return@subscribe - if (callOptions.getObjectField("mAttestation") != null) { + if (callOptions.getObjectField("mAttestation") != null || event.uri.endsWith("/IncomingFriendSync")) { context.log.verbose("blocked ep ${event.adapter.arg(0)}", "UnaryCallEvent") event.canceled = true val eventHandler = event.adapter.arg(3) @@ -137,6 +137,14 @@ class SecurityFeatures( exitProcess(139) } } + loadClass("com.snapchat.client.duplex.DuplexClient\$CppProxy").hook("registerHandler", + HookStage.BEFORE) { param -> + val path = param.arg(0) + if (path == "hermod_dup") { + param.setResult(null) + return@hook + } + } } context.mappings.useMapper(CallbackMapper::class) { @@ -190,7 +198,9 @@ class SecurityFeatures( modifier = Modifier.fillMaxSize() ) { Column( - modifier = Modifier.align(Alignment.Center).padding(16.dp), + modifier = Modifier + .align(Alignment.Center) + .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { Icon(Icons.Rounded.NotInterested, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier.size(110.dp))