HideMyAndroid Headless API

Kontrol HideMyAndroid sepenuhnya dari ADB atau alat otomatisasi apa pun — buat, konfigurasi, dan aktifkan profil tanpa membuka aplikasi. Premium, aplikasi 1.2.8+.

Terakhir diperbarui: June 2026

Persyaratan

Headless API memungkinkan Anda mengontrol HideMyAndroid sepenuhnya melalui ADB atau alat otomasi apa pun — tanpa memerlukan UI aplikasi. Ini adalah fitur Premium.

  • Akun Premium — Headless API hanya tersedia untuk pengguna Premium.
  • Versi aplikasi 1.2.8 atau lebih baru.
  • Root + LSPosed — konfigurasi yang sama yang dibutuhkan HideMyAndroid. Lihat panduan instalasi.
  • ADB yang terhubung ke perangkat Anda (adb devices akan menampilkannya).
  • Internet pada perangkat — hanya diperlukan saat Anda mengaktifkan proxy (diuji secara langsung).

⚠️ Pastikan aplikasi telah diberikan izin VPN sebelum menggunakan mode headless.

Autentikasi

Buka Pengaturan → Developer → Headless API di aplikasi dan aktifkan Enable. Kunci akan dibuat secara otomatis — ketuk Copy. Setiap permintaan mengirimkan kunci ini sebagai parameter token.

Jaga kerahasiaannya — siapa pun yang memiliki kunci dan akses ADB dapat mengontrol profil Anda. Regenerate akan menerbitkan kunci baru (kunci lama tidak akan berfungsi lagi); keluar dari aplikasi akan menghapusnya.

Sepanjang referensi ini, ganti <your_access_token> dengan kunci Anda dan <profile_id> dengan id yang dikembalikan oleh profile.create.

Membuat permintaan

Dua transport, dipilih berdasarkan apakah nilai mengandung tanda titik dua :

Transport Digunakan untuk Perintah
content call Pembacaan, dan nilai tanpa : (name, gmails, nama paket)adb shell content call
am broadcast Objek JSON (hookFlags, proxy, deviceMock, sim) — mengandung :adb shell am broadcast

content call memisahkan setiap --extra pada tanda titik dua, sehingga tidak dapat membawa JSON — itulah mengapa nilai JSON dikirim melalui broadcast.

Respons. Sukses ditandai dengan ok=true (content call) atau result=0 (broadcast); kegagalan menambahkan error_code dan error_message. Lihat Kode error. Setiap metode juga menerima token. Klik operasi mana pun di bawah untuk memperluas parameter, permintaan, dan responnya.

Status

READ status Periksa apakah API siap digunakan content call

Parameters

No parameters.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method status --extra token:s:<your_access_token>

Response ok=true

Bundle[{data={"premium":true,"featureEnabled":true,"freshnessOk":true,"activeProfileId":"a1b2c3d4-...","version":"1.2.8"}, ok=true}]

Kolom: premium, featureEnabled, freshnessOk (lisensi baru-baru ini dikonfirmasi secara online), activeProfileId (atau null), version.

Profil

READ profile.list Tampilkan semua profil content call

Parameters

No parameters.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.list --extra token:s:<your_access_token>

Response ok=true

Bundle[{data=[{"id":"a1b2...","name":"Demo","isActive":true,"createdAt":1717000000000,"updatedAt":1717000500000}], ok=true}]
READ profile.get Baca satu profil secara lengkap content call

Parameters

Name Type Required Description
id string required ID profil.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.get --extra token:s:<your_access_token> --extra id:s:<profile_id>

Response ok=true

Bundle[{data={"id":"a1b2...","name":"Demo","isActive":false,"hookFlags":{"hook_wifi":true,...},"proxy":{"enabled":false,...},"deviceMock":{"enabled":false,...},"sim":{"enabled":false,"simCards":[]},"gmails":[],"targetApps":["com.whatsapp"]}, ok=true}]
CREATE profile.create Buat profil (mengembalikan id-nya) content call

Parameters

