HideMyAndroid Headless API

Управляйте HideMyAndroid полностью из ADB или любого инструмента автоматизации — создавайте, настраивайте и активируйте профили, не открывая приложение. Premium, приложение 1.2.8+.

Последнее обновление: June 2026

Требования

Headless API позволяет управлять HideMyAndroid полностью через ADB или любой инструмент автоматизации — без использования интерфейса приложения. Это функция уровня Premium.

  • Аккаунт Premium — Headless API доступен только для Premium-пользователей.
  • Версия приложения 1.2.8 или новее.
  • Root + LSPosed — стандартная конфигурация, необходимая для работы HideMyAndroid. Смотрите руководство по установке.
  • ADB, подключённый к устройству (adb devices должно показывать его в списке).
  • Интернет на устройстве — требуется только при включении прокси (соединение проверяется в реальном времени).

⚠️ Убедитесь, что приложению уже предоставлено разрешение на VPN перед использованием режима headless.

Аутентификация

Откройте Настройки → Разработчику → Headless API в приложении и включите параметр Включить. Ключ будет сгенерирован автоматически — нажмите Скопировать. Каждый запрос передаёт этот ключ в параметре token.

Держите ключ в тайне — любой, у кого есть ключ и доступ через ADB, сможет управлять вашими профилями. Повторная генерация создаёт новый ключ (старый перестаёт работать); выход из аккаунта удаляет его.

В данном справочнике замените <your_access_token> своим ключом, а <profile_id> — идентификатором, возвращённым командой profile.create.

Отправка запросов

Два транспорта — выбор зависит от того, содержит ли значение двоеточие :

Транспорт Использовать для Команда
content call Чтение и значения без : (name, gmails, имена пакетов)adb shell content call
am broadcast JSON-объекты (hookFlags, proxy, deviceMock, sim) — они содержат :adb shell am broadcast

content call разбивает каждый параметр --extra по двоеточию, поэтому не может передавать JSON — именно поэтому JSON-значения отправляются через broadcast.

Ответы. Успех обозначается ok=true (content call) или result=0 (broadcast); при ошибке добавляются поля error_code и error_message. Смотрите раздел Коды ошибок. Каждый метод также принимает параметр token. Нажмите на любую операцию ниже, чтобы раскрыть её параметры, запрос и ответ.

Статус

READ status Проверить готовность API 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}]

Поля: premium, featureEnabled, freshnessOk (лицензия недавно подтверждена онлайн), activeProfileId (или null), version.

Профили

READ profile.list Получить список всех профилей 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 Получить полные данные одного профиля content call

Parameters

Name Type Required Description
id string required Идентификатор профиля.

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 Создать профиль (возвращает его идентификатор) content call

Parameters

Name Type Required Description
name string required Название профиля.

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}]

Скопируйте этот идентификатор как <profile_id> для последующих вызовов.

UPDATE profile.update Изменить настройки профиля content call / broadcast

Parameters

Name Type Required Description
id string required Идентификатор профиля.
name string optional Новое название профиля (content call).
gmails string[] optional Виртуальные аккаунты @gmail.com (content call).
hookFlags object optional Переключатели спуфинга вкл/выкл (broadcast).
proxy object optional Конфигурация прокси (broadcast).
deviceMock object optional Подмена модели устройства (broadcast).
sim object optional Подмена SIM / оператора (broadcast).

Request

content call — обычные значения

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 — 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

Оба варианта возвращают полный обновлённый профиль. Все JSON-поля описаны в разделе «Конфигурация».

⚠️ hookFlags заменяет весь набор — любой флаг, который вы не укажете, вернётся к значению по умолчанию (ВКЛ). Чтобы изменить несколько флагов и сохранить остальные, сначала выполните profile.get, отредактируйте полную карту, затем отправьте её обратно целиком.

DELETE profile.delete Удалить профиль без возможности восстановления content call

Parameters

Name Type Required Description
id string required Идентификатор профиля.

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}]

Активация

Профиль выполняет спуфинг только в активном состоянии. При активации целевые приложения принудительно останавливаются, чтобы перезапуститься с новой идентичностью.

ACTION profile.setActive Активировать профиль — начать спуфинг content call

Parameters

