Minggu, 20 Juli 2014

[Tutorial] Decompile / Recompile APK Android [Memecah, Mengedit dan Menyusun Ulang (Build) APK]

Halo sobat maxc-jb... kali ini saya akan berbagi cara decompile dan recompile apk android.

Walaupun mungkin sudah basi / telat, semoga guide / tutorial ini bermanfaat bagi sobat yang belum tau caranya, sebagian dari pembaca mungkin sudah browsing ke forum2 luar seperti xda, gsmarena, stackoverflow dsb dengan berbagai guide dalam bahasa inggris, mungkin ada yang kesulitan mengartikannya [lupa pake google translate hehe] nah... saya coba posting dengan bahasa saya sendiri

Decompile adalah proses memecah .apk menjadi kumpulan file dalam satu folder
Recompile adalah proses menyusun kembali [build] file2 yang telah di edit menjadi .apk baru

Syarat yang diperlukan yaitu:
  • Komputer berbasis Windows
  • Internet [kalo bisa wifi gratisan :D] buat download:
  • Java JDK dan JRE [opsional]
  • Eclipse ADT [Android SDK]
  • Apktool
  • Pengetahuan tentang command prompt [cmd]
  • Ketelitian, Logika dan Kesabaran untuk edit program linux [notepad++]
  • Folder berisi ROM [stock ROM / custom ROM / backup CWM] yang sudah diekstrak
  • 7zip atau WinRAR
Saat ini sudah banyak aplikasi untuk edit apk... tapi kenapa saya tetep pake apktool?
Karena menurut saya lebih nyaman dan akurat

Langkah-langkahnya:
  1. Download Java  DISINI
  2. Pilih JDK dan JRE [opsional], terus install. JDK [Java Development Kit] adalah paket untuk pengembang Java [developer, pembuat game Java] didalamnya udah termasuk JRE [Java Runtime Evironment] yg berfungsi untuk menjalankan program berbasis Java [jar/midp] 
  3. Download dan Install Eclipse ADT DISINI
  4. Install di path yang gampang diingat. ADT [Android Developer Tools] adalah paket program untuk pengembang [developer / pembuat game / aplikasi android] yang berbasis Android SDK [Software Development Kit] didalamnya. Tanpa SDK ini anda tidak dapat memodifikasi program android di PC
  5. Download Apktool DISINI
  6. Taruh aapt.exe, apktool.bat dan apktool.jar dalam satu folder, beri nama yg singkat contoh saya beri nama folder ini apk [ini akan jadi folder kerja anda nantinya] jadi letakkan folder di path yang gampang [jangan di subfolder] misal di drive H:
  7. Jika sudah semua kita akan lanjut ke tahap decompile apk

DECOMPILE 
  • Buka cmd [command prompt] tekan tombol windows+R ketik cmd lalu enter
  • Arahkan ke drive dimana anda meletakkan folder apk tadi [contoh diatas ada di drive H:]
  • Ketik perintah berikut :
  • Kalo anda meletakkan apktool di C: berarti cukup ketik cd\ lalu cd apk [sesuai nama folder anda sendiri] maka tampilan path menjadi C:\apk> jika sudah.. berarti anda sudah masuk kedalam folder apk.. begitu juga kalo di E: atau G: dst...
  • Sekarang buka file explorer, masuk ke folder ROM yang sudah disiapkan untuk bahan percobaan... cari folder system/framework/ lalu copy framework-res.apk ke dalam folder apk diatas
  • Jika sudah, ketik:
  • Perintah diatas berfungsi menginstall framework sesuai ROM yang kita pakai di ponsel kita, setiap kita akan memecah apk, kita membutuhkan framework agar apktool dapat bekerja, misal kita akan memecah apk dari ROM lain [misal mms.apk dari xperia rom] maka kita membutuhkan file framework.apk asli dari xperia untuk memecah mms.apk dari rom xperia tadi, akan terjadi error jika kita memecahnya menggunakan framework-res.apk punya stock rom kita... begitu gambarannya... jadi jika ingin mengedit apk dari ROM samsung galaxy S4.. kita harus punya framework dari samsung S4... begitu seterusnya... jadi nanti anda harus menamai framework2 tsb dengan nama yang berbeda agar mudah.
  • Untuk saat ini kita pakai dulu framework-res dari ponsel kita sendiri, jika sudah terinstall... kita akan coba memecahnya... ketik: 
  • Perintah diatas adalah decompile [d] yaitu memecah file framework-res.apk menjadi kumpulan file dalam 1 folder baru.. yaitu folder framework-res
  • Perhatikan pesan log saat decompiling... kalo ada pesan error.. hasilnya akan tidak sempurna alias corrupt disebabkan oleh framework yang berbeda dengan apk tersebut
  • Anda bisa juga memberi nama bebas folder tujuan ex: apktool d framework-res.apk cobacoba maka akan disimpan dalam folder baru bernama cobacoba
  • Buka folder baru tsb... ada folder assets, res,dsb... 
  • Untuk guide editing res / resources , png, 9png, dsb nanti akan saya posting :D


