Menyiapkan Proxy dengan Android Emulator

Di Android Emulator, Anda dapat menggunakan proxy untuk men-debug traffic aplikasi atau untuk mengakses internet dari balik firewall perusahaan. Emulator menawarkan dua mekanisme proxy yang berbeda untuk mendukung berbagai kasus penggunaan ini: Proxy Sistem Android dan Proxy Emulator.

Memilih Proxy yang Tepat

Sebelum mengonfigurasi proxy, penting untuk memahami dua kasus penggunaan. Proxy Sistem Android digunakan untuk memeriksa traffic aplikasi, sedangkan Proxy Emulator digunakan untuk mengatasi batasan jaringan. Kedua proxy ini bertolak belakang; Anda hanya dapat mengaktifkan salah satunya dalam satu waktu.

Fitur Proxy Sistem Android Proxy Emulator
Kasus Penggunaan Utama Proses Debug Aplikasi Firewall Bypass
Lapisan Operasi Lapisan Jaringan Lapisan Aplikasi
Konfigurasi UI Setelan Wi-Fi Sistem Android UI Kontrol yang Diperluas Emulator atau flag
-http-proxy.
Debug HTTPS Ya - Mengizinkan alat seperti Charles Proxy untuk
mencegat traffic saat sertifikat
diinstal.
Tidak - Membuat tunnel TCP, sehingga mencegah pemeriksaan SSL
.
Menangani Traffic Non-HTTP/HTTPS
Tidak - Terutama hanya menangani traffic HTTP dan
HTTPS.
Ya - Meneruskan semua traffic TCP.

Kasus Penggunaan 1: Proses Debugging Aplikasi dengan Proxy Sistem Android

Untuk men-debug traffic jaringan aplikasi Anda, seperti memeriksa permintaan HTTPS dengan alat seperti Charles Proxy, Anda harus menggunakan Android System Proxy.

Proxy ini beroperasi di lapisan aplikasi dalam Android OS. Hal ini memungkinkan alat proses debug mencegat dan memeriksa traffic, tetapi memerlukan penginstalan sertifikat keamanan yang diperlukan di perangkat yang diemulasi.

Menyiapkan Proxy Sistem Android

Konfigurasi

Anda dapat mengonfigurasi Proxy Sistem Android dengan dua cara:

  1. Konfigurasi Manual: Di emulator, buka Settings > Network & Internet > Wi-Fi, pilih jaringan Anda, lalu masukkan setelan proxy secara manual.
  2. Konfigurasi Otomatis: Anda dapat mengonfigurasi Proxy Sistem Android secara terprogram. Hal ini dilakukan dengan membuat pengujian instrumentasi yang menggunakan framework otomatisasi UI, seperti UI Automator, untuk membuka aplikasi Setelan Android dan menerapkan konfigurasi proxy tanpa intervensi manual.

Kasus Penggunaan 2: Melewati Firewall Perusahaan dengan Proxy Emulator

Di berbagai jaringan perusahaan, koneksi langsung ke internet ditolak oleh administrator jaringan dan harus melewati proxy tertentu. Untuk mengakses resource eksternal dari dalam jaringan yang dibatasi tersebut, Anda harus menggunakan Proxy Emulator.

Mekanisme ini beroperasi di tingkat jaringan yang lebih rendah dan merutekan semua traffic TCP perangkat yang diemulasi melalui proxy yang ditentukan, sehingga ideal untuk traversal firewall. Emulator secara transparan menulis ulang permintaan HTTP dari perangkat virtual sebelum mengirimkannya ke proxy, sehingga permintaan tersebut dapat berfungsi dengan benar.

Konfigurasi

Saat menggunakan emulator dalam Android Studio, Anda dapat mengonfigurasi proxy dengan setelan di Menu Android Studio ( Settings > Appearance & Behavior > System Settings > HTTP Proxy). Anda dapat menemukan detail selengkapnya di Menyiapkan proxy Android Studio dalam dokumentasi Android Studio.

Saat menggunakan emulator sebagai aplikasi mandiri (di luar Android Studio), Anda dapat mengonfigurasi Proxy Emulator menggunakan salah satu metode berikut:

  1. Flag Command Line: Luncurkan emulator dari command line dengan flag -http-proxy <proxy>. Informasi <proxy> dapat ditentukan dalam format http://<machineName>:<port> atau http://<username>:<password>@<machineName>:<port>.

    emulator -http-proxy http://<machineName>:<port>
    

    atau

    emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>
    
  2. Variabel Lingkungan: Tentukan variabel lingkungan http_proxy dengan setelan proxy Anda. Emulator akan memeriksa variabel ini saat memulai dan menggunakan nilainya secara otomatis jika ditentukan.

  3. Extended Controls: Buka Extended controls emulator, lihat Settings > Proxy, lalu masukkan konfigurasi proxy HTTP Anda secara manual. Emulator menyimpan setelan ini untuk perangkat dan memulihkannya saat dimulai ulang.

    Menyiapkan Proxy Emulator

Proxy Emulator beroperasi di lapisan jaringan. Fitur ini membuat tunnel traffic HTTPS melalui TCP, tetapi traffic ini diteruskan tanpa dekripsi, yang mencegah pemeriksaan HTTPS. Proxy Emulator tidak mendukung pengalihan UDP.

Interaksi dengan Android Studio

Android Studio memiliki dialog konfigurasi proxy sendiri untuk mendownload update dan library. Saat Anda meluncurkan emulator dari Android Studio, emulator akan membaca setelan proxy IDE satu kali untuk mengisi konfigurasi Emulator Proxy. Namun, setelan ini tidak memengaruhi Proxy Sistem Android.