Cara Menambahkan Joystick Di Handphone atau Tablet Berbasis Android

By Lilis Hendrani - Agustus 09, 2018


Pernah kebayang saat main game kita malahan kesel karena support control pada game tersebut kurang familiar di tangan kita? Dan rasanya pengen beli stick khusus untuk main game di handphone atau tablet?

Game apa aja yang bikin tangan kesemutan? PUBG dan GTA Mobile pastinya
Hal itu yang membuat saya untuk mencoba dan mencari tau mungkin gak sih stick game console di pake di hape? Tanya mbah google di jawab “iso den!!”

Saya pulang kerumah ibu dan nemu laptop yang masih terinstall Linux, dan beberapa keperluan seperti OTG dan stick jadul pas masa-masa muda dulu main game bola.

Hack Android Handphone dan Tablet

Oce kabeh wes lengkap tinggal macak jadi hacker…

ALAT:
  • Samsung Tablet
  • OTG USB
  • ADB
  • Linux OS
  • EVTEST (Utility Program buat ngebaca gamepad)
Saya sarankan menggunakan ADB nirkabel untuk menyambung ke perangkat, sehingga dapat mentransfer file dan mengetikkan perintah shell saat gamepad dicolokkan. Saya secara pribadi menggunakan ADB Manajer yang udah ada di google playstore.

o iya discalaimer sek: saya tidak bertanggung jawab jika ini melanggar sesuatu apapun blalalalalal..... mengubah perangkat android anda mungkin akan merusaknya jadi lakukan semuanya secara hati-hati dan jangan lupa RTFM (read the fucking manual), semua tulisan dalam artikel ini di sesuaikan dengan perangkat yang saya gunakan tablet dan stick game dan untuk jenis lain saya rasa sama saja selama berbasis android.

Hacking Time Begin

Finding The Keycodes

Pertama-tama Android akan memetakan gamepad keys sebagai tindakan internal contoh pada gamepad nomor 289 sebagai BUTTON_X, ini adalah dokumentasi keymap file bisa di gunakan pada keyboard, hairdrayer dan gamepad. pada tindakan ilegal biasanya merupakan acuan baku untuk keylogger.

Fungsi keylayout ini secara garis besar untuk memberi tahu android keycodes gamepad yang akan direkam.

Pertama pasang gamepad Anda ke komputer linux Anda. Setelah melakukannya, jalankan perintah dmesg terminal untuk mengetahui vendor dan id produk gamepad Anda. Ini akan menjadi penting nantinya.

$ dmesg
usb 3-1: new low-speed USB device number 10 using xhci_hcd
usb 3-1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
input: Mega World USB Game Controllers as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:07B5:0315.0008/input/input24
hid-generic 0003:07B5:0315.0008: input,hidraw3: USB HID v1.10 Joystick [Mega World USB Game Controllers] on usb-0000:00:14.0-1/input0

Dalam output ini, bagian yang penting adalah 07B5: 0315, yang merupakan vendor ID 07B5 dan ID produk 0315. Output Anda mungkin terlihat berbeda tergantung pada versi kernel Anda. Jika Anda tidak dapat mengetahui apa itu, Anda juga dapat menjalankan perintah lsusb untuk mendapatkan keluaran yang lebih mudah dibaca.

$ lsusb
Bus 003 Device 005: ID 8087:07dc Intel Corp.
Bus 003 Device 010: ID 07b5:0315 Mega World International, Ltd
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Untuk mengetahui raw keycodes, kita harus membaca sinyal langsung dari /dev /input. Karena ada banyak perangkat di dalam /dev/input, Anda harus mencoba perangkat yang sebenarnya adalah gamepad Anda. untuk perangkat saya /dev/input/event18.

$ evtest /dev/input/event18$

Sekarang tekan beberapa tombol untuk mengetahui tombol mana yang memiliki kode kunci. Menekan tombol akan menghasilkan beberapa output seperti ini:

