hunter-open-sdk 2.0.0-beta.6 → 2.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/abilities/activate/index.js +56 -0
- package/lib/abilities/activate/worker.js +29 -0
- package/lib/abilities/erase/index.js +56 -0
- package/lib/abilities/erase/worker.js +29 -0
- package/lib/abilities/getGeneralReport/index.js +54 -0
- package/lib/abilities/getGeneralReport/worker.js +27 -0
- package/lib/abilities/getSaaSReport/index.js +54 -0
- package/lib/abilities/getSaaSReport/worker.js +19 -0
- package/lib/abilities/skip/index.js +56 -0
- package/lib/abilities/skip/worker.js +29 -0
- package/lib/events/driver/command.js +8 -9
- package/lib/events/driver/service.js +24 -35
- package/lib/events/driver/winDriver.js +120 -187
- package/lib/getAndroidSn/index.js +134 -198
- package/lib/helper/deviceHelper.js +19 -37
- package/lib/index.js +12 -6
- package/lib/registerEvent/index.js +149 -247
- package/lib/resources/dll/{libinspectionkit_x64_0.1.0.dll → libinspectionkit_x64_0.2.0.dll} +0 -0
- package/lib/resources/mac/{libinspectionkit_arm64_0.1.0.dylib → libinspectionkit_amd64_0.2.0.dylib} +0 -0
- package/lib/resources/mac/libinspectionkit_arm64_0.2.0.dylib +0 -0
- package/lib/resources/version.online +1 -1
- package/lib/utils/utils.command.js +8 -9
- package/lib/utils/utils.common.js +14 -0
- package/lib/utils/{utils.js → utils.env.js} +15 -15
- package/lib/utils/utils.global.js +164 -40
- package/lib/utils/utils.initDll.js +12 -11
- package/lib/utils/utils.path.js +4 -3
- package/lib/utils/utils.process.js +23 -0
- package/lib/utils/utils.sn.js +31 -47
- package/package.json +7 -6
- package/lib/getGeneralReport/index.js +0 -76
- package/lib/getGeneralReport/worker.js +0 -20
- package/lib/getSaaSReport/index.js +0 -76
- package/lib/getSaaSReport/worker.js +0 -20
- package/lib/resources/mac/libinspectionkit_amd64_0.1.0.dylib +0 -0
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.UnregisterEvent = exports.RegisterEvent = void 0;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _utils = require("../utils/utils");
|
|
7
|
+
var _utils = require("../utils/utils.env");
|
|
8
|
+
var _utils2 = require("../utils/utils.common");
|
|
11
9
|
var _winDriver = require("../events/driver/winDriver");
|
|
12
|
-
var
|
|
10
|
+
var _utils3 = require("../utils/utils.global");
|
|
13
11
|
var _deviceHelper = require("../helper/deviceHelper");
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
var _utils4 = require("../utils/utils.initDll");
|
|
13
|
+
const usbmux = require('usbmux');
|
|
14
|
+
const path = require('path');
|
|
15
|
+
const request = require("request");
|
|
16
|
+
const fs = require('fs');
|
|
17
|
+
const Sentry = require("@sentry/browser");
|
|
20
18
|
|
|
21
19
|
// saas回调
|
|
22
|
-
|
|
20
|
+
let saasCallBack;
|
|
23
21
|
|
|
24
22
|
// usb监听
|
|
25
|
-
|
|
23
|
+
let usbListener = null;
|
|
26
24
|
/**
|
|
27
25
|
* 获取资源文件的基础路径
|
|
28
26
|
*/
|
|
29
|
-
|
|
27
|
+
const getResourcePath = () => {
|
|
30
28
|
if ((0, _utils.isDev)()) {
|
|
31
29
|
// 开发环境:使用源码目录
|
|
32
30
|
return path.resolve(__dirname, '../resources');
|
|
@@ -42,18 +40,16 @@ var getResourcePath = function getResourcePath() {
|
|
|
42
40
|
* @param {String} params 参数
|
|
43
41
|
* @returns {String} 发布配对结果
|
|
44
42
|
*/
|
|
45
|
-
|
|
46
|
-
var udid = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
47
|
-
var params = arguments.length > 1 ? arguments[1] : undefined;
|
|
43
|
+
const publishPair = (udid = '', params) => {
|
|
48
44
|
// 通过调用 trust_status 来判断信任状态
|
|
49
|
-
|
|
45
|
+
const kitParamsObj = JSON.parse(params);
|
|
50
46
|
|
|
51
47
|
// 合并参数
|
|
52
48
|
Object.assign(kitParamsObj, {
|
|
53
49
|
cmd: 'publish_pair',
|
|
54
|
-
udid
|
|
50
|
+
udid
|
|
55
51
|
});
|
|
56
|
-
return (0,
|
|
52
|
+
return (0, _utils3.callHunterInspectionKit)('TheForceKit', JSON.stringify(kitParamsObj));
|
|
57
53
|
};
|
|
58
54
|
|
|
59
55
|
/**
|
|
@@ -61,150 +57,83 @@ var publishPair = function publishPair() {
|
|
|
61
57
|
* @param {String} udid 设备id
|
|
62
58
|
* @returns
|
|
63
59
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
kitParamsObj,
|
|
70
|
-
trustStatusRes,
|
|
71
|
-
trustStatusResObj,
|
|
72
|
-
Code,
|
|
73
|
-
Data,
|
|
74
|
-
_args = arguments;
|
|
75
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
76
|
-
while (1) switch (_context.prev = _context.next) {
|
|
77
|
-
case 0:
|
|
78
|
-
udid = _args.length > 0 && _args[0] !== undefined ? _args[0] : '';
|
|
79
|
-
params = _args.length > 1 ? _args[1] : undefined;
|
|
80
|
-
once = _args.length > 2 && _args[2] !== undefined ? _args[2] : false;
|
|
81
|
-
if (_deviceHelper.deviceHelper.hasUdid(udid)) {
|
|
82
|
-
_context.next = 5;
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
return _context.abrupt("return", false);
|
|
86
|
-
case 5:
|
|
87
|
-
// 通过调用 trust_status 来判断信任状态
|
|
88
|
-
kitParamsObj = JSON.parse(params); // 合并参数
|
|
89
|
-
Object.assign(kitParamsObj, {
|
|
90
|
-
cmd: 'trust_status',
|
|
91
|
-
udid: udid
|
|
92
|
-
});
|
|
60
|
+
const getTrustStatus = async (udid = '', params, once = false) => {
|
|
61
|
+
if (!_deviceHelper.deviceHelper.hasUdid(udid)) {
|
|
62
|
+
// 防止一直循环占用cpu资源
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
93
65
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return _context.stop();
|
|
124
|
-
}
|
|
125
|
-
}, _callee);
|
|
126
|
-
}));
|
|
127
|
-
return function getTrustStatus() {
|
|
128
|
-
return _ref.apply(this, arguments);
|
|
129
|
-
};
|
|
130
|
-
}();
|
|
131
|
-
var getTrustStatusOnce = /*#__PURE__*/function () {
|
|
132
|
-
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(udid, params) {
|
|
133
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
134
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
135
|
-
case 0:
|
|
136
|
-
_context2.next = 2;
|
|
137
|
-
return getTrustStatus(udid, params, true);
|
|
138
|
-
case 2:
|
|
139
|
-
return _context2.abrupt("return", _context2.sent);
|
|
140
|
-
case 3:
|
|
141
|
-
case "end":
|
|
142
|
-
return _context2.stop();
|
|
143
|
-
}
|
|
144
|
-
}, _callee2);
|
|
145
|
-
}));
|
|
146
|
-
return function getTrustStatusOnce(_x, _x2) {
|
|
147
|
-
return _ref2.apply(this, arguments);
|
|
148
|
-
};
|
|
149
|
-
}();
|
|
66
|
+
// 通过调用 trust_status 来判断信任状态
|
|
67
|
+
const kitParamsObj = JSON.parse(params);
|
|
68
|
+
|
|
69
|
+
// 合并参数
|
|
70
|
+
Object.assign(kitParamsObj, {
|
|
71
|
+
cmd: 'trust_status',
|
|
72
|
+
udid
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// 获取信任状态
|
|
76
|
+
const trustStatusRes = (0, _utils3.callHunterInspectionKit)('TheForceKit', JSON.stringify(kitParamsObj));
|
|
77
|
+
if (trustStatusRes) {
|
|
78
|
+
const trustStatusResObj = JSON.parse(trustStatusRes);
|
|
79
|
+
const {
|
|
80
|
+
Code,
|
|
81
|
+
Data
|
|
82
|
+
} = trustStatusResObj;
|
|
83
|
+
if (Code == 0 && (Data.imei || Data.serialNumber)) {
|
|
84
|
+
return Data;
|
|
85
|
+
} else if (!once) {
|
|
86
|
+
await (0, _utils2.sleep)();
|
|
87
|
+
return await getTrustStatus(udid, params);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
};
|
|
92
|
+
const getTrustStatusOnce = async (udid, params) => {
|
|
93
|
+
return await getTrustStatus(udid, params, true);
|
|
94
|
+
};
|
|
150
95
|
|
|
151
96
|
/**
|
|
152
97
|
* 配对并获取信任状态
|
|
153
98
|
* @param {String} udid 设备id
|
|
154
99
|
* @returns
|
|
155
100
|
*/
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
164
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
165
|
-
case 0:
|
|
166
|
-
udid = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : '';
|
|
167
|
-
params = _args3.length > 1 ? _args3[1] : undefined;
|
|
168
|
-
_context3.next = 4;
|
|
169
|
-
return getTrustStatusOnce(udid, params);
|
|
170
|
-
case 4:
|
|
171
|
-
trustStatusOnceRes = _context3.sent;
|
|
172
|
-
// 未信任弹起信任窗口
|
|
173
|
-
if (!trustStatusOnceRes) {
|
|
174
|
-
// 发布配对
|
|
175
|
-
publishPair(udid, params);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// 通过 trust_status 来判断信任状态
|
|
179
|
-
_context3.next = 8;
|
|
180
|
-
return getTrustStatus(udid, params);
|
|
181
|
-
case 8:
|
|
182
|
-
trustStatusRes = _context3.sent;
|
|
183
|
-
if (trustStatusRes) {
|
|
184
|
-
saasCallBack({
|
|
185
|
-
data: {
|
|
186
|
-
eventName: 'type_trust_result',
|
|
187
|
-
udid: udid,
|
|
188
|
-
eventCode: 0
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
case 10:
|
|
193
|
-
case "end":
|
|
194
|
-
return _context3.stop();
|
|
101
|
+
const DevicePair = async (udid = '', params) => {
|
|
102
|
+
const callBack = () => {
|
|
103
|
+
saasCallBack({
|
|
104
|
+
data: {
|
|
105
|
+
eventName: 'type_trust_result',
|
|
106
|
+
udid,
|
|
107
|
+
eventCode: 0
|
|
195
108
|
}
|
|
196
|
-
}
|
|
197
|
-
}));
|
|
198
|
-
return function DevicePair() {
|
|
199
|
-
return _ref3.apply(this, arguments);
|
|
109
|
+
});
|
|
200
110
|
};
|
|
201
|
-
|
|
111
|
+
|
|
112
|
+
// 单次获取信任状态
|
|
113
|
+
const trustStatusOnceRes = await getTrustStatusOnce(udid, params);
|
|
114
|
+
|
|
115
|
+
// 未信任弹起信任窗口
|
|
116
|
+
if (!trustStatusOnceRes) {
|
|
117
|
+
// 发布配对
|
|
118
|
+
publishPair(udid, params);
|
|
119
|
+
|
|
120
|
+
// 通过 trust_status 来判断信任状态
|
|
121
|
+
const trustStatusRes = await getTrustStatus(udid, params);
|
|
122
|
+
if (trustStatusRes) {
|
|
123
|
+
callBack();
|
|
124
|
+
}
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// 已信任 直接返回
|
|
129
|
+
callBack();
|
|
130
|
+
};
|
|
202
131
|
|
|
203
132
|
// 写入dll文件version
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
fs.writeFile(versionPath, version,
|
|
133
|
+
const writeDllVersion = version => {
|
|
134
|
+
const resourcePath = getResourcePath();
|
|
135
|
+
const versionPath = path.resolve(resourcePath, 'version.online');
|
|
136
|
+
fs.writeFile(versionPath, version, err => {
|
|
208
137
|
if (err) {
|
|
209
138
|
saasCallBack({
|
|
210
139
|
data: {
|
|
@@ -216,7 +145,7 @@ var writeDllVersion = function writeDllVersion(version) {
|
|
|
216
145
|
}
|
|
217
146
|
console.log('========写入version成功');
|
|
218
147
|
// 写入成功后 重新初始化dll
|
|
219
|
-
(0,
|
|
148
|
+
(0, _utils4.initHunterInspectionKit)();
|
|
220
149
|
saasCallBack({
|
|
221
150
|
data: {
|
|
222
151
|
eventName: 'type_update_result',
|
|
@@ -227,18 +156,18 @@ var writeDllVersion = function writeDllVersion(version) {
|
|
|
227
156
|
};
|
|
228
157
|
|
|
229
158
|
// 下载更新dll
|
|
230
|
-
|
|
159
|
+
const updateDll = (packageUrl, targetVersion) => {
|
|
231
160
|
// 若需要更新 则下载完成后 覆盖本地dll文件
|
|
232
|
-
|
|
233
|
-
|
|
161
|
+
let dllOutPath;
|
|
162
|
+
const resourcePath = getResourcePath();
|
|
234
163
|
if ((0, _utils.isMac)()) {
|
|
235
164
|
if ((0, _utils.isArm64)()) {
|
|
236
|
-
dllOutPath = path.resolve(resourcePath,
|
|
165
|
+
dllOutPath = path.resolve(resourcePath, `mac/libinspectionkit_arm64_${targetVersion}.dylib`);
|
|
237
166
|
}
|
|
238
167
|
} else {
|
|
239
|
-
dllOutPath = path.resolve(resourcePath,
|
|
168
|
+
dllOutPath = path.resolve(resourcePath, `dll/libinspectionkit_x64_${targetVersion}.dll`);
|
|
240
169
|
}
|
|
241
|
-
|
|
170
|
+
const dllStream = fs.createWriteStream(dllOutPath);
|
|
242
171
|
request(packageUrl).pipe(dllStream).on("close", function (err) {
|
|
243
172
|
if (err) {
|
|
244
173
|
saasCallBack({
|
|
@@ -259,23 +188,27 @@ var updateDll = function updateDll(packageUrl, targetVersion) {
|
|
|
259
188
|
* @param {String} udid 设备id
|
|
260
189
|
* @returns
|
|
261
190
|
*/
|
|
262
|
-
|
|
191
|
+
const updateDllFileCheck = () => {
|
|
263
192
|
// mac的amd不支持更新
|
|
264
193
|
if ((0, _utils.isMac)() && (0, _utils.isAmd64)()) return;
|
|
265
|
-
|
|
194
|
+
const updateParams = {
|
|
266
195
|
cmd: 'hot_update',
|
|
267
196
|
label: (0, _utils.isWin)() ? 'Windows' : 'Mac',
|
|
268
197
|
params: {}
|
|
269
198
|
};
|
|
270
|
-
|
|
199
|
+
const updateRes = (0, _utils3.callHunterInspectionKit)('TheForceKit', JSON.stringify(updateParams));
|
|
271
200
|
if (updateRes) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
201
|
+
const updateResObj = JSON.parse(updateRes);
|
|
202
|
+
const {
|
|
203
|
+
Code,
|
|
204
|
+
Data
|
|
205
|
+
} = updateResObj;
|
|
275
206
|
if (Code == 0) {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
207
|
+
const {
|
|
208
|
+
isHot,
|
|
209
|
+
url,
|
|
210
|
+
targetVersion
|
|
211
|
+
} = Data;
|
|
279
212
|
|
|
280
213
|
// 需要更新 则直接下载
|
|
281
214
|
isHot == 1 && updateDll(url, targetVersion);
|
|
@@ -300,28 +233,28 @@ var updateDllFileCheck = function updateDllFileCheck() {
|
|
|
300
233
|
/**
|
|
301
234
|
* 检查并安装驱动
|
|
302
235
|
*/
|
|
303
|
-
|
|
304
|
-
return new Promise(
|
|
236
|
+
const checkAndInstallDriver = () => {
|
|
237
|
+
return new Promise((resolve, reject) => {
|
|
305
238
|
if (!(0, _utils.isWin)()) {
|
|
306
239
|
resolve();
|
|
307
240
|
return;
|
|
308
241
|
}
|
|
309
|
-
(0, _winDriver.checkHasDriver)().then(
|
|
242
|
+
(0, _winDriver.checkHasDriver)().then(res => {
|
|
310
243
|
if (res) {
|
|
311
244
|
resolve();
|
|
312
245
|
return;
|
|
313
246
|
}
|
|
314
|
-
(0, _winDriver.downloadDriver)(
|
|
247
|
+
(0, _winDriver.downloadDriver)(percent => {
|
|
315
248
|
saasCallBack({
|
|
316
249
|
data: {
|
|
317
250
|
eventName: 'type_need_install_driver',
|
|
318
251
|
eventCode: 0,
|
|
319
252
|
eventContent: JSON.stringify({
|
|
320
|
-
percent
|
|
253
|
+
percent // 下载进度
|
|
321
254
|
})
|
|
322
255
|
}
|
|
323
256
|
});
|
|
324
|
-
}).then(
|
|
257
|
+
}).then(() => {
|
|
325
258
|
// 成功
|
|
326
259
|
console.log('驱动下载并安装成功');
|
|
327
260
|
saasCallBack({
|
|
@@ -331,7 +264,7 @@ var checkAndInstallDriver = function checkAndInstallDriver() {
|
|
|
331
264
|
}
|
|
332
265
|
});
|
|
333
266
|
resolve();
|
|
334
|
-
}).catch(
|
|
267
|
+
}).catch(err => {
|
|
335
268
|
// 失败
|
|
336
269
|
console.error('驱动下载或安装失败', err);
|
|
337
270
|
Sentry.captureException('驱动下载或安装失败:' + JSON.stringify(err));
|
|
@@ -343,85 +276,54 @@ var checkAndInstallDriver = function checkAndInstallDriver() {
|
|
|
343
276
|
});
|
|
344
277
|
reject();
|
|
345
278
|
});
|
|
346
|
-
}).catch(
|
|
279
|
+
}).catch(err => {
|
|
347
280
|
console.error('驱动检测失败', err);
|
|
348
281
|
Sentry.captureException('驱动检测失败:' + JSON.stringify(err));
|
|
349
282
|
reject();
|
|
350
283
|
});
|
|
351
284
|
});
|
|
352
285
|
};
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
356
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
357
|
-
case 0:
|
|
358
|
-
saasCallBack = callBack;
|
|
286
|
+
const RegisterEvent = async (params, callBack) => {
|
|
287
|
+
saasCallBack = callBack;
|
|
359
288
|
|
|
360
|
-
|
|
361
|
-
|
|
289
|
+
// 检查是否需要更新dll
|
|
290
|
+
updateDllFileCheck();
|
|
362
291
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
_context4.next = 2;
|
|
374
|
-
break;
|
|
375
|
-
}
|
|
376
|
-
return _context4.abrupt("return");
|
|
377
|
-
case 2:
|
|
378
|
-
// 插入设备通知
|
|
379
|
-
saasCallBack({
|
|
380
|
-
data: {
|
|
381
|
-
eventName: 'type_usb_device_result',
|
|
382
|
-
udid: udid,
|
|
383
|
-
eventCode: 0
|
|
384
|
-
}
|
|
385
|
-
});
|
|
386
|
-
_deviceHelper.deviceHelper.addUdid(udid);
|
|
387
|
-
// 有驱动,直接运行脚本
|
|
388
|
-
DevicePair(udid, params);
|
|
389
|
-
case 5:
|
|
390
|
-
case "end":
|
|
391
|
-
return _context4.stop();
|
|
392
|
-
}
|
|
393
|
-
}, _callee4);
|
|
394
|
-
}));
|
|
395
|
-
return function (_x5) {
|
|
396
|
-
return _ref5.apply(this, arguments);
|
|
397
|
-
};
|
|
398
|
-
}()).on('detached', function (udid) {
|
|
399
|
-
// 拔出设备
|
|
400
|
-
saasCallBack({
|
|
401
|
-
data: {
|
|
402
|
-
eventName: 'type_usb_device_result',
|
|
403
|
-
udid: udid,
|
|
404
|
-
eventCode: -1
|
|
405
|
-
}
|
|
406
|
-
});
|
|
407
|
-
_deviceHelper.deviceHelper.removeUdid(udid);
|
|
408
|
-
}).on('error', function (err) {
|
|
409
|
-
console.log('usb连接错误:', err);
|
|
410
|
-
Sentry.captureException('usb连接错误:' + JSON.stringify(err));
|
|
411
|
-
var errMsg = "usb\u8FDE\u63A5\u9519\u8BEF\uFF1A".concat(err);
|
|
412
|
-
throw new Error(errMsg);
|
|
413
|
-
});
|
|
414
|
-
case 5:
|
|
415
|
-
case "end":
|
|
416
|
-
return _context5.stop();
|
|
292
|
+
// 在插线之前就检测驱动状态
|
|
293
|
+
await checkAndInstallDriver();
|
|
294
|
+
usbListener = new usbmux.createListener().on('attached', async udid => {
|
|
295
|
+
if (!udid) return;
|
|
296
|
+
// 插入设备通知
|
|
297
|
+
saasCallBack({
|
|
298
|
+
data: {
|
|
299
|
+
eventName: 'type_usb_device_result',
|
|
300
|
+
udid,
|
|
301
|
+
eventCode: 0
|
|
417
302
|
}
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
|
|
303
|
+
});
|
|
304
|
+
_deviceHelper.deviceHelper.addUdid(udid);
|
|
305
|
+
// 有驱动,直接运行脚本
|
|
306
|
+
DevicePair(udid, params);
|
|
307
|
+
}).on('detached', function (udid) {
|
|
308
|
+
// 拔出设备
|
|
309
|
+
saasCallBack({
|
|
310
|
+
data: {
|
|
311
|
+
eventName: 'type_usb_device_result',
|
|
312
|
+
udid,
|
|
313
|
+
eventCode: -1
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
_deviceHelper.deviceHelper.removeUdid(udid);
|
|
317
|
+
}).on('error', function (err) {
|
|
318
|
+
console.log('usb连接错误:', err);
|
|
319
|
+
Sentry.captureException('usb连接错误:' + JSON.stringify(err));
|
|
320
|
+
const errMsg = `usb连接错误:${err}`;
|
|
321
|
+
throw new Error(errMsg);
|
|
322
|
+
});
|
|
323
|
+
};
|
|
324
|
+
exports.RegisterEvent = RegisterEvent;
|
|
325
|
+
const UnregisterEvent = () => {
|
|
425
326
|
usbListener && usbListener.destroy();
|
|
426
327
|
_deviceHelper.deviceHelper.clearUdidList();
|
|
427
|
-
};
|
|
328
|
+
};
|
|
329
|
+
exports.UnregisterEvent = UnregisterEvent;
|
|
Binary file
|
package/lib/resources/mac/{libinspectionkit_arm64_0.1.0.dylib → libinspectionkit_amd64_0.2.0.dylib}
RENAMED
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.2.0
|
|
@@ -4,29 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.command = command;
|
|
7
|
-
|
|
8
|
-
function command(cmd) {
|
|
9
|
-
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : './';
|
|
7
|
+
const exec = require('child_process').exec;
|
|
8
|
+
function command(cmd, path = './') {
|
|
10
9
|
// 任何你期望执行的cmd命令,ls都可以
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
let cmdStr1 = cmd;
|
|
11
|
+
let cmdPath = path;
|
|
13
12
|
// 子进程名称
|
|
14
|
-
|
|
13
|
+
let workerProcess;
|
|
15
14
|
runExec(cmdStr1);
|
|
16
15
|
function runExec(cmdStr) {
|
|
17
16
|
workerProcess = exec(cmdStr, {
|
|
18
17
|
cwd: cmdPath
|
|
19
18
|
});
|
|
20
19
|
// 打印正常的后台可执行程序输出
|
|
21
|
-
workerProcess.stdout.on('data',
|
|
20
|
+
workerProcess.stdout.on('data', data => {
|
|
22
21
|
console.log('stdout: ' + data);
|
|
23
22
|
});
|
|
24
23
|
// 打印错误的后台可执行程序输出
|
|
25
|
-
workerProcess.stderr.on('data',
|
|
24
|
+
workerProcess.stderr.on('data', data => {
|
|
26
25
|
console.log('stderr: ' + data);
|
|
27
26
|
});
|
|
28
27
|
// 退出之后的输出
|
|
29
|
-
workerProcess.on('close',
|
|
28
|
+
workerProcess.on('close', code => {
|
|
30
29
|
console.log('out code:' + code);
|
|
31
30
|
});
|
|
32
31
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sleep = void 0;
|
|
7
|
+
const sleep = () => {
|
|
8
|
+
return new Promise(resolve => {
|
|
9
|
+
setTimeout(() => {
|
|
10
|
+
resolve();
|
|
11
|
+
}, 1000);
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
exports.sleep = sleep;
|
|
@@ -3,17 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
6
|
+
exports.isWin = exports.isProd = exports.isMac = exports.isLinux = exports.isDev = exports.isArm64 = exports.isAmd64 = void 0;
|
|
7
|
+
const isMac = () => {
|
|
8
8
|
return process.platform === 'darwin';
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
exports.isMac = isMac;
|
|
11
|
+
const isWin = () => {
|
|
11
12
|
return process.platform === 'win32';
|
|
12
13
|
};
|
|
13
|
-
|
|
14
|
+
exports.isWin = isWin;
|
|
15
|
+
const isLinux = () => {
|
|
14
16
|
return process.platform === 'linux';
|
|
15
17
|
};
|
|
16
|
-
|
|
18
|
+
exports.isLinux = isLinux;
|
|
19
|
+
const isDev = () => {
|
|
17
20
|
// 检查 NODE_ENV 是否为 development
|
|
18
21
|
if (process.env.NODE_ENV === 'development') {
|
|
19
22
|
return true;
|
|
@@ -36,19 +39,16 @@ var isDev = exports.isDev = function isDev() {
|
|
|
36
39
|
|
|
37
40
|
return false;
|
|
38
41
|
};
|
|
39
|
-
|
|
42
|
+
exports.isDev = isDev;
|
|
43
|
+
const isProd = () => {
|
|
40
44
|
return process.env.NODE_ENV === 'production';
|
|
41
45
|
};
|
|
42
|
-
|
|
46
|
+
exports.isProd = isProd;
|
|
47
|
+
const isArm64 = () => {
|
|
43
48
|
return process.arch === 'arm64';
|
|
44
49
|
};
|
|
45
|
-
|
|
50
|
+
exports.isArm64 = isArm64;
|
|
51
|
+
const isAmd64 = () => {
|
|
46
52
|
return process.arch === 'x64';
|
|
47
53
|
};
|
|
48
|
-
|
|
49
|
-
return new Promise(function (resolve) {
|
|
50
|
-
setTimeout(function () {
|
|
51
|
-
resolve();
|
|
52
|
-
}, 2000);
|
|
53
|
-
});
|
|
54
|
-
};
|
|
54
|
+
exports.isAmd64 = isAmd64;
|