Commit ab857ad
committed
Skip slicer processing for unmodified DEX files
Slicer's `CreateFullIr` and `CreateImage` operations are highly CPU-intensive and cause significant load latency for large DEX files. We hence introduce a fast-path optimization using `memmem` to perform a raw binary scan of the DEX buffer for target signatures prior to processing.
If no matching signatures are found, the expensive IR parsing and image rebuilding phases are bypassed entirely, and the original file descriptor is safely returned.
Moreover, we update the logging tag to `VectorDaemon`.1 parent 356ebde commit ab857ad
4 files changed
Lines changed: 23 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
224 | 244 | | |
225 | 245 | | |
226 | 246 | | |
| |||
- .github/workflows/android.yml+57
- .github/workflows/deploy.yml+45
- README.md+40-2
- gradle/libs.versions.toml+12
- gradle/wrapper/gradle-wrapper.jar
- gradle/wrapper/gradle-wrapper.properties+1-1
- interface/build.gradle.kts+22-13
- interface/src/main/aidl/io/github/libxposed/service/IXposedScopeCallback.aidl+2-5
- interface/src/main/aidl/io/github/libxposed/service/IXposedService.aidl+25-11
- service/build.gradle.kts+28-13
- service/src/main/java/io/github/libxposed/service/RemotePreferences.java+71-60
- service/src/main/java/io/github/libxposed/service/XposedProvider.java+8-1
- service/src/main/java/io/github/libxposed/service/XposedService.java+63-119
- service/src/main/java/io/github/libxposed/service/XposedServiceHelper.java+1-1
- settings.gradle.kts-3
- .github/workflows/android.yml+1-2
- .github/workflows/deploy.yml+45
- README.md+41
- api/build.gradle.kts+41-12
- api/proguard-rules.pro+8-6
- api/src/main/java/io/github/libxposed/api/XposedInterface.java+279-330
- api/src/main/java/io/github/libxposed/api/XposedInterfaceWrapper.java+60-90
- api/src/main/java/io/github/libxposed/api/XposedModule.java+2-13
- api/src/main/java/io/github/libxposed/api/XposedModuleInterface.java+59-29
- api/src/main/java/io/github/libxposed/api/error/HookFailedError.java+6-1
- api/src/main/java/io/github/libxposed/api/error/XposedFrameworkError.java+1-1
- api/src/main/java/io/github/libxposed/api/package-info.java+97
- api/src/main/java/io/github/libxposed/api/utils/DexParser.java-376
- checks/.gitignore-1
- checks/build.gradle.kts-16
- checks/src/main/java/io/github/libxposed/lint/XposedIssueRegistry.kt-9
- checks/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry-1
- gradle/libs.versions.toml+1-7
- gradle/wrapper/gradle-wrapper.jar
- gradle/wrapper/gradle-wrapper.properties+1-1
- settings.gradle.kts+1-1
0 commit comments