umpn("runCommand " + command); return new Promise((resolve, reject) => { if (!adbProcess.ready) { setTimeout(function () { reject("ADB_NOT_READY"); }); return; } const socket = client.connect(); socket.s.onopen = function () { dumpn("runCommand onopen"); const req = client.createRequest(command); socket.send(req); }; socket.s.onerror = function () { dumpn("runCommand onerror"); reject("NETWORK_ERROR"); }; socket.s.onclose = function () { dumpn("runCommand onclose"); }; socket.s.ondata = function (event) { dumpn("runCommand ondata"); const data = event.data; const packet = client.unpackPacket(data, false); if (!client.checkResponse(data, OKAY)) { socket.close(); dumpn("Error: " + packet.data); reject("PROTOCOL_ERROR"); return; } resolve(packet.data); }; }); }; exports.runCommand = runCommand; PK