Event: time 1428772902.008207, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1428772902.008207, type 1 (EV_KEY), code 288 (BTN_TRIGGER), value 1
Event: time 1428772902.008207, -------------- EV_SYN ------------
Event: time 1428772902.120190, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1428772902.120190, type 1 (EV_KEY), code 288 (BTN_TRIGGER), value 0
Event: time 1428772902.120190, -------------- EV_SYN ------------

Saya buatkan diagram dari hasil output di atas agar mudah di pahami

Diagram Button Trigger Pada Evtest
Selanjutnya goyangkan kontrol stick gamepad sebelah kanan (analog), gerakan dengan arah horizontal kemudian vertikal untuk mendapat sumbu setiap gerakan dari analog. ini adalah konfigurasi yang saya buat:


#
# Mega World USB Game Controllers
#
 
key 288   BUTTON_A
key 290   BUTTON_B
key 289   BUTTON_X
key 291   BUTTON_Y
key 292   BUTTON_L1
key 294   BUTTON_R1
key 293   BUTTON_L2
key 295   BUTTON_R2
key 296   BUTTON_SELECT
key 297   BUTTON_START
key 298   BUTTON_THUMBL
key 299   BUTTON_THUMBR
 
# Left and right stick.
axis 0x00 X <--- Sumbu analog kiri
axis 0x01 Y <--- Sumbu analog kiri
axis 0x02 RZ <--- Sumbu analog kanan
axis 0x05 Z <--- Sumbu analog kanan

sebelum file konfigurasi itu dimasukan kedalam perangkat pastikan anda tidak melakukan kesalahan cek dengan menggunakan validate keymaps tool from the android sdk

Konfigurasi sekarang sudah bisa disimpan dengan menyertakan ID vendor dan ID produk gamepad Anda. Dalam kasus saya ID vendor adalah 07B5 dan ID produk adalah 0315 sehingga nama file konfigurasi saya adalah Vendor_07b5_Product_0315.kl

Cara Menambahkan Konfigurasi Ke Perangkat Android Anda

setelah key mapping tadi disimpan ke Vendor_07b5_Product_0315.kl sekarang yang kita lakukan adalah mengunggah file kedalam perangkat dengan menggunakan ADB Manager
untuk mempermudah jika membuat perubahan pada konfigurasi gamepad.

masukan file konfigurasi pada sdcard

$ adb connect
$ adb push Vendor_07b5_Product_0315.kl /sdcard/

Jangan lupa untuk remount partisi/sistem agar file bisa ditulis, ini mungkin berbeda dari perangkat ke perangkat. periksa di mana sistem anda di-mount dengan menggunakan perintah mountdi tablet saya sistem di mount ke /dev/block/mmcblk0p20 remount perangkat menjadi read-write-able.

jadikan ADB shell menjadi root pada tablet anda dengan menggunakan perintah su


$ adb shell
$ su
$ mount -o remount,rw /dev/block/mmcblk0p20

sekarang kita bisa copy keylayout dari sdcard kedalam keylayout folder:

$ cp /sdcard/Vendor_07b5_Product_0315.kl /system/usr/keylayout/

dan ubah permission file ke 644

$ chmod 644 /system/usr/keylayout/Vendor_07b5_Product_0315.kl

Sekarang Anda dapat menghubungkan gamepad ke perangkat android dengan menggunakan OTG dan memainkan beberapa game untuk memeriksa apakah semuanya sudah berjalan dengan benar? kalo ada yang salah tinggal mengunggah versi baru keymap ke sdcard dan paste ke folder sistem. oke deh sepertinya semuanya sudah sesuai, jangan lupa untuk me-remount partisi sistem kembali ke read-only.

$ mount -o remount,ro /dev/block/mmcblk0p20

selesai. selamat mencoba and enjoy your playing the game!

  • Share:

You Might Also Like

0 komentar