# DroidForge
Alat & Dokumentasi ADB

Analisis Protokol ADB Over TCP/IP dan Otomatisasi Diagnostik Logcat

T Tim Riset DroidForge
Diperbarui:
8 min read
Daftar Isi Artikel

Arsitektur Tripartit ADB: Client, Server, dan Daemon (adbd)

Android Debug Bridge (ADB) adalah protokol serbaguna yang menghubungkan stasiun kerja pengembangan dengan perangkat target Android. Di balik perintah baris perintah tunggal adb, terdapat arsitektur tripartit client-server yang dirancang secara terdistribusi:

  1. The Client: Komponen baris perintah yang dijalankan pada komputer pengguna (misalnya saat mengetikkan adb logcat atau adb shell). Client membaca konfigurasi lingkungan dan mengirimkan instruksi ke ADB Server.
  2. The Server: Proses latar belakang yang berjalan di stasiun kerja komputer pada port TCP 5037. Server bertindak sebagai multiplexer yang mengelola komunikasi antara berbagai klien dengan sejumlah perangkat target yang terhubung secara fisik atau melalui jaringan.
  3. The Daemon (adbd): Proses latar belakang yang berjalan di sistem operasi Android target sebagai layanan root atau shell terisolasi. Daemon menginterpretasikan perintah dari server dan berinteraksi langsung dengan subsistem Linux Android.

Mekanisme Otentikasi Kriptografis ADB (RSA Keypair)

Sejak Android 4.4 KitKat, koneksi ADB diwajibkan melewati mekanisme otentikasi kriptografi kunci publik asimetris RSA. Hal ini mencegah akses ilegal ke perangkat yang terhubung ke port USB publik.

Saat client ADB pertama kali berinteraksi dengan perangkat, komputer mengirimkan token acak yang ditandatangani menggunakan private key host (~/.android/adbkey). Daemon adbd pada perangkat memeriksa apakah public key pengirim sudah terdaftar di dalam database lokal /data/misc/adb/adb_keys. Jika belum, antarmuka sistem Android memunculkan dialog konfirmasi otorisasi sidik jari RSA (fingerprint prompt) kepada pengguna.

Metode Koneksi ADB Lapisan Transportasi Metode Otentikasi Kelebihan dan Risiko Keamanan
ADB over USB USB Bulk Transfer Endpoints RSA Token Exchange Paling stabil, throughput data tinggi, risiko eksploitasi fisik kabel.
Legacy ADB over TCP/IP Raw TCP Socket (Port 5555) RSA Token Exchange Dapat diakses melalui jaringan LAN lokal, rentan terhadap port scanning jika otentikasi dinonaktifkan.
Wireless Debugging Modern mDNS + TLS Encrypted Socket SPAKE2 Password Pairing + TLS X.509 Enkripsi end-to-end kuat, port dinamis berputar, perlindungan penuh terhadap man-in-the-middle di Wi-Fi publik.

Peringatan Keamanan Jaringan: Batasi Akses Port ADB 5555

Baca Juga:
Audit Keamanan Keystore dan Hardware-Backed Security Module pada Android
Keamanan & Kernel 4 mnt baca

Jangan pernah membiarkan mode legacy adb tcpip 5555 aktif saat terhubung ke jaringan Wi-Fi publik atau tanpa proteksi firewall. Mesin pemindai otomatis di internet dapat mencoba brute-force otentikasi adb pada host yang mengekspos port 5555.

Arsitektur Multiplexing ADB Transport Layer

Komunikasi tingkat rendah antara ADB Server dan daemon adbd diatur oleh protokol paket biner terstruktur berukuran header 24 byte. Setiap frame paket mendefinisikan tipe perintah (Command Code):

  • A_CNXN (0x4e584e43): Paket inisiasi jabat tangan koneksi untuk menegosiasikan versi protokol dan kapasitas payload buffer maksimum.
  • A_OPEN (0x4e45504f): Membuka stream virtual baru (misalnya membuka session shell atau forwarding port lokal).
  • A_OKAY (0x59414b4f): Mengonfirmasi bahwa stream lokal berhasil dibuat dan siap mentransfer data.
  • A_WRTE (0x45545257): Mengirimkan payload byte stream data nyata.
  • A_CLSE (0x45534c43): Menutup stream koneksi setelah proses selesai dieksekusi.