Name Type Required Description
name string required Label untuk profil.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.create --extra token:s:<your_access_token> --extra name:s:Demo

Response ok=true

Bundle[{data={"id":"a1b2c3d4-..."}, ok=true}]

Salin id ini sebagai <profile_id> untuk panggilan berikutnya.

UPDATE profile.update Ubah pengaturan profil content call / broadcast

Parameters

Name Type Required Description
id string required ID profil.
name string optional Label profil baru (content call).
gmails string[] optional Akun @gmail.com virtual (content call).
hookFlags object optional Sakelar spoofing aktif/nonaktif (broadcast).
proxy object optional Konfigurasi proxy (broadcast).
deviceMock object optional Spoofing model perangkat (broadcast).
sim object optional Spoofing SIM / operator (broadcast).

Request

content call — nilai biasa

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.update --extra token:s:<your_access_token> --extra id:s:<profile_id> --extra name:s:"My Profile"

broadcast — konfigurasi JSON

bash
adb shell am broadcast -a com.wowsoftware.hidemyandroid.HEADLESS_UPDATE -p com.wowsoftware.hidemyandroid -e token <your_access_token> -e id <profile_id> -e hookFlags '{"hook_wifi":false,"hook_nearby_bluetooth":false}'

Response ok=true

Kedua cara mengembalikan profil yang telah diperbarui secara lengkap. Lihat Konfigurasi untuk setiap kolom JSON.

⚠️ hookFlags menggantikan seluruh set — flag yang Anda hilangkan akan kembali ke nilai defaultnya (ON). Untuk mengubah beberapa flag dan mempertahankan yang lain, jalankan profile.get terlebih dahulu, edit peta lengkap, lalu kirim semuanya kembali.

DELETE profile.delete Hapus profil secara permanen content call

Parameters

Name Type Required Description
id string required ID profil.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.delete --extra token:s:<your_access_token> --extra id:s:<profile_id>

Response ok=true

Bundle[{data={}, ok=true}]

Aktivasi

Profil hanya melakukan spoofing saat aktif. Mengaktifkan profil akan memaksa menghentikan aplikasi target agar mereka restart dengan identitas baru.

ACTION profile.setActive Aktifkan profil — mulai spoofing content call

Parameters

Name Type Required Description
id string required ID profil.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.setActive --extra token:s:<your_access_token> --extra id:s:<profile_id>

Response ok=true

Bundle[{data={"id":"a1b2...","isActive":true}, ok=true}]
ACTION profile.deactivate Nonaktifkan profil aktif — hentikan spoofing content call

Parameters

No parameters.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.deactivate --extra token:s:<your_access_token>

Response ok=true

Bundle[{data={}, ok=true}]

Tidak perlu id — ini akan menonaktifkan profil mana pun yang sedang aktif.

Aplikasi target

Aplikasi target adalah aplikasi yang di-spoof oleh suatu profil.

READ profile.getApps Tampilkan aplikasi target dari suatu profil content call

Parameters

Name Type Required Description
id string required ID profil.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.getApps --extra token:s:<your_access_token> --extra id:s:<profile_id>

Response ok=true

Bundle[{data=[{"packageName":"com.whatsapp"}], ok=true}]
CREATE profile.addApp Tambahkan aplikasi target ke profil content call

Parameters

Name Type Required Description
id string required ID profil.
packageName string required Nama paket aplikasi.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.addApp --extra token:s:<your_access_token> --extra id:s:<profile_id> --extra packageName:s:com.whatsapp

Response ok=true · updated app list

Bundle[{data=[{"packageName":"com.whatsapp"}], ok=true}]

⚠️ Menambahkan paket yang sama dua kali akan mengembalikan BAD_REQUEST.

DELETE profile.removeApp Hapus aplikasi target dari profil content call

Parameters

Name Type Required Description
id string required ID profil.
packageName string required Aplikasi yang akan dihapus.

Request

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.removeApp --extra token:s:<your_access_token> --extra id:s:<profile_id> --extra packageName:s:com.whatsapp

Response ok=true · updated app list