RECOMPILE / BUILD
  • Anggap saja kita sudah selesai mengedit ...  sekarang waktunya mengemas kembali file2 tersebut menjadi apk baru
  • Ketik perintah:
  • Perintah [b] diatas berarti build... cukup hafalkan antara [d] decompile dan [b] build 
  • Anda juga bisa menyusun kembali dengan nama bebas dengan menambahkan perintah contoh: 
hasilnya akan menjadi testing.apk bukan cobacoba.apk
  • Perhatikan selama proses recompiling / building berlangsung... kalo ada pesan log error... berarti terjadi kesalahan dalam mengedit file, coba cek ulang kembali file tsb yang ada dlm daftar error log... kemudian build kembali sampai sukses tanpa pesan error
  • Keterangan log diatas: pada baris W: could not find sources [apktool mencari file framework yg sesuai dgn file apk yg sedang diproses, jika tidak ditemukan akan memakai framework default] kemudian pada baris I: Checking whether resources has changed... [apktool mencari file apa saja yg telah dimodifikasi oleh kita dlm folder res, jika tidak ada perubahan maka tidak akan ditampilkan dlm pesan log]
  • Harap perhatikan pemberian nama apk harus sesuai aslinya pada saat akan di install ke ponsel... misal mms.apk harus sama persis huruf kecil semua... pemberian nama lain hanya bertujuan membedakan antara apk asli dengan editan [karena dalam 1 folder yg sama]
  • Proses Compile apk sudah selesai... :)
  • Jangan menginstall framework-res.apk sembarangan ke ponsel anda... karena file ini sangat fatal, vital dan penting! atau ponsel anda akan bootloop dengan sukses... hahah :D File ini merupakan pondasi system android... isinya ada berbagai bar, window, dsb pada android JB biasa [AOSP] setiap kita membuka menu akan ada kotak [bar] berwarna grey dengan menu2 didalamnya... nah... kita bisa menggantinya jadi transparan atau berwarna lain... bisa juga mengganti bentuknya jadi nggak kotak lagi... atau terserah anda mau bentuk apa... nanti akan saya posting

C A T A T A N :

Hasil apk baru dari proses diatas belum siap untuk di install ke ponsel via CWM 
Siapkan copy-an dari apk asli, timpa isinya dengan isi apk yang baru [editan]

ADA 2 CARA: 

Ambil isi apk baru [testing.apk] lalu timpa ke copy-an apk asli [framework-res - Copy.apk]
Saya memakai 7zip daripada WinRAR, buka 2 window 7zip lalu tandai semua isinya, terus drag 'n drop ke window apk copy-an
atau Ambil dari folder build/apk/ di path: apk/cobacoba/build/apk/
Drag semua isi dlm folder build/apk lalu timpa ke copy-an apk yang asli

Sekarang apk baru anda dah siap di install

Kenapa harus melakukan cara diatas?
Karena dalam setiap file .apk berisi satu folder bernama META-INF dan biar lancar waktu installnya harus menggunakan META-INF asli... folder ini berisi informasi setiap file Java [jar] 
Anda bisa cari info lebih lanjut apa fungsi META-INF di google :D


Semoga bermanfaat... :)


Disclaimer : I am not responsible for any damages whatsoever, if your device / toy / tablet / rice cooker / whatever turned into "bricks god", if it occurs, and / or caused by any content in this blog. Expected to be more careful and discretion before acting. Do with your own risk. Every content has been tested before posted. Any kind of mod, tweak, and so on are used for educational purposes only. Rooting your device will void the warranty. All copyrights, company names and / or products may include trade names, trademarks and / or registered trademarks of their respective owners.

7 komentar:

  1. bagaimana cara rubah splash screen dalam posisi decompile sampai recompile???

    BalasHapus
    Balasan
    1. Splash screen itu boot logo kan maksudnya? Atau maksud anda bootanimation?

      jika ingin ganti splash screen logo andromax waktu booting gak bisa bro... krn file ini ada di dalam kernel... sedangkan semua kernel hape keluaran smartfren dikunci, di ubah jadi insecured aja langsung hardbrick, padahal cuma di unlock doang kernelnya langsung ga mau booting hape nya... jangan coba2 deh...

      Kernel andromax c jb pake versi goldfish

      Klo boot aanimation adanya di system bisa buka pake root explorer cuma ati2 bs bootloop

      Hapus
  2. kalau ganti splash screen file apk yang sudah jadi gmna caranya gan dlm posisi decompile?? soalnya saya sudah buat file apk yaitu berupa app webview tapi rencana mau rubah splash screen dengan foto atau gambar gitu gan..bukan wrna polos aja gan.. agan ngerti kan maksud ane??

    BalasHapus
  3. salam, file framewok nya dapat dari mana ya...

    BalasHapus
    Balasan
    1. file framework-res nya ada di folder /system/framework

      Hapus
  4. gan, ini edit apk ROM? kalau edit apk standar kayak maps dll gmna gan?

    BalasHapus
  5. nggak jelas goblok

    BalasHapus

Silakan pos komentar jika ada dead link atau pertanyaan