appium-ios-remotexpc 0.22.0 → 0.23.0
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/CHANGELOG.md +6 -0
- package/build/src/index.d.ts +1 -1
- package/build/src/index.d.ts.map +1 -1
- package/build/src/lib/types.d.ts +59 -0
- package/build/src/lib/types.d.ts.map +1 -1
- package/build/src/services/index.d.ts +2 -1
- package/build/src/services/index.d.ts.map +1 -1
- package/build/src/services/index.js +2 -1
- package/build/src/services/ios/afc/codec.d.ts +12 -0
- package/build/src/services/ios/afc/codec.d.ts.map +1 -1
- package/build/src/services/ios/afc/codec.js +26 -0
- package/build/src/services/ios/afc/index.d.ts.map +1 -1
- package/build/src/services/ios/afc/index.js +3 -14
- package/build/src/services/ios/crash-reports/index.d.ts +54 -0
- package/build/src/services/ios/crash-reports/index.d.ts.map +1 -0
- package/build/src/services/ios/crash-reports/index.js +136 -0
- package/build/src/services.d.ts +6 -1
- package/build/src/services.d.ts.map +1 -1
- package/build/src/services.js +14 -0
- package/package.json +2 -1
- package/src/index.ts +3 -0
- package/src/lib/types.ts +70 -0
- package/src/services/index.ts +2 -0
- package/src/services/ios/afc/codec.ts +34 -0
- package/src/services/ios/afc/index.ts +4 -15
- package/src/services/ios/crash-reports/index.ts +180 -0
- package/src/services.ts +27 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [0.23.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.22.0...v0.23.0) (2026-01-02)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* implement crash reports RSD service ([#119](https://github.com/appium/appium-ios-remotexpc/issues/119)) ([6fdbb4e](https://github.com/appium/appium-ios-remotexpc/commit/6fdbb4e4125fa4d7c2aff6d3c4d032debda5213e))
|
|
6
|
+
|
|
1
7
|
## [0.22.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.21.2...v0.22.0) (2026-01-02)
|
|
2
8
|
|
|
3
9
|
### Features
|
package/build/src/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { TunnelRegistryServer, startTunnelRegistryServer } from './lib/tunnel/tu
|
|
|
5
5
|
import { Usbmux, createUsbmux } from './lib/usbmux/index.js';
|
|
6
6
|
import * as Services from './services.js';
|
|
7
7
|
import { startCoreDeviceProxy } from './services/ios/tunnel-service/index.js';
|
|
8
|
-
export type { DiagnosticsService, MobileImageMounterService, NotificationProxyService, MobileConfigService, PowerAssertionService, PowerAssertionOptions, SpringboardService, WebInspectorService, MisagentService, SyslogService, DVTSecureSocketProxyService, LocationSimulationService, ConditionInducerService, ScreenshotService, GraphicsService, DeviceInfoService, NetworkMonitorService, ProcessInfo, ConditionProfile, ConditionGroup, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DiagnosticsServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, MobileConfigServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, WebInspectorServiceWithConnection, MisagentServiceWithConnection, DVTServiceWithConnection, NetworkAddress, InterfaceDetectionEvent, ConnectionDetectionEvent, ConnectionUpdateEvent, NetworkEvent, } from './lib/types.js';
|
|
8
|
+
export type { CrashReportsService, CrashReportsPullOptions, CrashReportsServiceWithConnection, DiagnosticsService, MobileImageMounterService, NotificationProxyService, MobileConfigService, PowerAssertionService, PowerAssertionOptions, SpringboardService, WebInspectorService, MisagentService, SyslogService, DVTSecureSocketProxyService, LocationSimulationService, ConditionInducerService, ScreenshotService, GraphicsService, DeviceInfoService, NetworkMonitorService, ProcessInfo, ConditionProfile, ConditionGroup, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DiagnosticsServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, MobileConfigServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, WebInspectorServiceWithConnection, MisagentServiceWithConnection, DVTServiceWithConnection, NetworkAddress, InterfaceDetectionEvent, ConnectionDetectionEvent, ConnectionUpdateEvent, NetworkEvent, } from './lib/types.js';
|
|
9
9
|
export { PowerAssertionType } from './lib/types.js';
|
|
10
10
|
export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
|
|
11
11
|
export { STRONGBOX_CONTAINER_NAME, createUsbmux, Services, Usbmux, TunnelManager, PacketStreamServer, PacketStreamClient, createLockdownServiceByUDID, startCoreDeviceProxy, TunnelRegistryServer, startTunnelRegistryServer, };
|
package/build/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,gCAAgC,EAChC,uCAAuC,EACvC,sCAAsC,EACtC,iCAAiC,EACjC,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,iCAAiC,EACjC,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,gCAAgC,EAChC,uCAAuC,EACvC,sCAAsC,EACtC,iCAAiC,EACjC,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC"}
|
package/build/src/lib/types.d.ts
CHANGED
|
@@ -1322,4 +1322,63 @@ export interface MisagentServiceWithConnection {
|
|
|
1322
1322
|
misagentService: MisagentService;
|
|
1323
1323
|
remoteXPC: RemoteXpcConnection;
|
|
1324
1324
|
}
|
|
1325
|
+
/**
|
|
1326
|
+
* Options for pulling crash reports from device to local
|
|
1327
|
+
*/
|
|
1328
|
+
export interface CrashReportsPullOptions {
|
|
1329
|
+
/**
|
|
1330
|
+
* If true, deletes crash reports from the remote device after pulling to local.
|
|
1331
|
+
* @default false
|
|
1332
|
+
*/
|
|
1333
|
+
erase?: boolean;
|
|
1334
|
+
/**
|
|
1335
|
+
* Glob pattern to filter crash reports (e.g., '*.ips', 'Siri*', '**\/*.crash')
|
|
1336
|
+
*/
|
|
1337
|
+
match?: string;
|
|
1338
|
+
}
|
|
1339
|
+
/**
|
|
1340
|
+
* CrashReportsService provides an API to manage crash reports on iOS devices
|
|
1341
|
+
*/
|
|
1342
|
+
export interface CrashReportsService extends BaseService {
|
|
1343
|
+
/**
|
|
1344
|
+
* List files and folders in the crash report's directory
|
|
1345
|
+
*
|
|
1346
|
+
* Crash reports are primarily stored as .ips files, which contain detailed information about
|
|
1347
|
+
* app crashes, including stack traces, thread states, and device information.
|
|
1348
|
+
* In addition to .ips files, the crash reports directory may contain:
|
|
1349
|
+
* - Sysdiagnose tarballs (comprehensive system diagnostic archives)
|
|
1350
|
+
* - Special directories like /Retired, /Cloud, /Assistant, etc.
|
|
1351
|
+
*
|
|
1352
|
+
* For details on the .ips file format, see:
|
|
1353
|
+
* https://developer.apple.com/documentation/xcode/analyzing-a-crash-report
|
|
1354
|
+
*
|
|
1355
|
+
* @param dirPath Path to list, defaults to "/"
|
|
1356
|
+
* @param depth Listing depth: 1 for immediate children, -1 for infinite
|
|
1357
|
+
* @returns List of file paths (e.g., .ips files, sysdiagnose tarballs, directories like /Retired, /Cloud, etc.)
|
|
1358
|
+
*/
|
|
1359
|
+
ls(dirPath?: string, depth?: number): Promise<string[]>;
|
|
1360
|
+
/**
|
|
1361
|
+
* Pull crash reports from device to local machine
|
|
1362
|
+
* @param out Local directory path
|
|
1363
|
+
* @param entry Remote path on device, defaults to "/"
|
|
1364
|
+
* @param options Pull options (erase, match pattern)
|
|
1365
|
+
*/
|
|
1366
|
+
pull(out: string, entry?: string, options?: CrashReportsPullOptions): Promise<void>;
|
|
1367
|
+
/**
|
|
1368
|
+
* Clear all crash reports from the device
|
|
1369
|
+
*/
|
|
1370
|
+
clear(): Promise<void>;
|
|
1371
|
+
/**
|
|
1372
|
+
* Flush pending crash reports into CrashReports directory
|
|
1373
|
+
*/
|
|
1374
|
+
flush(): Promise<void>;
|
|
1375
|
+
/**
|
|
1376
|
+
* Close the service and release resources
|
|
1377
|
+
*/
|
|
1378
|
+
close(): void;
|
|
1379
|
+
}
|
|
1380
|
+
export interface CrashReportsServiceWithConnection {
|
|
1381
|
+
crashReportsService: CrashReportsService;
|
|
1382
|
+
remoteXPC: RemoteXpcConnection;
|
|
1383
|
+
}
|
|
1325
1384
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { TunnelRegistryServer, startTunnelRegistryServer } from '../lib/tunnel/tunnel-registry-server.js';
|
|
2
2
|
import * as afc from './ios/afc/index.js';
|
|
3
|
+
import * as crashReports from './ios/crash-reports/index.js';
|
|
3
4
|
import * as diagnostics from './ios/diagnostic-service/index.js';
|
|
4
5
|
import * as mobileImageMounter from './ios/mobile-image-mounter/index.js';
|
|
5
6
|
import * as powerAssertion from './ios/power-assertion/index.js';
|
|
6
7
|
import * as syslog from './ios/syslog-service/index.js';
|
|
7
8
|
import * as tunnel from './ios/tunnel-service/index.js';
|
|
8
9
|
import * as webinspector from './ios/webinspector/index.js';
|
|
9
|
-
export { diagnostics, mobileImageMounter, powerAssertion, syslog, tunnel, afc, webinspector, TunnelRegistryServer, startTunnelRegistryServer, };
|
|
10
|
+
export { crashReports, diagnostics, mobileImageMounter, powerAssertion, syslog, tunnel, afc, webinspector, TunnelRegistryServer, startTunnelRegistryServer, };
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,kBAAkB,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,cAAc,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,MAAM,EACN,MAAM,EACN,GAAG,EACH,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,kBAAkB,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,cAAc,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,MAAM,EACN,MAAM,EACN,GAAG,EACH,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { TunnelRegistryServer, startTunnelRegistryServer, } from '../lib/tunnel/tunnel-registry-server.js';
|
|
2
2
|
import * as afc from './ios/afc/index.js';
|
|
3
|
+
import * as crashReports from './ios/crash-reports/index.js';
|
|
3
4
|
import * as diagnostics from './ios/diagnostic-service/index.js';
|
|
4
5
|
import * as mobileImageMounter from './ios/mobile-image-mounter/index.js';
|
|
5
6
|
import * as powerAssertion from './ios/power-assertion/index.js';
|
|
6
7
|
import * as syslog from './ios/syslog-service/index.js';
|
|
7
8
|
import * as tunnel from './ios/tunnel-service/index.js';
|
|
8
9
|
import * as webinspector from './ios/webinspector/index.js';
|
|
9
|
-
export { diagnostics, mobileImageMounter, powerAssertion, syslog, tunnel, afc, webinspector, TunnelRegistryServer, startTunnelRegistryServer, };
|
|
10
|
+
export { crashReports, diagnostics, mobileImageMounter, powerAssertion, syslog, tunnel, afc, webinspector, TunnelRegistryServer, startTunnelRegistryServer, };
|
|
@@ -36,6 +36,18 @@ export declare function buildLinkPayload(type: number, target: string, source: s
|
|
|
36
36
|
*/
|
|
37
37
|
export declare function recvOnePlist(socket: net.Socket): Promise<any>;
|
|
38
38
|
export declare function rsdHandshakeForRawService(socket: net.Socket): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Create a raw socket connection to an RSD service.
|
|
41
|
+
* Optionally performs RSD handshake if performHandshake is true.
|
|
42
|
+
* @param host - Hostname to connect to
|
|
43
|
+
* @param port - Port number
|
|
44
|
+
* @param options - Connection options
|
|
45
|
+
* @returns Connected socket (with handshake completed if requested)
|
|
46
|
+
*/
|
|
47
|
+
export declare function createRawServiceSocket(host: string, port: number, options?: {
|
|
48
|
+
timeoutMs?: number;
|
|
49
|
+
performHandshake?: boolean;
|
|
50
|
+
}): Promise<net.Socket>;
|
|
39
51
|
export declare function nextReadChunkSize(left: bigint | number): number;
|
|
40
52
|
/**
|
|
41
53
|
* Convert nanoseconds to milliseconds for Date construction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/afc/codec.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAK3B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAE5D;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGxC;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAiBR;AAyFD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,CAAC,EAAE,MAAM,EACT,SAAS,SAAQ,GAChB,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAiB1E;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,GAAG,CAAC,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAkBtB;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAwB,EACjC,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBvD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWzE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,MAAM,CAER;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAKnE;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,GAAG,CAAC,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE"}
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/afc/codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -249,6 +249,32 @@ export async function rsdHandshakeForRawService(socket) {
|
|
|
249
249
|
throw new Error(`Invalid StartService response: ${JSON.stringify(second)}`);
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Create a raw socket connection to an RSD service.
|
|
254
|
+
* Optionally performs RSD handshake if performHandshake is true.
|
|
255
|
+
* @param host - Hostname to connect to
|
|
256
|
+
* @param port - Port number
|
|
257
|
+
* @param options - Connection options
|
|
258
|
+
* @returns Connected socket (with handshake completed if requested)
|
|
259
|
+
*/
|
|
260
|
+
export async function createRawServiceSocket(host, port, options = {}) {
|
|
261
|
+
const { timeoutMs = 10000, performHandshake = true } = options;
|
|
262
|
+
const socket = await new Promise((resolve, reject) => {
|
|
263
|
+
const conn = net.createConnection({ host, port }, () => {
|
|
264
|
+
conn.setKeepAlive(true);
|
|
265
|
+
resolve(conn);
|
|
266
|
+
});
|
|
267
|
+
conn.setTimeout(timeoutMs, () => {
|
|
268
|
+
conn.destroy();
|
|
269
|
+
reject(new Error('Connection timed out'));
|
|
270
|
+
});
|
|
271
|
+
conn.on('error', reject);
|
|
272
|
+
});
|
|
273
|
+
if (performHandshake) {
|
|
274
|
+
await rsdHandshakeForRawService(socket);
|
|
275
|
+
}
|
|
276
|
+
return socket;
|
|
277
|
+
}
|
|
252
278
|
export function nextReadChunkSize(left) {
|
|
253
279
|
const leftNum = typeof left === 'bigint' ? Number(left) : left;
|
|
254
280
|
return leftNum;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/afc/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/afc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { minimatch } from 'minimatch';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import fsp from 'node:fs/promises';
|
|
4
|
-
import net from 'node:net';
|
|
5
4
|
import path from 'node:path';
|
|
6
5
|
import { Readable, Writable } from 'node:stream';
|
|
7
6
|
import { pipeline } from 'node:stream/promises';
|
|
8
7
|
import { getLogger } from '../../../lib/logger.js';
|
|
9
|
-
import { buildClosePayload, buildFopenPayload, buildMkdirPayload, buildRemovePayload, buildRenamePayload, buildStatPayload, nanosecondsToMilliseconds, parseCStringArray, parseKeyValueNullList, readAfcResponse,
|
|
8
|
+
import { buildClosePayload, buildFopenPayload, buildMkdirPayload, buildRemovePayload, buildRenamePayload, buildStatPayload, createRawServiceSocket, nanosecondsToMilliseconds, parseCStringArray, parseKeyValueNullList, readAfcResponse, sendAfcPacket, writeUInt64LE, } from './codec.js';
|
|
10
9
|
import { AFC_FOPEN_TEXTUAL_MODES, AFC_WRITE_THIS_LENGTH } from './constants.js';
|
|
11
10
|
import { AfcError, AfcFileMode, AfcOpcode } from './enums.js';
|
|
12
11
|
import { createAfcReadStream, createAfcWriteStream } from './stream-utils.js';
|
|
@@ -502,19 +501,9 @@ export class AfcService {
|
|
|
502
501
|
return this.socket;
|
|
503
502
|
}
|
|
504
503
|
const [host, rsdPort] = this.address;
|
|
505
|
-
this.socket = await
|
|
506
|
-
|
|
507
|
-
s.setTimeout(0);
|
|
508
|
-
s.setKeepAlive(true);
|
|
509
|
-
resolve(s);
|
|
510
|
-
});
|
|
511
|
-
s.once('error', reject);
|
|
512
|
-
s.setTimeout(30000, () => {
|
|
513
|
-
s.destroy();
|
|
514
|
-
reject(new Error('AFC connect timed out'));
|
|
515
|
-
});
|
|
504
|
+
this.socket = await createRawServiceSocket(host, rsdPort, {
|
|
505
|
+
timeoutMs: 30000,
|
|
516
506
|
});
|
|
517
|
-
await rsdHandshakeForRawService(this.socket);
|
|
518
507
|
log.debug('RSD handshake complete; switching to raw AFC');
|
|
519
508
|
return this.socket;
|
|
520
509
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { CrashReportsPullOptions } from '../../../lib/types.js';
|
|
2
|
+
import { BaseService } from '../base-service.js';
|
|
3
|
+
/**
|
|
4
|
+
* CrashReportsService provides an API to:
|
|
5
|
+
* - List crash reports on the device (ls)
|
|
6
|
+
* - Pull crash reports from the device to the local machine (pull)
|
|
7
|
+
* - Clear all crash reports from the device (clear)
|
|
8
|
+
* - Flush crash report products into CrashReports directory (flush)
|
|
9
|
+
*
|
|
10
|
+
* This service uses the com.apple.crashreportcopymobile.shim.remote for AFC operations
|
|
11
|
+
* and com.apple.crashreportmover.shim.remote for flush operations.
|
|
12
|
+
*/
|
|
13
|
+
export declare class CrashReportsService extends BaseService {
|
|
14
|
+
static readonly RSD_COPY_MOBILE_NAME = "com.apple.crashreportcopymobile.shim.remote";
|
|
15
|
+
static readonly RSD_CRASH_MOVER_NAME = "com.apple.crashreportmover.shim.remote";
|
|
16
|
+
private readonly afc;
|
|
17
|
+
private readonly crashMoverAddress;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new CrashReportsService instance
|
|
20
|
+
* @param afcAddress Tuple containing [host, port] for the AFC service
|
|
21
|
+
* @param crashMoverAddress Tuple containing [host, port] for the crash mover service
|
|
22
|
+
*/
|
|
23
|
+
constructor(afcAddress: [string, number], crashMoverAddress: [string, number]);
|
|
24
|
+
/**
|
|
25
|
+
* List files and folders in the crash report's directory.
|
|
26
|
+
* @param dirPath Path to list, relative to the crash report's directory. Defaults to "/"
|
|
27
|
+
* @param depth Listing depth. 1 for immediate children, -1 (or any negative number) for infinite depth
|
|
28
|
+
* @returns List of file paths listed
|
|
29
|
+
*/
|
|
30
|
+
ls(dirPath?: string, depth?: number): Promise<string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Pull crash reports from the device to the local machine.
|
|
33
|
+
* @param out Local directory path
|
|
34
|
+
* @param entry Remote path on device, defaults to "/"
|
|
35
|
+
* @param options Pull options (erase, match pattern)
|
|
36
|
+
*/
|
|
37
|
+
pull(out: string, entry?: string, options?: CrashReportsPullOptions): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Clear all crash reports from the device.
|
|
40
|
+
* Removes all files and folders from the crash reports directory.
|
|
41
|
+
* @throws Error if some items could not be deleted (except for auto-created paths)
|
|
42
|
+
*/
|
|
43
|
+
clear(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Trigger com.apple.crashreportmover to flush all products into CrashReports directory
|
|
46
|
+
*/
|
|
47
|
+
flush(): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Close the service and release resources
|
|
50
|
+
*/
|
|
51
|
+
close(): void;
|
|
52
|
+
}
|
|
53
|
+
export default CrashReportsService;
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/crash-reports/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,iDACY;IAChD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,4CACO;IAE3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD;;;;OAIG;gBAED,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAOrC;;;;;OAKG;IACG,EAAE,CAAC,OAAO,SAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BrD;;;;;OAKG;IACG,IAAI,CACR,GAAG,EAAE,MAAM,EACX,KAAK,SAAM,EACX,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import posixpath from 'node:path/posix';
|
|
3
|
+
import { getLogger } from '../../../lib/logger.js';
|
|
4
|
+
import { createRawServiceSocket, readExact } from '../afc/codec.js';
|
|
5
|
+
import { AfcService } from '../afc/index.js';
|
|
6
|
+
import { BaseService } from '../base-service.js';
|
|
7
|
+
const log = getLogger('CrashReportsService');
|
|
8
|
+
/**
|
|
9
|
+
* Path that is sometimes auto-created after deletion
|
|
10
|
+
*/
|
|
11
|
+
const APPSTORED_PATH = '/com.apple.appstored';
|
|
12
|
+
/**
|
|
13
|
+
* CrashReportsService provides an API to:
|
|
14
|
+
* - List crash reports on the device (ls)
|
|
15
|
+
* - Pull crash reports from the device to the local machine (pull)
|
|
16
|
+
* - Clear all crash reports from the device (clear)
|
|
17
|
+
* - Flush crash report products into CrashReports directory (flush)
|
|
18
|
+
*
|
|
19
|
+
* This service uses the com.apple.crashreportcopymobile.shim.remote for AFC operations
|
|
20
|
+
* and com.apple.crashreportmover.shim.remote for flush operations.
|
|
21
|
+
*/
|
|
22
|
+
export class CrashReportsService extends BaseService {
|
|
23
|
+
static RSD_COPY_MOBILE_NAME = 'com.apple.crashreportcopymobile.shim.remote';
|
|
24
|
+
static RSD_CRASH_MOVER_NAME = 'com.apple.crashreportmover.shim.remote';
|
|
25
|
+
afc;
|
|
26
|
+
crashMoverAddress;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new CrashReportsService instance
|
|
29
|
+
* @param afcAddress Tuple containing [host, port] for the AFC service
|
|
30
|
+
* @param crashMoverAddress Tuple containing [host, port] for the crash mover service
|
|
31
|
+
*/
|
|
32
|
+
constructor(afcAddress, crashMoverAddress) {
|
|
33
|
+
super(afcAddress);
|
|
34
|
+
this.afc = new AfcService(afcAddress, true);
|
|
35
|
+
this.crashMoverAddress = crashMoverAddress;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* List files and folders in the crash report's directory.
|
|
39
|
+
* @param dirPath Path to list, relative to the crash report's directory. Defaults to "/"
|
|
40
|
+
* @param depth Listing depth. 1 for immediate children, -1 (or any negative number) for infinite depth
|
|
41
|
+
* @returns List of file paths listed
|
|
42
|
+
*/
|
|
43
|
+
async ls(dirPath = '/', depth = 1) {
|
|
44
|
+
log.debug(`Listing crash reports at path: ${dirPath}, depth: ${depth}`);
|
|
45
|
+
if (depth === 0) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const results = [];
|
|
49
|
+
const entries = await this.afc.listdir(dirPath);
|
|
50
|
+
for (const entry of entries) {
|
|
51
|
+
const entryPath = posixpath.join(dirPath, entry);
|
|
52
|
+
results.push(entryPath);
|
|
53
|
+
if (depth !== 1) {
|
|
54
|
+
try {
|
|
55
|
+
if (await this.afc.isdir(entryPath)) {
|
|
56
|
+
const newDepth = depth < 0 ? -1 : depth - 1;
|
|
57
|
+
const subEntries = await this.ls(entryPath, newDepth);
|
|
58
|
+
results.push(...subEntries);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Skip entries we can't access
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return results;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Pull crash reports from the device to the local machine.
|
|
70
|
+
* @param out Local directory path
|
|
71
|
+
* @param entry Remote path on device, defaults to "/"
|
|
72
|
+
* @param options Pull options (erase, match pattern)
|
|
73
|
+
*/
|
|
74
|
+
async pull(out, entry = '/', options) {
|
|
75
|
+
const { erase = false, match } = options ?? {};
|
|
76
|
+
log.debug(`Pulling crash reports from '${entry}' to '${out}', erase: ${erase}`);
|
|
77
|
+
await fs.mkdir(out, { recursive: true });
|
|
78
|
+
await this.afc.pull(entry, out, {
|
|
79
|
+
recursive: true,
|
|
80
|
+
match,
|
|
81
|
+
callback: erase
|
|
82
|
+
? async (remotePath) => void (await this.afc.rmSingle(remotePath, true))
|
|
83
|
+
: undefined,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Clear all crash reports from the device.
|
|
88
|
+
* Removes all files and folders from the crash reports directory.
|
|
89
|
+
* @throws Error if some items could not be deleted (except for auto-created paths)
|
|
90
|
+
*/
|
|
91
|
+
async clear() {
|
|
92
|
+
log.debug('Clearing all crash reports');
|
|
93
|
+
const entries = await this.afc.listdir('/');
|
|
94
|
+
const nonDeletedItems = [];
|
|
95
|
+
for (const entry of entries) {
|
|
96
|
+
const fullPath = posixpath.join('/', entry);
|
|
97
|
+
const failedPaths = await this.afc.rm(fullPath, true);
|
|
98
|
+
nonDeletedItems.push(...failedPaths);
|
|
99
|
+
}
|
|
100
|
+
// Filter out special paths that are auto-created
|
|
101
|
+
const realFailures = nonDeletedItems.filter((item) => item !== APPSTORED_PATH);
|
|
102
|
+
if (realFailures.length > 0) {
|
|
103
|
+
throw new Error(`Failed to clear crash reports directory, undeleted items: ${realFailures.join(', ')}`);
|
|
104
|
+
}
|
|
105
|
+
log.debug('Successfully cleared all crash reports');
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Trigger com.apple.crashreportmover to flush all products into CrashReports directory
|
|
109
|
+
*/
|
|
110
|
+
async flush() {
|
|
111
|
+
log.debug('Flushing crash reports');
|
|
112
|
+
const socket = await createRawServiceSocket(this.crashMoverAddress[0], this.crashMoverAddress[1]);
|
|
113
|
+
try {
|
|
114
|
+
const ack = await readExact(socket, 5, 10000);
|
|
115
|
+
const expectedAck = Buffer.from('ping\0', 'utf8');
|
|
116
|
+
if (!ack.equals(expectedAck)) {
|
|
117
|
+
throw new Error(`Unexpected flush acknowledgment. Expected: ${expectedAck.toString('hex')}, Got: ${ack.toString('hex')}`);
|
|
118
|
+
}
|
|
119
|
+
log.debug('Successfully flushed crash reports');
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
socket.destroy();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Close the service and release resources
|
|
127
|
+
*/
|
|
128
|
+
close() {
|
|
129
|
+
log.debug('Closing CrashReportsService');
|
|
130
|
+
try {
|
|
131
|
+
this.afc.close();
|
|
132
|
+
}
|
|
133
|
+
catch { }
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export default CrashReportsService;
|
package/build/src/services.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
|
|
2
|
-
import type { DVTServiceWithConnection, DiagnosticsServiceWithConnection, MisagentServiceWithConnection, MobileConfigServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, SyslogService as SyslogServiceType, WebInspectorServiceWithConnection } from './lib/types.js';
|
|
2
|
+
import type { CrashReportsServiceWithConnection, DVTServiceWithConnection, DiagnosticsServiceWithConnection, MisagentServiceWithConnection, MobileConfigServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, SyslogService as SyslogServiceType, WebInspectorServiceWithConnection } from './lib/types.js';
|
|
3
3
|
import AfcService from './services/ios/afc/index.js';
|
|
4
4
|
export declare function startDiagnosticsService(udid: string): Promise<DiagnosticsServiceWithConnection>;
|
|
5
5
|
export declare function startNotificationProxyService(udid: string): Promise<NotificationProxyServiceWithConnection>;
|
|
@@ -14,6 +14,11 @@ export declare function startSyslogService(udid: string): Promise<SyslogServiceT
|
|
|
14
14
|
* Resolves the AFC service port via RemoteXPC and returns a ready-to-use AfcService instance.
|
|
15
15
|
*/
|
|
16
16
|
export declare function startAfcService(udid: string): Promise<AfcService>;
|
|
17
|
+
/**
|
|
18
|
+
* Start CrashReportsService over RemoteXPC shim.
|
|
19
|
+
* Resolves the crash report copy mobile and crash mover service ports via RemoteXPC.
|
|
20
|
+
*/
|
|
21
|
+
export declare function startCrashReportsService(udid: string): Promise<CrashReportsServiceWithConnection>;
|
|
17
22
|
export declare function startWebInspectorService(udid: string): Promise<WebInspectorServiceWithConnection>;
|
|
18
23
|
export declare function startDVTService(udid: string): Promise<DVTServiceWithConnection>;
|
|
19
24
|
export declare function createRemoteXPCConnection(udid: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,KAAK,EACV,wBAAwB,EACxB,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,uCAAuC,EACvC,sCAAsC,EACtC,mCAAmC,EACnC,gCAAgC,EAChC,aAAa,IAAI,iBAAiB,EAClC,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,UAAU,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,KAAK,EACV,iCAAiC,EACjC,wBAAwB,EACxB,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,uCAAuC,EACvC,sCAAsC,EACtC,mCAAmC,EACnC,gCAAgC,EAChC,aAAa,IAAI,iBAAiB,EAClC,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,UAAU,MAAM,6BAA6B,CAAC;AAwBrD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gCAAgC,CAAC,CAY3C;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,sCAAsC,CAAC,CAYjD;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iCAAiC,CAAC,CAY5C;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,uCAAuC,CAAC,CAYlD;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gCAAgC,CAAC,CAY3C;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,6BAA6B,CAAC,CAYxC;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mCAAmC,CAAC,CAY9C;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAG5B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAOvE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iCAAiC,CAAC,CAiB5C;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iCAAiC,CAAC,CAY5C;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,wBAAwB,CAAC,CAqCnC;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM;;;;;;;;GAO3D"}
|
package/build/src/services.js
CHANGED
|
@@ -3,6 +3,7 @@ import { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
|
|
|
3
3
|
import { TunnelManager } from './lib/tunnel/index.js';
|
|
4
4
|
import { TunnelApiClient } from './lib/tunnel/tunnel-api-client.js';
|
|
5
5
|
import AfcService from './services/ios/afc/index.js';
|
|
6
|
+
import { CrashReportsService } from './services/ios/crash-reports/index.js';
|
|
6
7
|
import DiagnosticsService from './services/ios/diagnostic-service/index.js';
|
|
7
8
|
import { DVTSecureSocketProxyService } from './services/ios/dvt/index.js';
|
|
8
9
|
import { ApplicationListing } from './services/ios/dvt/instruments/application-listing.js';
|
|
@@ -116,6 +117,19 @@ export async function startAfcService(udid) {
|
|
|
116
117
|
parseInt(afcDescriptor.port, 10),
|
|
117
118
|
]);
|
|
118
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Start CrashReportsService over RemoteXPC shim.
|
|
122
|
+
* Resolves the crash report copy mobile and crash mover service ports via RemoteXPC.
|
|
123
|
+
*/
|
|
124
|
+
export async function startCrashReportsService(udid) {
|
|
125
|
+
const { remoteXPC, tunnelConnection } = await createRemoteXPCConnection(udid);
|
|
126
|
+
const copyMobileDescriptor = remoteXPC.findService(CrashReportsService.RSD_COPY_MOBILE_NAME);
|
|
127
|
+
const crashMoverDescriptor = remoteXPC.findService(CrashReportsService.RSD_CRASH_MOVER_NAME);
|
|
128
|
+
return {
|
|
129
|
+
remoteXPC: remoteXPC,
|
|
130
|
+
crashReportsService: new CrashReportsService([tunnelConnection.host, parseInt(copyMobileDescriptor.port, 10)], [tunnelConnection.host, parseInt(crashMoverDescriptor.port, 10)]),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
119
133
|
export async function startWebInspectorService(udid) {
|
|
120
134
|
const { remoteXPC, tunnelConnection } = await createRemoteXPCConnection(udid);
|
|
121
135
|
const webInspectorService = remoteXPC.findService(WebInspectorService.RSD_SERVICE_NAME);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-ios-remotexpc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"main": "build/src/index.js",
|
|
5
5
|
"types": "build/src/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"test:webinspector": "mocha test/integration/webinspector-test.ts --exit --timeout 1m",
|
|
40
40
|
"test:misagent": "mocha test/integration/misagent-service-test.ts --exit --timeout 1m",
|
|
41
41
|
"test:afc": "mocha test/integration/afc-test.ts --exit --timeout 1m",
|
|
42
|
+
"test:crash-reports": "mocha test/integration/crash-reports-test.ts --exit --timeout 1m",
|
|
42
43
|
"test:power-assertion": "mocha test/integration/power-assertion-test.ts --exit --timeout 1m",
|
|
43
44
|
"test:dvt": "mocha test/integration/dvt-service-test.ts --exit --timeout 1m",
|
|
44
45
|
"test:dvt:graphics": "mocha test/integration/dvt_instruments/graphics-test.ts --exit --timeout 1m",
|
package/src/index.ts
CHANGED
|
@@ -14,6 +14,9 @@ import * as Services from './services.js';
|
|
|
14
14
|
import { startCoreDeviceProxy } from './services/ios/tunnel-service/index.js';
|
|
15
15
|
|
|
16
16
|
export type {
|
|
17
|
+
CrashReportsService,
|
|
18
|
+
CrashReportsPullOptions,
|
|
19
|
+
CrashReportsServiceWithConnection,
|
|
17
20
|
DiagnosticsService,
|
|
18
21
|
MobileImageMounterService,
|
|
19
22
|
NotificationProxyService,
|
package/src/lib/types.ts
CHANGED
|
@@ -1495,3 +1495,73 @@ export interface MisagentServiceWithConnection {
|
|
|
1495
1495
|
misagentService: MisagentService;
|
|
1496
1496
|
remoteXPC: RemoteXpcConnection;
|
|
1497
1497
|
}
|
|
1498
|
+
|
|
1499
|
+
/**
|
|
1500
|
+
* Options for pulling crash reports from device to local
|
|
1501
|
+
*/
|
|
1502
|
+
export interface CrashReportsPullOptions {
|
|
1503
|
+
/**
|
|
1504
|
+
* If true, deletes crash reports from the remote device after pulling to local.
|
|
1505
|
+
* @default false
|
|
1506
|
+
*/
|
|
1507
|
+
erase?: boolean;
|
|
1508
|
+
/**
|
|
1509
|
+
* Glob pattern to filter crash reports (e.g., '*.ips', 'Siri*', '**\/*.crash')
|
|
1510
|
+
*/
|
|
1511
|
+
match?: string;
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
/**
|
|
1515
|
+
* CrashReportsService provides an API to manage crash reports on iOS devices
|
|
1516
|
+
*/
|
|
1517
|
+
export interface CrashReportsService extends BaseService {
|
|
1518
|
+
/**
|
|
1519
|
+
* List files and folders in the crash report's directory
|
|
1520
|
+
*
|
|
1521
|
+
* Crash reports are primarily stored as .ips files, which contain detailed information about
|
|
1522
|
+
* app crashes, including stack traces, thread states, and device information.
|
|
1523
|
+
* In addition to .ips files, the crash reports directory may contain:
|
|
1524
|
+
* - Sysdiagnose tarballs (comprehensive system diagnostic archives)
|
|
1525
|
+
* - Special directories like /Retired, /Cloud, /Assistant, etc.
|
|
1526
|
+
*
|
|
1527
|
+
* For details on the .ips file format, see:
|
|
1528
|
+
* https://developer.apple.com/documentation/xcode/analyzing-a-crash-report
|
|
1529
|
+
*
|
|
1530
|
+
* @param dirPath Path to list, defaults to "/"
|
|
1531
|
+
* @param depth Listing depth: 1 for immediate children, -1 for infinite
|
|
1532
|
+
* @returns List of file paths (e.g., .ips files, sysdiagnose tarballs, directories like /Retired, /Cloud, etc.)
|
|
1533
|
+
*/
|
|
1534
|
+
ls(dirPath?: string, depth?: number): Promise<string[]>;
|
|
1535
|
+
|
|
1536
|
+
/**
|
|
1537
|
+
* Pull crash reports from device to local machine
|
|
1538
|
+
* @param out Local directory path
|
|
1539
|
+
* @param entry Remote path on device, defaults to "/"
|
|
1540
|
+
* @param options Pull options (erase, match pattern)
|
|
1541
|
+
*/
|
|
1542
|
+
pull(
|
|
1543
|
+
out: string,
|
|
1544
|
+
entry?: string,
|
|
1545
|
+
options?: CrashReportsPullOptions,
|
|
1546
|
+
): Promise<void>;
|
|
1547
|
+
|
|
1548
|
+
/**
|
|
1549
|
+
* Clear all crash reports from the device
|
|
1550
|
+
*/
|
|
1551
|
+
clear(): Promise<void>;
|
|
1552
|
+
|
|
1553
|
+
/**
|
|
1554
|
+
* Flush pending crash reports into CrashReports directory
|
|
1555
|
+
*/
|
|
1556
|
+
flush(): Promise<void>;
|
|
1557
|
+
|
|
1558
|
+
/**
|
|
1559
|
+
* Close the service and release resources
|
|
1560
|
+
*/
|
|
1561
|
+
close(): void;
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
export interface CrashReportsServiceWithConnection {
|
|
1565
|
+
crashReportsService: CrashReportsService;
|
|
1566
|
+
remoteXPC: RemoteXpcConnection;
|
|
1567
|
+
}
|
package/src/services/index.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
startTunnelRegistryServer,
|
|
4
4
|
} from '../lib/tunnel/tunnel-registry-server.js';
|
|
5
5
|
import * as afc from './ios/afc/index.js';
|
|
6
|
+
import * as crashReports from './ios/crash-reports/index.js';
|
|
6
7
|
import * as diagnostics from './ios/diagnostic-service/index.js';
|
|
7
8
|
import * as mobileImageMounter from './ios/mobile-image-mounter/index.js';
|
|
8
9
|
import * as powerAssertion from './ios/power-assertion/index.js';
|
|
@@ -11,6 +12,7 @@ import * as tunnel from './ios/tunnel-service/index.js';
|
|
|
11
12
|
import * as webinspector from './ios/webinspector/index.js';
|
|
12
13
|
|
|
13
14
|
export {
|
|
15
|
+
crashReports,
|
|
14
16
|
diagnostics,
|
|
15
17
|
mobileImageMounter,
|
|
16
18
|
powerAssertion,
|
|
@@ -350,6 +350,40 @@ export async function rsdHandshakeForRawService(
|
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
+
/**
|
|
354
|
+
* Create a raw socket connection to an RSD service.
|
|
355
|
+
* Optionally performs RSD handshake if performHandshake is true.
|
|
356
|
+
* @param host - Hostname to connect to
|
|
357
|
+
* @param port - Port number
|
|
358
|
+
* @param options - Connection options
|
|
359
|
+
* @returns Connected socket (with handshake completed if requested)
|
|
360
|
+
*/
|
|
361
|
+
export async function createRawServiceSocket(
|
|
362
|
+
host: string,
|
|
363
|
+
port: number,
|
|
364
|
+
options: { timeoutMs?: number; performHandshake?: boolean } = {},
|
|
365
|
+
): Promise<net.Socket> {
|
|
366
|
+
const { timeoutMs = 10000, performHandshake = true } = options;
|
|
367
|
+
|
|
368
|
+
const socket = await new Promise<net.Socket>((resolve, reject) => {
|
|
369
|
+
const conn = net.createConnection({ host, port }, () => {
|
|
370
|
+
conn.setKeepAlive(true);
|
|
371
|
+
resolve(conn);
|
|
372
|
+
});
|
|
373
|
+
conn.setTimeout(timeoutMs, () => {
|
|
374
|
+
conn.destroy();
|
|
375
|
+
reject(new Error('Connection timed out'));
|
|
376
|
+
});
|
|
377
|
+
conn.on('error', reject);
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
if (performHandshake) {
|
|
381
|
+
await rsdHandshakeForRawService(socket);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
return socket;
|
|
385
|
+
}
|
|
386
|
+
|
|
353
387
|
export function nextReadChunkSize(left: bigint | number): number {
|
|
354
388
|
const leftNum = typeof left === 'bigint' ? Number(left) : left;
|
|
355
389
|
return leftNum;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { minimatch } from 'minimatch';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import fsp from 'node:fs/promises';
|
|
4
|
-
import net from 'node:net';
|
|
4
|
+
import type net from 'node:net';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { Readable, Writable } from 'node:stream';
|
|
7
7
|
import { pipeline } from 'node:stream/promises';
|
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
buildRemovePayload,
|
|
15
15
|
buildRenamePayload,
|
|
16
16
|
buildStatPayload,
|
|
17
|
+
createRawServiceSocket,
|
|
17
18
|
nanosecondsToMilliseconds,
|
|
18
19
|
parseCStringArray,
|
|
19
20
|
parseKeyValueNullList,
|
|
20
21
|
readAfcResponse,
|
|
21
|
-
rsdHandshakeForRawService,
|
|
22
22
|
sendAfcPacket,
|
|
23
23
|
writeUInt64LE,
|
|
24
24
|
} from './codec.js';
|
|
@@ -690,20 +690,9 @@ export class AfcService {
|
|
|
690
690
|
}
|
|
691
691
|
const [host, rsdPort] = this.address;
|
|
692
692
|
|
|
693
|
-
this.socket = await
|
|
694
|
-
|
|
695
|
-
s.setTimeout(0);
|
|
696
|
-
s.setKeepAlive(true);
|
|
697
|
-
resolve(s);
|
|
698
|
-
});
|
|
699
|
-
s.once('error', reject);
|
|
700
|
-
s.setTimeout(30000, () => {
|
|
701
|
-
s.destroy();
|
|
702
|
-
reject(new Error('AFC connect timed out'));
|
|
703
|
-
});
|
|
693
|
+
this.socket = await createRawServiceSocket(host, rsdPort, {
|
|
694
|
+
timeoutMs: 30000,
|
|
704
695
|
});
|
|
705
|
-
|
|
706
|
-
await rsdHandshakeForRawService(this.socket);
|
|
707
696
|
log.debug('RSD handshake complete; switching to raw AFC');
|
|
708
697
|
|
|
709
698
|
return this.socket;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import posixpath from 'node:path/posix';
|
|
3
|
+
|
|
4
|
+
import { getLogger } from '../../../lib/logger.js';
|
|
5
|
+
import type { CrashReportsPullOptions } from '../../../lib/types.js';
|
|
6
|
+
import { createRawServiceSocket, readExact } from '../afc/codec.js';
|
|
7
|
+
import { AfcService } from '../afc/index.js';
|
|
8
|
+
import { BaseService } from '../base-service.js';
|
|
9
|
+
|
|
10
|
+
const log = getLogger('CrashReportsService');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Path that is sometimes auto-created after deletion
|
|
14
|
+
*/
|
|
15
|
+
const APPSTORED_PATH = '/com.apple.appstored';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* CrashReportsService provides an API to:
|
|
19
|
+
* - List crash reports on the device (ls)
|
|
20
|
+
* - Pull crash reports from the device to the local machine (pull)
|
|
21
|
+
* - Clear all crash reports from the device (clear)
|
|
22
|
+
* - Flush crash report products into CrashReports directory (flush)
|
|
23
|
+
*
|
|
24
|
+
* This service uses the com.apple.crashreportcopymobile.shim.remote for AFC operations
|
|
25
|
+
* and com.apple.crashreportmover.shim.remote for flush operations.
|
|
26
|
+
*/
|
|
27
|
+
export class CrashReportsService extends BaseService {
|
|
28
|
+
static readonly RSD_COPY_MOBILE_NAME =
|
|
29
|
+
'com.apple.crashreportcopymobile.shim.remote';
|
|
30
|
+
static readonly RSD_CRASH_MOVER_NAME =
|
|
31
|
+
'com.apple.crashreportmover.shim.remote';
|
|
32
|
+
|
|
33
|
+
private readonly afc: AfcService;
|
|
34
|
+
private readonly crashMoverAddress: [string, number];
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new CrashReportsService instance
|
|
38
|
+
* @param afcAddress Tuple containing [host, port] for the AFC service
|
|
39
|
+
* @param crashMoverAddress Tuple containing [host, port] for the crash mover service
|
|
40
|
+
*/
|
|
41
|
+
constructor(
|
|
42
|
+
afcAddress: [string, number],
|
|
43
|
+
crashMoverAddress: [string, number],
|
|
44
|
+
) {
|
|
45
|
+
super(afcAddress);
|
|
46
|
+
this.afc = new AfcService(afcAddress, true);
|
|
47
|
+
this.crashMoverAddress = crashMoverAddress;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* List files and folders in the crash report's directory.
|
|
52
|
+
* @param dirPath Path to list, relative to the crash report's directory. Defaults to "/"
|
|
53
|
+
* @param depth Listing depth. 1 for immediate children, -1 (or any negative number) for infinite depth
|
|
54
|
+
* @returns List of file paths listed
|
|
55
|
+
*/
|
|
56
|
+
async ls(dirPath = '/', depth = 1): Promise<string[]> {
|
|
57
|
+
log.debug(`Listing crash reports at path: ${dirPath}, depth: ${depth}`);
|
|
58
|
+
|
|
59
|
+
if (depth === 0) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const results: string[] = [];
|
|
64
|
+
const entries = await this.afc.listdir(dirPath);
|
|
65
|
+
|
|
66
|
+
for (const entry of entries) {
|
|
67
|
+
const entryPath = posixpath.join(dirPath, entry);
|
|
68
|
+
results.push(entryPath);
|
|
69
|
+
|
|
70
|
+
if (depth !== 1) {
|
|
71
|
+
try {
|
|
72
|
+
if (await this.afc.isdir(entryPath)) {
|
|
73
|
+
const newDepth = depth < 0 ? -1 : depth - 1;
|
|
74
|
+
const subEntries = await this.ls(entryPath, newDepth);
|
|
75
|
+
results.push(...subEntries);
|
|
76
|
+
}
|
|
77
|
+
} catch {
|
|
78
|
+
// Skip entries we can't access
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return results;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Pull crash reports from the device to the local machine.
|
|
88
|
+
* @param out Local directory path
|
|
89
|
+
* @param entry Remote path on device, defaults to "/"
|
|
90
|
+
* @param options Pull options (erase, match pattern)
|
|
91
|
+
*/
|
|
92
|
+
async pull(
|
|
93
|
+
out: string,
|
|
94
|
+
entry = '/',
|
|
95
|
+
options?: CrashReportsPullOptions,
|
|
96
|
+
): Promise<void> {
|
|
97
|
+
const { erase = false, match } = options ?? {};
|
|
98
|
+
|
|
99
|
+
log.debug(
|
|
100
|
+
`Pulling crash reports from '${entry}' to '${out}', erase: ${erase}`,
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
await fs.mkdir(out, { recursive: true });
|
|
104
|
+
|
|
105
|
+
await this.afc.pull(entry, out, {
|
|
106
|
+
recursive: true,
|
|
107
|
+
match,
|
|
108
|
+
callback: erase
|
|
109
|
+
? async (remotePath) => void (await this.afc.rmSingle(remotePath, true))
|
|
110
|
+
: undefined,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Clear all crash reports from the device.
|
|
116
|
+
* Removes all files and folders from the crash reports directory.
|
|
117
|
+
* @throws Error if some items could not be deleted (except for auto-created paths)
|
|
118
|
+
*/
|
|
119
|
+
async clear(): Promise<void> {
|
|
120
|
+
log.debug('Clearing all crash reports');
|
|
121
|
+
|
|
122
|
+
const entries = await this.afc.listdir('/');
|
|
123
|
+
const nonDeletedItems: string[] = [];
|
|
124
|
+
|
|
125
|
+
for (const entry of entries) {
|
|
126
|
+
const fullPath = posixpath.join('/', entry);
|
|
127
|
+
const failedPaths = await this.afc.rm(fullPath, true);
|
|
128
|
+
nonDeletedItems.push(...failedPaths);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Filter out special paths that are auto-created
|
|
132
|
+
const realFailures = nonDeletedItems.filter(
|
|
133
|
+
(item) => item !== APPSTORED_PATH,
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
if (realFailures.length > 0) {
|
|
137
|
+
throw new Error(
|
|
138
|
+
`Failed to clear crash reports directory, undeleted items: ${realFailures.join(', ')}`,
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
log.debug('Successfully cleared all crash reports');
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Trigger com.apple.crashreportmover to flush all products into CrashReports directory
|
|
147
|
+
*/
|
|
148
|
+
async flush(): Promise<void> {
|
|
149
|
+
log.debug('Flushing crash reports');
|
|
150
|
+
|
|
151
|
+
const socket = await createRawServiceSocket(
|
|
152
|
+
this.crashMoverAddress[0],
|
|
153
|
+
this.crashMoverAddress[1],
|
|
154
|
+
);
|
|
155
|
+
try {
|
|
156
|
+
const ack = await readExact(socket, 5, 10000);
|
|
157
|
+
const expectedAck = Buffer.from('ping\0', 'utf8');
|
|
158
|
+
if (!ack.equals(expectedAck)) {
|
|
159
|
+
throw new Error(
|
|
160
|
+
`Unexpected flush acknowledgment. Expected: ${expectedAck.toString('hex')}, Got: ${ack.toString('hex')}`,
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
log.debug('Successfully flushed crash reports');
|
|
164
|
+
} finally {
|
|
165
|
+
socket.destroy();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Close the service and release resources
|
|
171
|
+
*/
|
|
172
|
+
close(): void {
|
|
173
|
+
log.debug('Closing CrashReportsService');
|
|
174
|
+
try {
|
|
175
|
+
this.afc.close();
|
|
176
|
+
} catch {}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export default CrashReportsService;
|
package/src/services.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
|
|
|
4
4
|
import { TunnelManager } from './lib/tunnel/index.js';
|
|
5
5
|
import { TunnelApiClient } from './lib/tunnel/tunnel-api-client.js';
|
|
6
6
|
import type {
|
|
7
|
+
CrashReportsServiceWithConnection,
|
|
7
8
|
DVTServiceWithConnection,
|
|
8
9
|
DiagnosticsServiceWithConnection,
|
|
9
10
|
MisagentServiceWithConnection,
|
|
@@ -16,6 +17,7 @@ import type {
|
|
|
16
17
|
WebInspectorServiceWithConnection,
|
|
17
18
|
} from './lib/types.js';
|
|
18
19
|
import AfcService from './services/ios/afc/index.js';
|
|
20
|
+
import { CrashReportsService } from './services/ios/crash-reports/index.js';
|
|
19
21
|
import DiagnosticsService from './services/ios/diagnostic-service/index.js';
|
|
20
22
|
import { DVTSecureSocketProxyService } from './services/ios/dvt/index.js';
|
|
21
23
|
import { ApplicationListing } from './services/ios/dvt/instruments/application-listing.js';
|
|
@@ -170,6 +172,31 @@ export async function startAfcService(udid: string): Promise<AfcService> {
|
|
|
170
172
|
]);
|
|
171
173
|
}
|
|
172
174
|
|
|
175
|
+
/**
|
|
176
|
+
* Start CrashReportsService over RemoteXPC shim.
|
|
177
|
+
* Resolves the crash report copy mobile and crash mover service ports via RemoteXPC.
|
|
178
|
+
*/
|
|
179
|
+
export async function startCrashReportsService(
|
|
180
|
+
udid: string,
|
|
181
|
+
): Promise<CrashReportsServiceWithConnection> {
|
|
182
|
+
const { remoteXPC, tunnelConnection } = await createRemoteXPCConnection(udid);
|
|
183
|
+
|
|
184
|
+
const copyMobileDescriptor = remoteXPC.findService(
|
|
185
|
+
CrashReportsService.RSD_COPY_MOBILE_NAME,
|
|
186
|
+
);
|
|
187
|
+
const crashMoverDescriptor = remoteXPC.findService(
|
|
188
|
+
CrashReportsService.RSD_CRASH_MOVER_NAME,
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
return {
|
|
192
|
+
remoteXPC: remoteXPC as RemoteXpcConnection,
|
|
193
|
+
crashReportsService: new CrashReportsService(
|
|
194
|
+
[tunnelConnection.host, parseInt(copyMobileDescriptor.port, 10)],
|
|
195
|
+
[tunnelConnection.host, parseInt(crashMoverDescriptor.port, 10)],
|
|
196
|
+
),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
|
|
173
200
|
export async function startWebInspectorService(
|
|
174
201
|
udid: string,
|
|
175
202
|
): Promise<WebInspectorServiceWithConnection> {
|