Bundle[{data=[], ok=true}]

Konfigurasi

Ini adalah nilai yang Anda kirim dengan profile.update. Default saat profil dibuat:

Pengaturan Default Untuk menggunakannya…
hookFlags (all 20) ✅ ON Sudah aktif. Kirim false hanya untuk yang ingin dinonaktifkan.
proxy ❌ OFF Sertakan "enabled":true
deviceMock ❌ OFF Sertakan "enabled":true
sim ❌ OFF Sertakan "enabled":true
gmails empty Kirim alamat-alamatnya (akun virtual aktif secara default)

⚠️ Konfigurasi dengan enabled:false disimpan tetapi tidak aktif — nilai disimpan agar Anda dapat mengaktifkannya nanti, tetapi tidak ada spoofing hingga enabled:true. Spoofing geo (hook_geo_*) memerlukan proxy yang enabled:true dan lulus uji langsung.

hookFlags

Default: semua ON. Peta berisi "flag": true|false. Pembaruan menggantikan seluruh peta — apa pun yang Anda hilangkan akan kembali ke ON.

Flag Fungsinya
hook_hide_dev_opts Sembunyikan Opsi Developer
hook_hide_vpn Sembunyikan VPN
hook_hide_airplane_mode Sembunyikan mode pesawat
hook_hide_proxy Sembunyikan pengaturan proxy sistem
hook_hide_root Sembunyikan root
hook_hide_lsposed Sembunyikan LSPosed
hook_spoof_installer Palsukan sumber instalasi
hook_package_info Palsukan info paket / tanda tangan
hook_lan_scan_block Blokir pemindaian LAN
hook_identifiers_partly Palsukan Android ID (dasar)
hook_identifiers_fully Palsukan semua ID (IMEI, serial, AAID, MediaDRM, AppSetID, boot_id…)
hook_wifi Palsukan nama/alamat Wi-Fi (SSID/BSSID)
hook_nearby_wifi Palsukan hasil pemindaian Wi-Fi terdekat
hook_nearby_bluetooth Palsukan perangkat Bluetooth terdekat
hook_realistic_sensor Gunakan data sensor yang realistis
hook_sensor_accelerometer Palsukan akselerometer (memerlukan hook_realistic_sensor)
hook_virtual_accounts Aktifkan akun Google virtual (gmails memerlukan ini ON)
hook_geo_gps Palsukan lokasi GPS (memerlukan proxy dengan geo)
hook_geo_locale Palsukan bahasa/wilayah (memerlukan proxy dengan geo)
hook_geo_timezone Palsukan zona waktu (memerlukan proxy dengan geo)

proxy

Default: OFF. Dengan enabled:true, aplikasi terhubung melaluinya secara nyata, membaca lokasinya, dan mengisi negara/lat/long/zona waktu untuk flag hook_geo_*. Uji langsung memakan waktu hingga ~8 detik; proxy yang gagal mengembalikan PROXY_INVALID dan tidak disimpan.

Kolom Tipe Default Arti / batasan
host string "" IP / hostname proxy
port int 0 Port — valid 165535
protocol string HTTP HTTP, SOCKS4, atau SOCKS5
username string "" Autentikasi (opsional)
password string "" Autentikasi (opsional)
bash
adb shell am broadcast -a com.wowsoftware.hidemyandroid.HEADLESS_UPDATE -p com.wowsoftware.hidemyandroid -e token <your_access_token> -e id <profile_id> -e proxy '{"enabled":true,"host":"10.0.0.1","port":1080,"protocol":"SOCKS5"}'

deviceMock

Default: OFF. Berpura-pura perangkat adalah model yang berbeda. Atur "enabled":true beserta salah satu kolom berikut — semua string opsional (default kosong), masing-masing memetakan ke properti Build Android:

