프로젝트 소개

jadx는 Apache 2.0 라이선스 하에 배포되는 오픈 소스 Dex에서 Java로의 디컴파일러입니다. Android Dex 및 APK 파일에서 Java 소스 코드를 생성하기 위한 명령줄 및 GUI 도구를 모두 제공합니다. 주요 기능: - APK, dex, aar, aab 및 zip 파일에서 Dalvik 바이트코드를 Java 코드로 디컴파일합니다. - resources.arsc에서 AndroidManifest.xml 및 기타 리소스를 디코딩합니다. - 구성 가능한 이름 길이 제한, 화이트리스트 및 매핑 파일 지원을 갖춘 난독 해제 기능을 포함합니다(Tiny, Tiny v2, Enigma, ProGuard, SRG, XSRG, JAM, CSRG, TSRG, TSRG 2, IntelliJ 마이그레이션 맵, Recaf 간단 버전, JOBF). jadx-gui 인터페이스는 구문 강조 표시된 디컴파일된 코드, 선언으로 이동, 사용 찾기, 전체 텍스트 검색 및 smali 디버거를 제공합니다. 키 바인딩과 기능 개요는 프로젝트 위키에 문서화되어 있습니다. 설치 옵션에는 GitHub의 릴리스 아카이브, 불안정한 야간 빌드, Arch Linux 패키지(extra 및 AUR), macOS용 Homebrew, 그리고 Flathub이 포함됩니다. 도구를 실행하려면 Java 11 이상 64비트가 필요합니다. jadx는 Java 프로젝트에서 라이브러리로도 사용할 수 있으며, JDK 17 이상을 사용하여 Gradle로 소스에서 빌드할 수 있습니다. 명령줄 도구는 출력 디렉터리, 디컴파일 모드(auto, restructure, simple, fallback), 리소스 디코딩, 스레드 수, Gradle 프로젝트 내보내기, 난독 해제 설정, 이름 변경 플래그, 정수 포맷팅, 제어 흐름 그래프 및 호출 그래프 내보내기, 로그 수준 및 구성 파일 등을 포함한 많은 옵션을 받아들입니다. 플러그인 명령은 dex 입력, Java 변환, Kotlin 메타데이터, Kotlin SMAP, 이름 변경 매핑 및 smali 입력용 번들 플러그인과 함께 플러그인의 설치, 나열, 업데이트, 활성화 및 비활성화를 지원합니다. 환경 변수를 통해 config, 캐시 및 임시 디렉터리를 사용자 지정하고 XML/zip 보안 검사 및 zip 항목 제한을 조정할 수 있습니다. README에서는 jadx가 모든 경우에 모든 코드를 디컴파일할 수 없으므로 오류가 발생할 수 있으며, 위키의 문제 해결 가이드를 참조한다고 언급합니다.