Developer Image
Overview
HTTP OpenAPI for Developer Disk Image (DDI) operations. Matches script helpers utils · Developer Image (mountDevImage / unmountDevImage / checkDevImage).
After a device reboot the image usually unmounts and must be loaded again. If USB HID sessionStart remounts a newer image and automation then fails, unmount then mount before restarting automation. See USB HID.
Mount developer image
POST /openapi/mountDevImage
{ "deviceId": "6a290cdc0b6db0565955355b157acc090e33f76e"}Examples
import requests
body = {"deviceId": "6a290cdc0b6db0565955355b157acc090e33f76e"}r = requests.post("http://127.0.0.1:8019/openapi/mountDevImage", json=body, timeout=180)print(r.json())const body = { deviceId: "6a290cdc0b6db0565955355b157acc090e33f76e" };const res = await fetch("http://127.0.0.1:8019/openapi/mountDevImage", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body),});console.log(await res.json());curl -s -X POST "http://127.0.0.1:8019/openapi/mountDevImage" \ -H "Content-Type: application/json" \ -d '{"deviceId":"6a290cdc0b6db0565955355b157acc090e33f76e"}'using System.Text;using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(180) };var json = "{\"deviceId\":\"6a290cdc0b6db0565955355b157acc090e33f76e\"}";using var content = new StringContent(json, Encoding.UTF8, "application/json");using var res = await http.PostAsync("http://127.0.0.1:8019/openapi/mountDevImage", content);Console.WriteLine(await res.Content.ReadAsStringAsync());Response
{ "code": 0, "msg": "", "data": true}Unmount developer image
POST /openapi/unmountDevImage
{ "deviceId": "6a290cdc0b6db0565955355b157acc090e33f76e"}Examples
import requests
body = {"deviceId": "6a290cdc0b6db0565955355b157acc090e33f76e"}r = requests.post("http://127.0.0.1:8019/openapi/unmountDevImage", json=body, timeout=180)print(r.json())const body = { deviceId: "6a290cdc0b6db0565955355b157acc090e33f76e" };const res = await fetch("http://127.0.0.1:8019/openapi/unmountDevImage", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body),});console.log(await res.json());curl -s -X POST "http://127.0.0.1:8019/openapi/unmountDevImage" \ -H "Content-Type: application/json" \ -d '{"deviceId":"6a290cdc0b6db0565955355b157acc090e33f76e"}'using System.Text;using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(180) };var json = "{\"deviceId\":\"6a290cdc0b6db0565955355b157acc090e33f76e\"}";using var content = new StringContent(json, Encoding.UTF8, "application/json");using var res = await http.PostAsync("http://127.0.0.1:8019/openapi/unmountDevImage", content);Console.WriteLine(await res.Content.ReadAsStringAsync());Response
{ "code": 0, "msg": "", "data": true}Check mount status
POST /openapi/checkDevImage
Query only — does not auto-mount.
{ "deviceId": "6a290cdc0b6db0565955355b157acc090e33f76e"}Examples
import requests
body = {"deviceId": "6a290cdc0b6db0565955355b157acc090e33f76e"}r = requests.post("http://127.0.0.1:8019/openapi/checkDevImage", json=body, timeout=60)print(r.json())const body = { deviceId: "6a290cdc0b6db0565955355b157acc090e33f76e" };const res = await fetch("http://127.0.0.1:8019/openapi/checkDevImage", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body),});console.log(await res.json());curl -s -X POST "http://127.0.0.1:8019/openapi/checkDevImage" \ -H "Content-Type: application/json" \ -d '{"deviceId":"6a290cdc0b6db0565955355b157acc090e33f76e"}'using System.Text;using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(60) };var json = "{\"deviceId\":\"6a290cdc0b6db0565955355b157acc090e33f76e\"}";using var content = new StringContent(json, Encoding.UTF8, "application/json");using var res = await http.PostAsync("http://127.0.0.1:8019/openapi/checkDevImage", content);Console.WriteLine(await res.Content.ReadAsStringAsync());Response
{ "code": 0, "msg": "", "data": { "mounted": true, "result": true, "path": "/path/to/DeveloperDiskImage.dmg" }}| Field | Type | Description |
|---|---|---|
| data.mounted | boolean | Whether the image is mounted |
| data.result | boolean | Same as mounted |
| data.path | string | Image path when mounted; empty when not |