Desain multiplexing ini memungkinkan satu koneksi fisik kabel USB atau soket TCP tunggal untuk menangani puluhan stream paralel secara simultan (misalnya menjalankan logcat, mentransfer file biner via push, dan membuka interaktif shell bersamaan tanpa tabrakan data).

Baca Juga:
Kembalikan aplikasi ke versi lama tanpa hapus data obrolan berkat modul let me downgrade
Lsposed 4 mnt baca

Konfigurasi Wireless Debugging Android 11+ via TLS Pairing

Android 11 memperkenalkan fitur Wireless Debugging yang sepenuhnya menghilangkan ketergantungan pada koneksi kabel USB awal. Mekanisme ini menggunakan protokol mDNS (multicast DNS) untuk penemuan layanan dan otentikasi berstandar TLS:

# 1. Melakukan pairing perangkat menggunakan pairing code acak 6-digit
adb pair 192.168.1.50:37123 849201

# 2. Setelah status "Successfully paired", hubungkan ADB ke port layanan yang aktif
adb connect 192.168.1.50:42105

# 3. Verifikasi status koneksi perangkat target
adb devices -l

Otomatisasi Ekstraksi Buffer Logcat untuk Analisis Sistem

Logcat adalah subsistem logging terpusat Android yang mengelola berbagai buffer sirkular terpisah di memori. Penggunaan buffer yang tepat sangat menentukan kecepatan deteksi anomali:

  • main: Buffer utama untuk log aplikasi dan framework umum.
  • system: Pesan internal dari layanan inti Android OS (ActivityManager, PackageManager, WindowManager).
  • events: Event biner terstruktur untuk pemantauan siklus hidup aplikasi dan performa memori.
  • crash: Khusus menampung unhandled Java exception, native signal segmentation fault (SIGSEGV), dan fatal abort.
# Menampilkan fatal crash dan stack trace native secara eksklusif
adb shell logcat -b crash -v time

# Memfilter log sistem hanya untuk event Activity lifecycle
adb shell logcat -b events -s am_create_activity am_resume_activity

# Menyimpan log terkompresi dengan format threadtime untuk analisis pasca-kejadian
adb logcat -v threadtime -d > android_system_dump.log

Skrip Otomasi Diagnostik Sistem Sederhana

Dalam pengujian berkelanjutan di laboratorium riset, ekstraksi metrik kinerja dapat diotomatisasi melalui skrip shell atau Python untuk mengaudit stabilitas sistem operasi:

#!/usr/bin/env bash
# Skrip audit kesehatan subsistem Android via ADB
TARGET_IP="192.168.1.50:42105"
adb connect $TARGET_IP

echo "=== MEMORY ALLOCATION REPORT ==="
adb -s $TARGET_IP shell dumpsys meminfo --compact

echo "=== BATTERY DISCHARGE & TEMPERATURE METRICS ==="
adb -s $TARGET_IP shell dumpsys battery | grep -E "level|temperature|voltage"

echo "=== ACTIVE CPU FREQUENCIES ==="
adb -s $TARGET_IP shell "cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq"

Kesimpulan Protokol ADB

Protokol ADB merupakan antarmuka komunikasi paling fleksibel dan esensial dalam pengembangan serta audit keamanan platform Android. Memahami protokol transport jaringan dan struktur buffer logging memungkinkan insinyur membangun alur diagnostik otomatis yang efisien dan aman.

Topik Terkait: #ADB Shell

Artikel Terkait

Artikel lain dalam kategori Alat & Dokumentasi ADB

Lihat Semua