Name Type Required Description
id string required Идентификатор профиля.

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 Деактивировать активный профиль — остановить спуфинг 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}]

Идентификатор не нужен — деактивируется любой активный в данный момент профиль.

Целевые приложения

Целевые приложения — это приложения, для которых профиль выполняет спуфинг.

READ profile.getApps Получить список целевых приложений профиля content call

Parameters

Name Type Required Description
id string required Идентификатор профиля.

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 Добавить целевое приложение в профиль content call

Parameters

Name Type Required Description
id string required Идентификатор профиля.
packageName string required Имя пакета приложения.

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}]

⚠️ Повторное добавление того же пакета возвращает BAD_REQUEST.

DELETE profile.removeApp Удалить целевое приложение из профиля content call

Parameters

Name Type Required Description
id string required Идентификатор профиля.
packageName string required Приложение для удаления.

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}]

Конфигурация

Это значения, которые передаются через profile.update. Значения по умолчанию при создании профиля:

Настройка По умолчанию Чтобы использовать…
hookFlags (all 20) ✅ ON Уже включено. Отправьте false только для тех флагов, которые нужно отключить.
proxy ❌ OFF Включите "enabled":true
deviceMock ❌ OFF Включите "enabled":true
sim ❌ OFF Включите "enabled":true
gmails empty Отправьте адреса (виртуальные аккаунты включены по умолчанию)

⚠️ Конфигурация с enabled:false сохраняется, но не применяется — значения сохранены, чтобы вы могли включить их позже, но спуфинг не выполняется до тех пор, пока не установлено enabled:true. Геоспуфинг (hook_geo_*) требует прокси с enabled:true, прошедшего проверку в реальном времени.

hookFlags

По умолчанию: все ВКЛ. Карта вида "flag": true|false. При обновлении весь набор заменяется — всё, что не указано, возвращается к значению ВКЛ.

Флаг Что делает
hook_hide_dev_opts Скрывает параметры разработчика
hook_hide_vpn Скрывает VPN
hook_hide_airplane_mode Скрывает режим полёта
hook_hide_proxy Скрывает системную настройку прокси
hook_hide_root Скрывает root
hook_hide_lsposed Скрывает LSPosed
hook_spoof_installer Подменяет источник установки
hook_package_info Подменяет информацию о пакете / подписи
hook_lan_scan_block Блокирует сканирование локальной сети
hook_identifiers_partly Подменяет Android ID (базовый уровень)
hook_identifiers_fully Подменяет все идентификаторы (IMEI, серийный номер, AAID, MediaDRM, AppSetID, boot_id…)
hook_wifi Подменяет имя/адрес Wi-Fi (SSID/BSSID)
hook_nearby_wifi Подменяет результаты сканирования ближайших сетей Wi-Fi
hook_nearby_bluetooth Подменяет список ближайших устройств Bluetooth
hook_realistic_sensor Использует реалистичные данные сенсоров
hook_sensor_accelerometer Подменяет акселерометр (требует hook_realistic_sensor)
hook_virtual_accounts Включает виртуальные аккаунты Google (gmails требует, чтобы это было ВКЛ)
hook_geo_gps Подменяет GPS-координаты (требует прокси с геолокацией)
hook_geo_locale Подменяет язык/регион (требует прокси с геолокацией)
hook_geo_timezone Подменяет часовой пояс (требует прокси с геолокацией)

proxy

По умолчанию: ВЫКЛ. При enabled:true приложение устанавливает реальное соединение через прокси, получает его геолокацию и заполняет поля страны/широты/долготы/часового пояса для флагов hook_geo_*. Проверка в реальном времени занимает до ~8 с; прокси, не прошедший проверку, возвращает PROXY_INVALID и не сохраняется.

Поле Тип По умолчанию Значение / ограничения
host string "" IP-адрес или имя хоста прокси
port int 0 Порт — допустимо 165535
protocol string HTTP HTTP, SOCKS4 или SOCKS5
username string "" Аутентификация (необязательно)
password string "" Аутентификация (необязательно)
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

По умолчанию: ВЫКЛ. Имитирует другую модель устройства. Установите "enabled":true и укажите любые из перечисленных полей — все строки необязательны (по умолчанию пустые), каждое соответствует свойству Android Build:

