diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java index 13d13c43b..e42d64eb6 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java @@ -175,9 +175,7 @@ public class ClassNode extends NotificationAttrNode } private static void processSpecialClasses(ClassNode cls) { - AccessInfo flags = cls.getAccessFlags(); - if (flags.isSynthetic() && flags.isInterface() && flags.isAbstract() - && cls.getName().equals("package-info")) { + if (cls.getName().equals("package-info") && cls.getFields().isEmpty() && cls.getMethods().isEmpty()) { cls.add(AFlag.PACKAGE_INFO); cls.add(AFlag.DONT_RENAME); } diff --git a/jadx-core/src/test/java/jadx/tests/integration/special/TestPackageInfoSupport.java b/jadx-core/src/test/java/jadx/tests/integration/special/TestPackageInfoSupport.java index 4b181ebc6..cfe5a4b4f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/special/TestPackageInfoSupport.java +++ b/jadx-core/src/test/java/jadx/tests/integration/special/TestPackageInfoSupport.java @@ -28,5 +28,7 @@ public class TestPackageInfoSupport extends SmaliTest { "package special.pkg2;", "", "import org.jetbrains.annotations.ApiStatus;"); + assertThat(searchCls(classes, "special.pkg3.package-info")) + .code().isEqualTo("\npackage special.pkg3;\n"); } } diff --git a/jadx-core/src/test/smali/special/TestPackageInfoSupport/pkg3.smali b/jadx-core/src/test/smali/special/TestPackageInfoSupport/pkg3.smali new file mode 100644 index 000000000..b801da507 --- /dev/null +++ b/jadx-core/src/test/smali/special/TestPackageInfoSupport/pkg3.smali @@ -0,0 +1,2 @@ +.class interface Lspecial/pkg3/package-info; +.super Ljava/lang/Object;