Kolom Dipetakan ke Contoh
manufacturer Build.MANUFACTURER Samsung
brand Build.BRAND samsung
model Build.MODEL SM-S918B
device Build.DEVICE (nama kode) dm3q
product Build.PRODUCT dm3qxxx
board Build.BOARD kalama
hardware Build.HARDWARE qcom
buildId Build.ID UP1A.231005.007
buildIncremental Build.VERSION.INCREMENTAL S918BXXU3CWK9
buildType Build.TYPE user
buildTags Build.TAGS release-keys
buildFingerprint Build.FINGERPRINT samsung/dm3qxxx/dm3q:14/UP1A.231005.007/S918BXXU3CWK9:user/release-keys
deviceName Nama perangkat yang ditampilkan Galaxy S23 Ultra
bash
adb shell am broadcast -a com.wowsoftware.hidemyandroid.HEADLESS_UPDATE -p com.wowsoftware.hidemyandroid -e token <your_access_token> -e id <profile_id> -e deviceMock '{"enabled":true,"manufacturer":"Samsung","brand":"samsung","model":"SM-S918B","device":"dm3q","product":"dm3qxxx","board":"kalama","hardware":"qcom","buildId":"UP1A.231005.007","buildIncremental":"S918BXXU3CWK9","buildType":"user","buildTags":"release-keys","buildFingerprint":"samsung/dm3qxxx/dm3q:14/UP1A.231005.007/S918BXXU3CWK9:user/release-keys","deviceName":"Galaxy S23 Ultra"}'

sim

Default: OFF. Memalsukan SIM/operator. Atur "enabled":true dan sediakan hingga dua kartu di simCards. Setiap kartu:

Kolom Tipe Default Arti / batasan
slotIndex int 0 Slot SIM — hanya 0 atau 1
carrierName string "" Nama operator (mis. AT&T)
countryIso string "" Kode negara ISO (mis. us) — diubah ke huruf kecil secara otomatis
mcc string "" Kode Negara Seluler / Mobile Country Code (mis. 310)
mnc string "" Kode Jaringan Seluler / Mobile Network Code (mis. 410)
operatorCode string "" Kode operator = mcc + mnc (mis. 310410)
phoneNumber string "" Nomor telepon
iccid string "" Nomor seri SIM (ICCID)
imsi string "" IMSI
networkType string "" Tipe jaringan — hanya: LTE, NR 5G, WCDMA, GSM

networkType hanya menerima nilai-nilai berikut:

Nilai Tingkatan jaringan
NR 5G 5G
LTE 4G
WCDMA 3G
GSM 2G
bash
adb shell am broadcast -a com.wowsoftware.hidemyandroid.HEADLESS_UPDATE -p com.wowsoftware.hidemyandroid -e token <your_access_token> -e id <profile_id> -e sim '{"enabled":true,"simCards":[{"slotIndex":0,"carrierName":"AT&T","countryIso":"us","mcc":"310","mnc":"410","operatorCode":"310410","networkType":"LTE"},{"slotIndex":1,"carrierName":"T-Mobile","countryIso":"us","mcc":"310","mnc":"260","operatorCode":"310260","networkType":"NR 5G"}]}'

gmails

Default: kosong. Daftar akun Google virtual — hanya alamat @gmail.com yang diterima. Daftar baru menggantikan yang sebelumnya; [] menghapusnya. Tidak ada : di dalamnya, sehingga content call dapat digunakan:

bash
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.update --extra token:s:<your_access_token> --extra id:s:<profile_id> --extra 'gmails:s:["[email protected]","[email protected]"]'

Contoh lengkap

Pengaturan lengkap dari awal:

bash
# 1. create a profile — copy the returned id into <profile_id> below
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.create --extra token:s:<your_access_token> --extra name:s:Demo

# 2. add a target app
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.addApp --extra token:s:<your_access_token> --extra id:s:<profile_id> --extra packageName:s:com.whatsapp
# 3. add the virtual Gmail accounts
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.update --extra token:s:<your_access_token> --extra id:s:<profile_id> --extra 'gmails:s:["[email protected]","[email protected]"]'