Поле Соответствует Пример
manufacturer Build.MANUFACTURER Samsung
brand Build.BRAND samsung
model Build.MODEL SM-S918B
device Build.DEVICE (кодовое имя) 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 Отображаемое имя устройства 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

По умолчанию: ВЫКЛ. Подменяет SIM-карту/оператора. Установите "enabled":true и укажите до двух карт в поле simCards. Каждая карта:

Поле Тип По умолчанию Значение / ограничения
slotIndex int 0 Слот SIM — только 0 или 1
carrierName string "" Название оператора (например AT&T)
countryIso string "" Код страны ISO (например us) — приводится к нижнему регистру автоматически
mcc string "" Код мобильной страны — MCC (например 310)
mnc string "" Код мобильной сети — MNC (например 410)
operatorCode string "" Код оператора = mcc + mnc (например 310410)
phoneNumber string "" Номер телефона
iccid string "" Серийный номер SIM (ICCID)
imsi string "" IMSI
networkType string "" Тип сети — только: LTE, NR 5G, WCDMA, GSM

networkType принимает только следующие значения:

Значение Поколение сети
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

По умолчанию: пусто. Список виртуальных аккаунтов Google — принимаются только адреса @gmail.com. Список полностью заменяет предыдущий; [] очищает его. Внутри нет символа :, поэтому подходит content call:

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]"]'

Полный пример

Полная настройка с нуля:

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>

Коды ошибок

При ошибке возвращается ok=false с одним из следующих значений error_code (broadcast возвращает result=1):

Код Значение Решение
UNAUTHORIZED Токен отсутствует или неверен Используйте текущий ключ; при необходимости перегенерируйте его
FEATURE_DISABLED Headless API отключён Включите в Настройки → Разработчику → Headless API
BAD_REQUEST Неверный параметр или JSON Проверьте обязательные поля, корректность JSON, только gmail-адреса, отсутствие дублирующихся приложений
NOT_FOUND Профиль с таким идентификатором не существует Проверьте идентификатор с помощью profile.list
PROXY_INVALID Прокси не прошёл проверку в реальном времени Проверьте хост/порт/протокол/аутентификацию и наличие интернета на устройстве; данные не сохранены
LICENSE_EXPIRED Срок действия Premium истёк Обновите подписку Premium
LICENSE_STALE Лицензия давно не проверялась онлайн Откройте приложение один раз для повторной проверки (не реже одного раза в 24 ч при непрерывном использовании)
INTERNAL Внутренняя ошибка (I/O или root) Повторите попытку; убедитесь, что root/LSPosed работают корректно

Советы & устранение неполадок

  • Broadcast не даёт результата? Убедитесь, что вы включили параметр -p com.wowsoftware.hidemyandroid — Android блокирует broadcast без него.
  • Значение обрезается после символа :? В этом значении есть двоеточие, поэтому content call обрезает его. Отправьте его через broadcast HEADLESS_UPDATE.
  • JSON broadcast не применяется (часто на Windows)? При передаче через оболочку рабочего стола в оболочку устройства кавычки в JSON команды am broadcast (hookFlags, proxy, deviceMock, sim) легко теряются, и am неправильно интерпретирует значение (оно может отображаться как URI вида dat=…), и ничего не меняется. Надёжное решение — не передавать JSON через командную строку: поместите весь рабочий процесс в файл .sh (одинарные кавычки сохраняют JSON нетронутым), затем загрузите его на устройство и запустите там. Скрипт выполняется на устройстве, поэтому он может захватить идентификатор нового профиля и использовать его далее:
    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
    затем загрузите его на устройство и запустите:
    bash
    adb push setup.sh /data/local/tmp/setup.sh
    adb shell sh /data/local/tmp/setup.sh
    Обычные команды content call (без JSON) можно вводить напрямую без скрипта. В Git Bash добавляйте префикс MSYS_NO_PATHCONV=1 к строкам с adb, чтобы путь на устройстве не преобразовывался.
  • Изменения не применились? Целевое приложение должно перезапуститься — активация профиля делает это автоматически.
  • PROXY_INVALID для надёжного прокси? Устройству нужен интернет для проверки, ограниченной ~8 с, поэтому медленный прокси может не успеть ответить.
Скачать