From e0624ce986cc9a3ff55264709fed6aab6416afd9 Mon Sep 17 00:00:00 2001 From: Skylot Date: Fri, 21 Dec 2018 19:41:10 +0300 Subject: [PATCH] fix: use '$' as separator for inner classes in .jobf file (#415) --- jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java | 4 ++-- jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java b/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java index c478baf23..ab27165fb 100644 --- a/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java +++ b/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java @@ -112,7 +112,7 @@ class DeobfPresets { for (DeobfClsInfo deobfClsInfo : deobfuscator.getClsMap().values()) { if (deobfClsInfo.getAlias() != null) { list.add(String.format("c %s = %s", - deobfClsInfo.getCls().getClassInfo().getFullName(), deobfClsInfo.getAlias())); + deobfClsInfo.getCls().getClassInfo().makeRawFullName(), deobfClsInfo.getAlias())); } } for (FieldInfo fld : deobfuscator.getFldMap().keySet()) { @@ -136,7 +136,7 @@ class DeobfPresets { } public String getForCls(ClassInfo cls) { - return clsPresetMap.get(cls.getFullName()); + return clsPresetMap.get(cls.makeRawFullName()); } public String getForFld(FieldInfo fld) { diff --git a/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java index 7c65721d6..dcade6689 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java @@ -111,6 +111,10 @@ public final class ClassInfo { return pkg.isEmpty() ? shortName : pkg + "." + shortName; } + public String makeRawFullName() { + return makeFullClsName(this.name, true); + } + public String getFullPath() { ClassInfo usedAlias = getAlias(); return usedAlias.getPackage().replace('.', File.separatorChar)