# 4. enable + set the device mock
adb shell am broadcast -a com.wowsoftware.hidemyandroid.HEADLESS_UPDATE -p com.wowsoftware.hidemyandroid -e token <your_access_token> -e id <profile_id> -e deviceMock '{"enabled":true,"manufacturer":"Samsung","brand":"samsung","model":"SM-S918B","device":"dm3q","product":"dm3qxxx","board":"kalama","hardware":"qcom","buildId":"UP1A.231005.007","buildIncremental":"S918BXXU3CWK9","buildType":"user","buildTags":"release-keys","buildFingerprint":"samsung/dm3qxxx/dm3q:14/UP1A.231005.007/S918BXXU3CWK9:user/release-keys","deviceName":"Galaxy S23 Ultra"}'

# 5. enable + set the SIM mock (two cards, full fields)
adb shell am broadcast -a com.wowsoftware.hidemyandroid.HEADLESS_UPDATE -p com.wowsoftware.hidemyandroid -e token <your_access_token> -e id <profile_id> -e sim '{"enabled":true,"simCards":[{"slotIndex":0,"carrierName":"AT&T","countryIso":"us","mcc":"310","mnc":"410","operatorCode":"310410","networkType":"LTE","phoneNumber":"+12025550123","iccid":"8901410123456789012","imsi":"310410123456789"},{"slotIndex":1,"carrierName":"T-Mobile","countryIso":"us","mcc":"310","mnc":"260","operatorCode":"310260","networkType":"NR 5G","phoneNumber":"+12025550456","iccid":"8901260987654321098","imsi":"310260987654321"}]}'

# 6. enable + set the proxy (tested live, ~8s)
adb shell am broadcast -a com.wowsoftware.hidemyandroid.HEADLESS_UPDATE -p com.wowsoftware.hidemyandroid -e token <your_access_token> -e id <profile_id> -e proxy '{"enabled":true,"host":"10.0.0.1","port":1080,"protocol":"SOCKS5"}'

# 7. activate (restarts the target app)
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.setActive --extra token:s:<your_access_token> --extra id:s:<profile_id>

# 8. verify
adb shell content call --uri content://com.wowsoftware.hidemyandroid.headless --method profile.get --extra token:s:<your_access_token> --extra id:s:<profile_id>

Kode error

Saat gagal, Anda akan mendapatkan ok=false dengan salah satu nilai error_code berikut (broadcast mengembalikan result=1):

Kode Arti Solusi
UNAUTHORIZED Token hilang atau salah Gunakan kunci Anda saat ini; regenerate jika tidak yakin
FEATURE_DISABLED Headless API dinonaktifkan Aktifkan di Pengaturan → Developer → Headless API
BAD_REQUEST Parameter atau JSON tidak valid Periksa kolom yang diperlukan, JSON yang valid, hanya gmail, tidak ada aplikasi duplikat
NOT_FOUND ID profil tidak ditemukan Konfirmasi id dengan profile.list
PROXY_INVALID Proxy gagal dalam uji langsung Periksa host/port/protokol/autentikasi dan koneksi internet perangkat; tidak disimpan
LICENSE_EXPIRED Premium kedaluwarsa Perbarui Premium
LICENSE_STALE Lisensi belum diperiksa secara online baru-baru ini Buka aplikasi sekali untuk memvalidasi ulang (setidaknya setiap 24 jam untuk penggunaan terus-menerus)
INTERNAL Error internal (I/O atau root) Coba lagi; pastikan root/LSPosed berfungsi dengan baik

