Mohon tunggu...
Heagan Nicholas
Heagan Nicholas Mohon Tunggu... Lainnya - Murid

Saya suka otomotif, teknologi, dan banyak hal lainnya

Selanjutnya

Tutup

Diary

Permulaan | Reverse Engineer Active Halo

4 November 2024   18:55 Diperbarui: 4 November 2024   20:54 79
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Fitur Active Halo - Suara.com

Saya memiliki sebuah smartphone yaitu Infinix Note 40 Pro. Artikel ini bukan review untuk HP ini melainkan untuk mencari tahu cara kerja dari satu fitur HP ini, yaitu fitur Active Halo.

Sebelum mulai mencari tahu lebih dalam, fitur Active Halo adalah fitur dimana saat ada notifikasi, musik, ngecas, game, dll suatu LED dibelakang smartphone saya akan menyala. Sayangnya, dari yang saya cari-cari fitur ini gak bisa nyala beda warna per tiap aplikasi. Contohnya WhatsApp berwarna hijau, Discord berwarna ungu. Dalam seri ini saya berharap bisa membuat sesuatu agar bisa sedikit "customize" fitur ini (Tapi mungkin harapan ini ketinggian) dan juga belajar tentang android.

Untuk sekedar info, saya ingin membuat ini sebagai sebuah seri di mana saya menceritakan pengalaman saya untuk mencari cara kerja dari fitur ini. Saya tidak terlalu tahu tentang cara reverse-engineering Android, jadi kalau ada beberapa bagian yang terlihat membingungkan kemungkinan besar saya juga agak bingung. Artikel ini juga mungkin sangat teknis, jadi siap-siap!

Untuk setup, saya memakai scrcpy untuk melihat smartphone dan terminal untuk menjalankan perintah-perintah ADB

Pertama-tama saya mulai dari cari-cari di log android dengan logcat. Singkatnya, log adalah sebuah file yang berisi sesuatu yang terjadi dengan sistem dan cukup berguna untuk debug aplikasi dan mengetahui hal lain.

Untuk melihat log bisa dengan menggunakan adb dengan command "adb logcat". ADB adalah singkatan dari android device bridge, dengan menggunakan program ini kita bisa melakukan berbagai hal ke smartphone kita seperti melihat layar, menjalankan shell, menginstall aplikasi dan masih banyak lagi.

Hasil perintah adb logcat (ini masih lanjut) - Dokumen Penulis
Hasil perintah adb logcat (ini masih lanjut) - Dokumen Penulis

Saat saya menjalankan perintah ini, hasilnya panjang banget (hampir 200 baris dan masih lanjut)... Cara mencari yang saya butuhkan bisa 2 cara:

1. Nyalain Active Halonya terus baca semuanya.

2. Nyalain Active Halonya, langsung berhentiin perintahnya, baca deket-deket akhir.

Karena cara ke-2 pasti lebih singkat, saya pakai itu.

11-02 23:09:51.248 1732 2232 I mtkpower_client: ret_hdl:79573711-02 23:09:51.256 1732 4984 D ActivityManager: hookDisturbStatus status = 8011-02 23:09:51.257 1732 4984 D LedNote : write arg=00 02 02 00 00 0011-02 23:09:51.262 971 1000 D ccci_mdinit: (1):monitor_time_update_thread round:37962 ########11-02 23:09:51.265 1320 32052 D BufferPoolAccessor2.0: bufferpool2 0xb400007a7e47cf28 : 3(7500 size) total buffers - 1(3000 size) used buffers - 13565/13568 (recycle/alloc) - 20/13566 (fetch/transfer)

Ada sesuatu yang menarik dari log ini, ada tag yang namanya "LedNote" dengan message "write" dan diikuti dengan beberapa angka (kayaknya hexadecimal).

Pilihan dalam settings - Dokumen Penulis
Pilihan dalam settings - Dokumen Penulis

Setelah mencoba-coba mengganti, angka-angkanya juga ganti.

Tiap tab ada 6 pilihan warna, datanya:

Tab 1

Warna 1: 00 02 00 00 00 00Warna 2: 00 02 01 00 00 00dan lanjut sampaiWarna 6: 00 02 05 00 00 00

Tab 2

Warna 1: 00 01 00 00 00 00Warna 2: 00 01 01 00 00 00dan lanjut sampaiWarna 6: 00 01 05 00 00 00

Tab 3

Warna 1: 00 04 00 00 00 00Warna 2: 00 04 01 00 00 00dan lanjut sampaiWarna 6: 00 04 05 00 00 00

Dan tiap kali ganti pilihan datanya jadi

00 00 00 00 00 00

Jadi dari ini bisa dibilang:

Bagian 2: "02" Kalau tab 1, "01" Kalau tab 2, "04" kalau tab 3Bagian 3: "00" kalau pilihan 1 sampai "05" untuk pilihan 6Kalau semuanya 00 maka reset

Ini adalah penemuan yang menarik! Tapi bisa gak sih kita tulis data ini sendiri? Penasaran saya cari-cari sebenernya kalo pencet "Preview on Back" dia ngapain sih secara internal?

Berarti ini perlu dapetin .apk dari aplikasi settings dan di reverse-engineer menggunakan komputer

Jadi gimana cara dapetin .apk filenya? Pertama-tama saya menggunakan perintah "adb shell cmd package list packages --user 0 | grep settings", "adb shell ... --user 0" artinya adalah berikan semua daftar aplikasi yang ada pada smartphone ini, lalu "|" artinya output dari perintah sebelumnya masukkan ke perintah berikutnya, "grep settings" mencari yang ada "settings". Hasilnya adalah:

package:com.android.settings.intelligencepackage:com.transsion.aisettingspackage:com.android.settings.resoverlaypackage:com.transsion.ossettingsextpackage:com.android.settingspackage:com.android.providers.settings

Setelah di cari-cari ternyata saya perlu yang "com.android.settings", terus dapetin APKnya gimana? tinggal pakai perintah "adb shell pm path com.android.settings" dan akhirnya dapat filenya dimana:

package:/system_ext/priv-app/TranSettingsApk/TranSettingsApk.apk

Saya pikir setelah itu tinggal pakai "adb pull /system_ext/priv-app/TranSettingsApk/TranSettingsApk.apk" tapi

adb: error: cannot create './/TranSettingsApk.apk': Permission denied

Saya punya feeling kalau ini harus ada root...

tapi setelah panjang lebar, akhirnya bisa di pull juga. Singkatnya caranya:

pakai "adb shell"

"cd" ke folder itu

"cp" ke /sdcard biar bisa diakses dari komputer

"adb pull" dari sdcard

Setelah ini saya sadar kalau sebenernya saya yang salah, karena saya ada di "/dev" yang harusnya gak boleh ditulis kecuali di sudo. Harusnya dari awal udah bisa.

Sekian untuk part ini, part selanjutnya mungkin besok? Kalau saya ketemu informasi lebih lanjut. Kira-kira untuk part selanjutnya saya akan ngomongin tentang reverse engineering menggunakan jadx (yang saya belum pernah coba).

Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H

HALAMAN :
  1. 1
  2. 2
  3. 3
  4. 4
Mohon tunggu...

Lihat Konten Diary Selengkapnya
Lihat Diary Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun