Skip to content

Commit 96c98f5

Browse files
committed
fix: inline inject logic and stream payload over companion to avoid detection
- move injection logic into zygisk and stop writing payload files into target app data directories to avoid detection
1 parent 1d26a0f commit 96c98f5

17 files changed

Lines changed: 768 additions & 698 deletions

.gitmodules

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
[submodule "inject/src/main/cpp/Dobby"]
2-
path = inject/src/main/cpp/Dobby
1+
[submodule "zygisk/src/main/cpp/Dobby"]
2+
path = zygisk/src/main/cpp/Dobby
33
url = https://github.com/JingMatrix/Dobby.git
44
[submodule "zygisk/src/main/cpp/local_cxa_atexit_finalize_impl"]
55
path = zygisk/src/main/cpp/local_cxa_atexit_finalize_impl
66
url = https://github.com/5ec1cff/local_cxa_atexit_finalize_impl.git
7-
[submodule "inject/src/main/cpp/local_cxa_atexit_finalize_impl"]
8-
path = inject/src/main/cpp/local_cxa_atexit_finalize_impl
9-
url = https://github.com/5ec1cff/local_cxa_atexit_finalize_impl.git

build.gradle.kts

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22
plugins {
33
alias(libs.plugins.android.application) apply false
4-
alias(libs.plugins.android.library) apply false
54
}
65

76
tasks.register("copyZygiskFiles") {
@@ -17,6 +16,7 @@ tasks.register("copyZygiskFiles") {
1716

1817
doLast {
1918
classesJar.get().asFile.copyTo(moduleFolder.resolve("classes.dex"), overwrite = true)
19+
moduleFolder.resolve("inject").deleteRecursively()
2020
zygiskSoDir.get().asFile.walk()
2121
.filter { it.isFile && it.name == "libzygisk.so" }
2222
.forEach { soFile ->
@@ -27,31 +27,11 @@ tasks.register("copyZygiskFiles") {
2727
}
2828
}
2929

30-
tasks.register("copyInjectFiles") {
31-
val moduleFolder = project.rootDir.resolve("module")
32-
val injectModule = project.project(":inject")
33-
val injectBuildDir = injectModule.layout.buildDirectory
34-
val injectSoDir = injectBuildDir.file("intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib")
35-
36-
inputs.dir(injectSoDir)
37-
outputs.dir(moduleFolder)
38-
39-
doLast {
40-
injectSoDir.get().asFile.walk()
41-
.filter { it.isFile && it.name == "libinject.so" }
42-
.forEach { soFile ->
43-
val abiFolder = soFile.parentFile.name
44-
val destination = moduleFolder.resolve("inject/$abiFolder.so")
45-
soFile.copyTo(destination, overwrite = true)
46-
}
47-
}
48-
}
49-
5030
tasks.register<Zip>("zip") {
51-
dependsOn("copyZygiskFiles", "copyInjectFiles")
31+
dependsOn("copyZygiskFiles")
5232

5333
archiveFileName.set("PlayIntegrityFix.zip")
5434
destinationDirectory.set(project.rootDir.resolve("out"))
5535

5636
from(project.rootDir.resolve("module"))
57-
}
37+
}

inject/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

inject/build.gradle.kts

Lines changed: 0 additions & 92 deletions
This file was deleted.

inject/consumer-rules.pro

Whitespace-only changes.

inject/proguard-rules.pro

Lines changed: 0 additions & 21 deletions
This file was deleted.

inject/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
This file was deleted.

inject/src/main/cpp/CMakeLists.txt

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)