Tips & pemecahan masalah

  • Broadcast tidak melakukan apa pun? Pastikan Anda menyertakan -p com.wowsoftware.hidemyandroid — Android memblokir broadcast tanpanya.
  • Nilai terpotong setelah :? Nilai tersebut mengandung tanda titik dua, sehingga content call memotongnya. Kirim melalui broadcast HEADLESS_UPDATE.
  • Broadcast JSON tidak diterapkan (sering terjadi di Windows)? Di shell desktop dan shell perangkat, tanda kutip dalam JSON am broadcast (hookFlags, proxy, deviceMock, sim) mudah terhapus, sehingga am salah membaca nilai tersebut (mungkin terlihat sebagai URI data dat=…) dan tidak ada yang berubah. Solusi yang andal adalah menjaga JSON di luar baris perintah — taruh seluruh alur kerja dalam file .sh (tanda kutip tunggal menjaga setiap JSON tetap utuh), lalu push dan jalankan di perangkat. Skrip berjalan di perangkat, sehingga dapat menangkap id profil baru dan menggunakannya kembali:
    bash
    # setup.sh — the full example as one runnable script (runs on the device)
    URI=content://com.wowsoftware.hidemyandroid.headless
    PKG=com.wowsoftware.hidemyandroid
    K=<your_access_token>
    
    # 1. create a profile and capture its id
    ID=$(content call --uri $URI --method profile.create --extra token:s:$K --extra name:s:Demo | grep -o '"id":"[^"]*"' | head -n1 | sed 's/.*"id":"//;s/"//')
    echo "profile id: $ID"
    
    # 2. add a target app
    content call --uri $URI --method profile.addApp --extra token:s:$K --extra id:s:$ID --extra packageName:s:com.facebook.katana
    
    # 3. add the virtual Gmail accounts
    content call --uri $URI --method profile.update --extra token:s:$K --extra id:s:$ID --extra 'gmails:s:["[email protected]","[email protected]"]'
    
    # 4. enable + set the device mock
    am broadcast -a $PKG.HEADLESS_UPDATE -p $PKG -e token $K -e id $ID -e deviceMock '{"enabled":true,"manufacturer":"Samsung","brand":"samsung","model":"SM-S918B","device":"dm3q","product":"dm3qxxx","board":"kalama","hardware":"qcom","buildId":"UP1A.231005.007","buildIncremental":"S918BXXU3CWK9","buildType":"user","buildTags":"release-keys","buildFingerprint":"samsung/dm3qxxx/dm3q:14/UP1A.231005.007/S918BXXU3CWK9:user/release-keys","deviceName":"Galaxy S23 Ultra"}'
    
    # 5. enable + set the SIM mock (two cards)
    am broadcast -a $PKG.HEADLESS_UPDATE -p $PKG -e token $K -e id $ID -e sim '{"enabled":true,"simCards":[{"slotIndex":0,"carrierName":"AT&T","countryIso":"us","mcc":"310","mnc":"410","operatorCode":"310410","networkType":"LTE","phoneNumber":"+12025550123","iccid":"8901410123456789012","imsi":"310410123456789"},{"slotIndex":1,"carrierName":"T-Mobile","countryIso":"us","mcc":"310","mnc":"260","operatorCode":"310260","networkType":"NR 5G","phoneNumber":"+12025550456","iccid":"8901260987654321098","imsi":"310260987654321"}]}'
    
    # 6. enable + set the proxy (tested live, ~8s)
    am broadcast -a $PKG.HEADLESS_UPDATE -p $PKG -e token $K -e id $ID -e proxy '{"enabled":true,"host":"10.0.0.1","port":1080,"protocol":"SOCKS5"}'
    
    # 7. activate (restarts the target app)
    content call --uri $URI --method profile.setActive --extra token:s:$K --extra id:s:$ID
    
    # 8. verify
    content call --uri $URI --method profile.get --extra token:s:$K --extra id:s:$ID
    kemudian push ke perangkat dan jalankan:
    bash
    adb push setup.sh /data/local/tmp/setup.sh
    adb shell sh /data/local/tmp/setup.sh
    Perintah content call biasa (tanpa JSON) dapat diketikkan langsung tanpa skrip. Di Git Bash, tambahkan awalan MSYS_NO_PATHCONV=1 pada baris adb agar path di perangkat tidak ditulis ulang.
  • Perubahan tidak muncul? Aplikasi target harus restart — mengaktifkan profil akan melakukan ini secara otomatis.
  • PROXY_INVALID untuk proxy yang Anda percaya? Perangkat memerlukan internet untuk pengujian, dibatasi ~8 detik, sehingga proxy yang lambat dapat timeout.
Unduh