Skip to content

bug: --verify-with-sdk crashes on Windows due to reserved MS-DOS filenames (aux.dex, con.dex) #140

@cyberboh

Description

@cyberboh

Bug description

SdkDexVerifier issue I guess

Error logs

YouTube 21.18.163:

INFO: Wrote 9 dex files to C:\Users\DELL\AppData\Local\Temp\patcher\patched\dex 
INFO: Verifying 9 DEX files with dexdump/d8 
INFO: Patching result saved to C:\Morphe\temp_result_YouTube.json
INFO: Purging temporary files 
INFO: Failed to purge resource cache directory 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.base/java.util.Arrays.copyOfRangeByte(Arrays.java:3863)
	at java.base/java.util.Arrays.copyOfRange(Arrays.java:3854)
	at java.base/java.lang.String.<init>(String.java:4790)
	at java.base/java.lang.StringBuffer.toString(StringBuffer.java:739)
	at java.base/java.io.StringWriter.toString(StringWriter.java:220)
	at kotlin.io.TextStreamsKt.readText(ReadWrite.kt:122)
	at app.morphe.patcher.dex.SdkDexVerifier.exec(DexVerifier.kt:412)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyWithDexdump(DexVerifier.kt:328)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyDexFile(DexVerifier.kt:117)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyDexDirectory(DexVerifier.kt:134)
	at app.morphe.patcher.patch.BytecodePatchContext.compileFull(BytecodePatchContext.kt:282)
	at app.morphe.patcher.patch.BytecodePatchContext.get(BytecodePatchContext.kt:262)
	at app.morphe.patcher.Patcher.get(Patcher.kt:174)
	at app.morphe.cli.command.PatchCommand.call(PatchCommand.kt:738)
	at app.morphe.cli.command.PatchCommand.call(PatchCommand.kt:51)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
	at picocli.CommandLine.execute(CommandLine.java:2174)
	at app.morphe.MorpheLauncherKt.main(MorpheLauncher.kt:23)


YT Music 9.17.51:

INFO: Wrote 8 dex files to C:\Users\DELL\AppData\Local\Temp\patcher\patched\dex 
INFO: Verifying 8 DEX files with dexdump/d8 
SEVERE: An unexpected error occurred: d8 failed on classes5.dex (exit code 1):
Error in C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\con.dex:
java.nio.file.FileSystemException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\con.dex: Incorrect function
Error in C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\aux.dex:
java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\aux.dex
Error in C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex:
java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
Compilation failed with an internal error.
Exception in thread "main" java.lang.RuntimeException: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:126)
	at com.android.tools.r8.D8.main(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:5)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
	at Version.fakeStackEntry(Version_8.2.2-dev.java:0)
	at com.android.tools.r8.M.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:5)
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:81)
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:32)
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:31)
	at com.android.tools.r8.utils.R0.b(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:2)
	at com.android.tools.r8.D8.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c55

... [truncated 3458 chars] ...

tools.r8.D8.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:24)
		at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:113)
		at com.android.tools.r8.D8.main(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:5)
	Caused by: com.android.tools.r8.utils.b: java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
		at com.android.tools.r8.utils.O2.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:21)
		at com.android.tools.r8.utils.O2.error(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:1)
		at com.android.tools.r8.utils.I0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:23)
		at com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer.accept(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:2)
		at com.android.tools.r8.dex.k.b(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:52)
		at com.android.tools.r8.utils.d3.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:4)
		at com.android.tools.r8.utils.d3.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:40)
		at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1456)
		at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
		at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
		at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
		at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
		at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
	Caused by: [CIRCULAR REFERENCE: java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex]
 
app.morphe.patcher.dex.DexVerificationException: d8 failed on classes5.dex (exit code 1):
Error in C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\con.dex:
java.nio.file.FileSystemException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\con.dex: Incorrect function
Error in C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\aux.dex:
java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\aux.dex
Error in C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex:
java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
Compilation failed with an internal error.
Exception in thread "main" java.lang.RuntimeException: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:126)
	at com.android.tools.r8.D8.main(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:5)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
	at Version.fakeStackEntry(Version_8.2.2-dev.java:0)
	at com.android.tools.r8.M.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:5)
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:81)
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:32)
	at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:31)
	at com.android.tools.r8.utils.R0.b(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:2)
	at com.android.tools.r8.D8.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c55

