Cara Dekompilasi dan Tema Android APK
Pernahkah Anda membuka aplikasi Android dan tidak menyukai tema warna yang digunakan? Bagaimana jika Anda ingin mengubah latar belakang putih di aplikasi menjadi hitam, misalnya? Hari ini saya akan menunjukkan kepada Anda cara mendekompilasi file .APK sehingga Anda dapat mengedit file di dalamnya, kemudian mengkompilasi ulang dan menginstalnya di ponsel Android Anda.
Catatan: Beberapa aplikasi lebih sulit dibandingkan yang lain. Facebook Messenger misalnya sangat sulit untuk tema. Saya akan memandu Anda melalui panduan ini menggunakan aplikasi Dropbox sebagai contoh, karena ini adalah salah satu yang termudah untuk diedit.
Persyaratan
- Notepad ++
- APKTool + AAPT terbaru
- Script Alat APKMulti
- Editor foto seperti Photoshop / GIMP
- [Opsional] Dropbox .apk (untuk mengikuti panduan ini)
Unduh semua alat yang diperlukan dan instal pada PC Anda, termasuk test.apk yang disediakan di atas. Dropbox adalah salah satu aplikasi yang lebih mudah untuk tema, jadi kami akan menggunakannya untuk tutorial ini.
Anda juga harus mentransfer framework-res.apk dari ponsel ke PC Anda, itu terletak di / system / framework / di penyimpanan internal Anda.
Jatuhkan APKTool dan AAPT di dalam folder Lain di dalam direktori utama Perangkat Multi APK.
Seret test.apk ke folder Place-apk-for-modding di dalam direktori Multi Tool APK, dan Anda akan disambut dengan terminal perintah.
Tekan sembarang tombol untuk melanjutkan, dan Anda akan melihat menu terminal dengan banyak opsi. Pilih opsi 24.
Anda akan kembali ke layar terminal utama, tetapi test.app akan menjadi proyek Anda. Jadi tekan 9 untuk mendekompilasi apk, lalu tekan 12 untuk menjalankan test-build. Ini adalah praktik yang baik untuk melihat jika ada sesuatu yang salah. Jika aplikasi dibangun dengan benar, tekan 2 dan minimalkan skrip yang muncul.
Karena pengujian sudah dicoba, mari selami pengeditan kode XML apk tersebut. Silakan ikuti dengan hati-hati.
Di dalam folder .apk yang diekstrak, masuk ke folder res dan buka AndroidManifest.xml dengan Notepad ++. Sekarang tekan CTRL + F untuk menemukan string berikut:
android: latar belakang
Gunakan opsi Temukan Semua, dan harus ada sekitar 190 string yang ditemukan. Jadi sekarang Anda harus melalui setiap string yang disorot, untuk memastikan Anda tidak melewatkan saat kami mengubah warna latar belakang aplikasi.
Gulir hingga Anda menemukan Camera_upload_grid.xml yang berisi string android: background = @ * android: warna / putih. Salin seluruh string dan tekan CTRL + H sehingga dialog Ganti muncul. Tempelkan string ke garis atas dan bawah, tetapi kita harus mengubahnya.
Di dalam folder .apk yang telah dikompilasi, masuk ke /res/values/colors.xml dan buka di Notepad ++. Cari garis abs__background_holo_dark, yang paling jelas adalah latar belakang. Jadi sekarang salin string itu, dan kembali ke file XML pertama yang kami buka, dengan kotak Ganti masih terbuka, dan di baris bawah tempelkan string yang baru saja Anda salin. Jadi Anda seharusnya sudah ada di baris bawah dialog Replace:
android: background = @ color / abs__background_holo_dark
Sekarang tekan Ganti Semua, dan itu akan mengubah semua @android: warna / putih untuk menggunakan background_holo_dark sebagai gantinya. Sekarang lanjutkan menggulir seluruh .xml, mencari android apa pun: string latar belakang yang menggunakan nilai hex (#fffffff) atau apa pun selain dari apa yang baru saja kita ganti. Untuk yang Anda temukan, ubah string untuk menggunakan yang baru (abs__background_holo_dark).
Jadi kami mengubah latar belakang, sekarang kita akan mengubah warna teks. Jadi ikuti prosedur yang sama yang baru saja kita lakukan, tetapi kali ini lakukan CTRL + F untuk android: textColor. Anda akan menemukan sekitar 166 baris yang ditemukan.
Anda akan melihat hal-hal seperti android: textColor = # ffbbbbbb, dll. Jadi lihat bagian dalam Colors.xml lagi dan kita perlu mencari tahu garis mana untuk menggantikan warna teks.
Anda dapat melihat android: textColor = # ffbbbbbb, #ffffffff, # ff717171, dan #ffcccccc di tangkapan layar dan di hasil pencarian Anda di Catatan ++. Buka Colors.xml Anda lagi sekarang untuk menemukan baris mana yang ingin kita gunakan untuk warna teks.
Jadi kembali ke .xml pertama dan lakukan CTRL + H untuk dialog Ganti lagi. Sekarang copypaste android: textColor = # ffbbbbbb string ke atas dan bawah, dan ubah garis bawah ke android: textColor = @ color / text.
Sekarang sekali lagi, cari melalui semua android: textColor lines dan ubah apa pun yang memiliki nilai hex dalam string. Akhirnya ketika Anda masuk ke file styles.xml, Anda ingin menghapus invers dari beberapa baris, mulai dari garis 260 dan terus ke bawah untuk beberapa baris. Jadi hapus Inverse dari string tersebut.
Selanjutnya Anda akan melihat beberapa nilai hex di sekitar baris 527, 536, 573, 579, 585, 601, dan beberapa lainnya. Gantilah dari (#ffffffff) ke (@ color / text).
Tekan CTRL + F untuk mencari di Notepad ++ untuk cacheColorHint, divider, @ * android: color /, dan Inverse .
The cacheColorHint adalah latar belakang bergulir, jadi kami harus memastikan mereka menggunakan warna latar belakang kami. Pembagi sudah cukup jelas, dan kita dapat mengubah nilai hex mereka jika Anda mau. Satu-satunya hal adalah Anda tidak boleh menyentuh apa pun yang mengarah ke @drawable. Biasanya ini adalah gambar yang disimpan sebagai file .png di tempat lain dalam folder .apk.
Saat Anda mencari invers, ia akan menampilkan referensi ke textAppearanceInverse. Anda perlu mengklik dua kali masing-masing ini dan menghapus Inverse dari string tersebut.
Akhirnya, pencarian @ * android: color / hanya akan dicek ulang jika kita melewatkan pengubahan kerangka kerja apa pun. Jika Anda menemukan sesuatu yang mengatakan android: popupBackground> @ * android: warna / putih, Anda perlu mengubahnya ke android: popupBackground> @ color / abs__background_holo_dark. Ini termasuk baris 911, yang dapat membingungkan karena sudah mengarah ke android: warna / hitam.
Selanjutnya kita akan membuka res / values / colors.xml dan mengubahnya agar terlihat seperti ini:
Selanjutnya res / values / styles.xml, dan gulir ke bawah ke baris 328. Ubah seperti ini:
TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini() harus diubah menjadi ()
Lakukan hal yang sama untuk baris 479, mengubah cahaya menjadi hitam .
Sekarang masuk ke res / values-v11 / styles.xml, dan hapus cahaya di mana dikatakan Holo.Light .
Selanjutnya Anda akan membuka res / values-v14 / styles sekarang, yang berisi banyak string. Jadi pada 46 baris pertama, Anda ingin menghapus referensi Light dan Inverse, dan kemudian mengubah orang tua pada baris 53 dan 54 ke @ * android: style / Theme.Holo.
Pada baris 69, di sisi kanan orangtua, hapus Cahaya dari @ * android: style / Theme.Holo.Light.Dialog induk.
Ini banyak pekerjaan, kan? Mungkin mulai sekarang Anda akan lebih menghargai tema dan kulit aplikasi!
Selanjutnya kita akan masuk ke folder res / warna . Ada beberapa file teks di sana yang mengarah ke hitam. Buka res / colors / action_mode_item_text_color_state_list.xml
Seperti itulah tampilannya. Di bawah ini adalah bagaimana Anda harus membuatnya.
Anda perlu mengubah sames tersebut ke file xml berikut di dalam folder / res / colors: Bottom_button.xml, Button_update.xml, Filelist_text_name.xml, Filelist_text_small.xml, Link_button.xml, Local_filelist_text_name.xml, Local_filelist_text_small.xml, ss_bottom_bottom_text_color_dark. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.
Ketika Anda selesai dengan mereka, buka / res / drawable dan ada xmls yang mengontrol warna latar belakang. Jadi, telusuri mereka dan buat mereka terlihat seperti ini:
Terapkan perubahan yang sama ke semua file drawable.xml lainnya.
Sekarang buka test.apk dan tekan CTRL + klik kiri untuk menyorot smali dan AndroidManifest, lalu klik kanan dan Edit dengan Notepad ++ lagi. Setujui semua file smali 1999. Saat dimuat, lakukan pencarian CTRL + F untuk -0x100 (hitam)
Anda akan mendapatkan sekitar 8 klik, dan yang Anda inginkan adalah smali / com / dropbox / android / activity / TextEditActivity.smali, pada baris 599. Klik dua kali baris itu.
Baris 599 berisi -0x100 di dalamnya, dan baris 601 memiliki SetTextColor. Ada juga variabel yang sesuai dengan baris 599. Jadi untuk menjelaskan secara singkat, -0x100, -0x1000000 dan bahkan 0x0 berarti hitam, -0x1000000 juga hitam dan bahkan 0x0. Ubah baris 599 dengan menghapus dua 0 dari 100 dan menghapus / high16 seperti ini:
Selanjutnya kita akan mencari @ * android: style, tetapi di smali. Xml akan berisi tambahan 0 setelah x, tetapi di smali kami tidak menggunakannya. Ini harus 0x103004f bukan 0x0103004f.
Lakukan pencarian di Notepad ++ untuk @ * android: style / yang mengandung 0x103.
Hit kedua adalah const v7, 0x1030073. Cari di public.xml Anda dari framework-res.apk lagi. Anda akan melihat bahwa itu adalah id untuk Theme.Holo.Light.Dialog. Anda harus mengubahnya ke id publik style tema yang berlawanan.
Karena yang ini adalah Theme.Holo.Light.Dialog, Anda ingin menjadikannya Theme.Holo.Dialog. Theme.Holo.Dialog memiliki id 0x103006f. Itu akan mengubah kotak dialog peringatan pop up untuk menggunakan tema berbasis Holo yang lebih gelap daripada tema ringan Holo.Light based.
Yang berikutnya yang perlu kita ubah adalah 0x103006e yang merupakan Theme.Holo.Light. Jadi, lanjutkan dan jadikan gaya tema yang berlawanan. Di public.xml Anda dari framework-res.apk, Anda akan melihat id untuk Theme.Holo adalah 0x0103006b. jadi mari kita ubah baris itu agar terlihat seperti ini:
Hanya ada 2 lagi yang harus dilewati. Yang berikutnya adalah 0x103000c, yang untuk Theme.Light di public.xml. Kebalikannya adalah Theme.Black, bukan ThemeHolo. Jadi di public.xml Anda akan melihat id untuk Theme.Black adalah 0x01030008 - ubah tampilannya menjadi seperti ini:
Di aplikasi lain, akan ada hal-hal lain untuk diedit dan diubah, dan dengan latihan yang cukup Anda akan dapat menata ulang hampir apa saja. Tetapi untuk sekarang, kita sudah selesai dengan semua bit kode ( akhirnya!) .
Jadi sekarang Anda dapat membuka skrip dari Alat Multi Apk, dan tekan 12 untuk mengkompilasi aplikasi. Jika ada kesalahan ditampilkan, Anda dapat mencoba untuk melihat ke dalam log kesalahan untuk apa yang salah, tetapi kemungkinan besar Anda membuat kesalahan ketik atau kesalahan lain selama pengeditan kode.
Saat build selesai, tekan 2 dan kemudian 13 untuk menandatangani ulang aplikasi.
Aplikasi stok berisi folder bernama Templates - Anda perlu menyeretnya ke dalam apk yang belum ditandatangani menggunakan sesuatu seperti 7zip. Salin unsigned.apk ke folder place-apk-here-for-signing di dalam Apk Multi Tool. Sekarang tekan 18 di skrip terminal untuk mengumpulkan daftar aplikasi dalam folder itu. Ketika selesai, skrip akan secara otomatis keluar sendiri. Anda sekarang dapat memuat .apk ke perangkat Anda!
TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini