Konversi APK menjadi DEX
Ekstrak file classes.dex dan multidex dari APK menggunakan 7-Zip atau unzip.
Konversi file APK secara online
Kami belum punya konverter online khusus untuk APK ke DEX, tetapi Anda bisa mengonversi file APK secara online ke format berikut:
Ingin mengonversi APK ke DEX?
Beri tahu kami. Kami memilih konversi berikutnya yang akan ditambahkan berdasarkan minat.
Bagaimana mengkonversi apk ke dex berkas
- File terkompresi
- Belum ada peringkat.
Beberapa alat analisis Android menerima file DEX mandiri sebagai pengganti APK, dan mengekstraknya dapat mengurangi package aplikasi menjadi bytecode yang dapat dieksekusi untuk pemeriksaan atau pengarsipan. APK biasanya sudah berisi satu atau beberapa file DEX, sehingga tugas ini biasanya merupakan ekstraksi, bukan konversi format.
Apa itu format APK
APK adalah package aplikasi Android yang disimpan sebagai arsip berbasis ZIP. Android Studio dan alat build Gradle menghasilkan APK yang berisi kode aplikasi, resource terkompilasi, manifest, aset, native library, sertifikat, dan metadata package.
Kode yang dapat dieksekusi biasanya disimpan dalam classes.dex. Aplikasi multidex juga berisi classes2.dex, classes3.dex, dan file bernomor lebih tinggi. Pipeline build Android umumnya menghasilkan DEX dengan d8; R8 juga dapat mengecilkan dan mengoptimalkan kode. Project lama mungkin menggunakan dx.
Apa itu format DEX
DEX, atau Dalvik Executable, adalah bytecode Android untuk runtime Dalvik dan ART. File DEX mandiri berguna bagi alat yang menerima bytecode tanpa APK, untuk menyimpan hanya kode yang dapat dieksekusi, atau untuk memeriksa class dengan alat seperti baksmali atau JADX.
DEX bukan aplikasi yang dapat diinstal dan tidak berisi resource APK, manifest, native library, aset, atau informasi signing. DEX juga bukan source code Java. JADX dapat menghasilkan output yang menyerupai Java untuk pemeriksaan, tetapi dekompilasi menghilangkan komentar dan pemformatan serta mungkin tidak memulihkan control flow atau type asli secara persis.
Cara mengekstrak DEX dari APK
- Simpan salinan APK yang tidak diubah dan pindai file yang tidak dikenal sebelum membukanya atau mengekstraknya.
- Daftarkan isi package dengan
unzip -l app.apkdi Linux atau macOS, atau buka APK dengan 7-Zip di Windows. Mengganti nama.apkmenjadi.ziptidak diperlukan karena kedua format menggunakan container ZIP. - Ekstrak setiap entry yang cocok dengan
classes*.dex. Di shell, buat output directory dan jalankanmkdir -p dex-output && unzip -j app.apk 'classes*.dex' -d dex-output. Di 7-Zip, pilih entry DEX lalu pilih 7-Zip → Extract To. - Pastikan output mencakup semua file DEX bernomor, bukan hanya
classes.dex. Pertahankan nama file asli karena file multidex secara bersama-sama merepresentasikan bytecode aplikasi.
7-Zip adalah opsi desktop yang praktis di Windows, sedangkan utilitas standar unzip sudah memadai di Linux dan macOS. Alat-alat ini mengekstrak file yang sudah ada tanpa mengompilasi ulang atau mengompresi ulang kode aplikasi.
Kapan rekompilasi benar-benar diperlukan
Jika kode DEX telah diedit atau dibuat dari smali atau input lain, gunakan d8 dari Android SDK untuk mengompilasinya, misalnya d8 --output out classes.jar ketika inputnya adalah JAR yang kompatibel. Mengganti file DEX di dalam APK merupakan operasi rebuild, bukan ekstraksi sederhana; package yang dibangun ulang harus di-align dan ditandatangani sebelum Android dapat menginstalnya. Dex2jar bukan alat APK-ke-DEX yang tepat: alat ini mengonversi bytecode DEX menjadi file JAR yang kompatibel dengan Java untuk analisis.
Keterbatasan kompatibilitas dan keamanan
Mengekstrak DEX mempertahankan bytecode yang ada di dalam APK, tetapi file mandiri mungkin bergantung pada file DEX lain, resource, native library, atau class package. Menggabungkan file multidex menjadi satu bukanlah konversi yang netral dan dapat melampaui batas referensi method DEX atau memerlukan pembangunan ulang dengan dependency yang kompatibel dan API level yang sesuai.
Mengubah file DEX apa pun akan membatalkan signature asli APK ketika package dibangun ulang. DEX mandiri tidak memiliki signature APK dan tidak dapat diinstal sendiri. Beberapa package yang dilindungi atau tidak biasa mungkin memuat kode tambahan saat runtime, menyimpan kode di luar entry classes*.dex yang umum, atau menggunakan split APK; oleh karena itu, mengekstrak entry yang terlihat mungkin tidak menangkap seluruh kode yang dapat dieksekusi.
Konverter APK-ke-DEX online tidak diperlukan untuk package biasa dan tidak sesuai untuk file proprietary, bertanda tangan, atau tidak tepercaya karena pengunggahan mengekspos kode aplikasi dan kemungkinan secret yang tertanam. Ekstraksi lokal dengan 7-Zip atau unzip lebih aman dan menghasilkan file DEX yang diperlukan secara langsung.
APK vs DEX: perbandingan format
Bagaimana format APK dan DEX dibandingkan pada properti yang paling penting untuk konversi ini.
| Properti | .APK Android Package | .DEX Dalvik Executable |
|---|---|---|
| Standar terbuka | Tidak | Tidak |
| Kompresi | Keduanya | — |
| Ukuran file umum | Sedang | Kecil |
| Terbuka di browser web | Tidak | Tidak |
| Pengeditan lanjutan | Tidak dapat diedit langsung | Tidak dapat diedit langsung |
| Dukungan metadata | Dasar | Dasar |
| Dapat dibaca teks biasa | Tidak | Tidak |
| Paling cocok untuk | Penyematan dalam aplikasi | Penyematan dalam aplikasi |
| Diperkenalkan | 2008 | 2008 |
| Pengembang | ||
| Tipe MIME | application/vnd.android.package-archive | — |
Basis data saat ini tidak berisi apk file converter.