... [truncated 3458 chars] ...

tools.r8.D8.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:24)
		at com.android.tools.r8.utils.R0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:113)
		at com.android.tools.r8.D8.main(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:5)
	Caused by: com.android.tools.r8.utils.b: java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex
		at com.android.tools.r8.utils.O2.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:21)
		at com.android.tools.r8.utils.O2.error(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:1)
		at com.android.tools.r8.utils.I0.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:23)
		at com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer.accept(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:2)
		at com.android.tools.r8.dex.k.b(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:52)
		at com.android.tools.r8.utils.d3.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:4)
		at com.android.tools.r8.utils.d3.a(R8_8.2.2-dev_53a55043254cc5be8ef500331bba25d1b4ca4bc2cd66c555d4358bf672a1f10a:40)
		at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1456)
		at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
		at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
		at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
		at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
		at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
	Caused by: [CIRCULAR REFERENCE: java.nio.file.NoSuchFileException: C:\Users\DELL\AppData\Local\Temp\d8-verify-3176826548818970237.tmp\prn.dex]

	at app.morphe.patcher.dex.SdkDexVerifier.exec(DexVerifier.kt:422)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyWithD8(DexVerifier.kt:344)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyDexFile(DexVerifier.kt:118)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyDexDirectory(DexVerifier.kt:134)
	at app.morphe.patcher.patch.BytecodePatchContext.compileFull(BytecodePatchContext.kt:282)
	at app.morphe.patcher.patch.BytecodePatchContext.get(BytecodePatchContext.kt:262)
	at app.morphe.patcher.Patcher.get(Patcher.kt:174)
	at app.morphe.cli.command.PatchCommand.call(PatchCommand.kt:738)
	at app.morphe.cli.command.PatchCommand.call(PatchCommand.kt:51)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
	at picocli.CommandLine.execute(CommandLine.java:2174)
	at app.morphe.MorpheLauncherKt.main(MorpheLauncher.kt:23)


Reddit 2026.18.0:

INFO: Wrote 13 dex files to C:\Users\DELL\AppData\Local\Temp\patcher\patched\dex 
INFO: Verifying 13 DEX files with dexdump/d8 
INFO: Patching result saved to C:\Morphe\temp_result_Reddit.json 
INFO: Purging temporary files 
INFO: Purged resource cache directory 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.base/java.util.Arrays.copyOfRangeByte(Arrays.java:3863)
	at java.base/java.util.Arrays.copyOfRange(Arrays.java:3854)
	at java.base/java.lang.String.<init>(String.java:4790)
	at java.base/java.lang.StringBuffer.toString(StringBuffer.java:739)
	at java.base/java.io.StringWriter.toString(StringWriter.java:220)
	at kotlin.io.TextStreamsKt.readText(ReadWrite.kt:122)
	at app.morphe.patcher.dex.SdkDexVerifier.exec(DexVerifier.kt:412)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyWithDexdump(DexVerifier.kt:328)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyDexFile(DexVerifier.kt:117)
	at app.morphe.patcher.dex.SdkDexVerifier.verifyDexDirectory(DexVerifier.kt:134)
	at app.morphe.patcher.patch.BytecodePatchContext.compileFull(BytecodePatchContext.kt:282)
	at app.morphe.patcher.patch.BytecodePatchContext.get(BytecodePatchContext.kt:262)
	at app.morphe.patcher.Patcher.get(Patcher.kt:174)
	at app.morphe.cli.command.PatchCommand.call(PatchCommand.kt:738)
	at app.morphe.cli.command.PatchCommand.call(PatchCommand.kt:51)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
	at picocli.CommandLine.execute(CommandLine.java:2174)
	at app.morphe.MorpheLauncherKt.main(MorpheLauncher.kt:23)

Solution

No response

Additional context

No response

Acknowledgements

  • I have checked all open and closed bug reports and this is not a duplicate.
  • I have chosen an appropriate title.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions