DCMRemoteListener
Prerequisites
- Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
- Update Homebrew
brew update
- Uninstall previous
libimobiledevice
versionsbrew uninstall --ignore-dependencies libimobiledevice
- Uninstall previous
usbmuxd
versionsbrew uninstall --ignore-dependencies usbmuxd
- Uninstall previous
libplist
versionsbrew uninstall --ignore-dependencies libplist
- Install latest
usbmuxd
brew install --HEAD usbmuxd
- Install latest
libplist
brew install --HEAD libplist
- Install latest
libimobiledevice
brew install --HEAD libimobiledevice
- Install
ideviceinstaller
brew install ideviceinstaller
- Navigate to the App Store and download/install Apple Configurator 2 (AC2)
- In AC2, click on the
Apple Configurator 2
menu and chooseInstall Automation Tools
- In AC2, click on the
Apple Configurator 2
menu and choosePreferences
>Organization
> click on your org and chooseExport Supervision Identity
in the bottom left - Move the .crt and .der files to the DCMRemoteListener folder and rename them to
org.crt
andorg.der
Installation
- Clone repository
git clone https://github.com/versx/DCMRemoteListener
- Install dependencies
npm install
- Install pm2 (optional)
npm install pm2 -g
- Copy example config file
cp config.example.json config.json
- Fill out
config.json
- Name is to identify the listener uniquely.
- Port is the listening port, defaults to 6542.
- Domain (i.e.
http://10.0.0.2:9991
orhttps://dcm.domain.com
) is the DeviceConfigManager domain that will be sending the reboot request, otherwise set to*
to accept from all hosts.
- Start the bot with
pm2 start listener.js
ornode listener.js
if not using pm2
Config Options
"name" = The name you want to use for this server.
"port" = The inbound TCP port for requests.
"domain" = The domain that is allowed to send requests.
"manual_list" = True/False for creating your own JSON list of devices as device.json. See device.example.json.
"manual_ip" = True/False for adding the IP to the device.json or to allow the script to find IPs.
"use_ios_deploy" = True/False for using ios-deploy instead of cfgutil for querying devices (disables the profile command).
Troubleshooting
If the cfgutil from AC2 does not list any devices when you use the cfgutil list
command, then you may need to upgrade AC2 and reinstall the automation tools.
If the Connection timed out
or Connection refused
errors continuously happen for iOS 14 devices, go into Settings > Pokemon Go (at the bottom) > Toggle Local Network
on. This will allow cURL to connect to the IPA.