Skip to content

Commit 97fa8ff

Browse files
committed
fix: build correct file path for class from default package (#2854)
1 parent 27c283f commit 97fa8ff

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

jadx-cli/src/test/java/jadx/cli/TestInput.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,12 @@ public void testResourceOnly() throws Exception {
7373
path -> path.getFileName().toString().equalsIgnoreCase("AndroidManifest.xml"));
7474
assertThat(files).isNotEmpty();
7575
}
76+
77+
@Test
78+
public void testNoRenameForDefPkg() throws Exception {
79+
int result = execJadxCli(buildArgs(List.of("--rename-flags", "none"), "samples/defpkg.smali"));
80+
assertThat(result).isEqualTo(0);
81+
List<Path> files = collectJavaFilesInDir(outputDir);
82+
assertThat(files).hasSize(1);
83+
}
7684
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.class public LA;
2+
.super Ljava/lang/Object;

jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,12 @@ public String makeAliasRawFullName() {
214214
}
215215

216216
public String getAliasFullPath() {
217-
return getAliasPkg().replace('.', File.separatorChar)
218-
+ File.separatorChar
219-
+ getAliasNameWithoutPackage().replace('.', '_');
217+
String fileName = getAliasNameWithoutPackage().replace('.', '_');
218+
String aliasPkg = getAliasPkg();
219+
if (aliasPkg.isEmpty()) {
220+
return fileName;
221+
}
222+
return aliasPkg.replace('.', File.separatorChar) + File.separatorChar + fileName;
220223
}
221224

222225
public String getFullName() {

0 commit comments

Comments
 (0)