commit aea5922e0ebf4843934941e1320953d74b97964b
parent c29d142f9180f91c2dbde73b517b15eff4720aeb
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date: Fri, 3 Oct 2025 23:43:10 +0200
fix(core): spotlight not loading
Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>
Diffstat:
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
@@ -101,7 +101,7 @@ class SecurityFeatures(
context.event.subscribe(UnaryCallEvent::class) { event ->
val callOptions = event.adapter.arg<Any>(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<Any>(0)}", "UnaryCallEvent")
event.canceled = true
val eventHandler = event.adapter.arg<Any>(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<String>(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))