appium-ios-remotexpc 0.20.0 → 0.21.1
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 +12 -0
- package/build/src/index.d.ts +2 -1
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +1 -0
- package/build/src/lib/types.d.ts +127 -0
- package/build/src/lib/types.d.ts.map +1 -1
- package/build/src/services/ios/dvt/instruments/network-monitor.d.ts +60 -0
- package/build/src/services/ios/dvt/instruments/network-monitor.d.ts.map +1 -0
- package/build/src/services/ios/dvt/instruments/network-monitor.js +157 -0
- package/build/src/services.d.ts.map +1 -1
- package/build/src/services.js +3 -0
- package/package.json +12 -3
- package/src/index.ts +7 -0
- package/src/lib/types.ts +136 -0
- package/src/services/ios/dvt/instruments/network-monitor.ts +240 -0
- package/src/services.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [0.21.1](https://github.com/appium/appium-ios-remotexpc/compare/v0.21.0...v0.21.1) (2025-12-19)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* **format:** use husky precommit hook to auto format before commits ([#116](https://github.com/appium/appium-ios-remotexpc/issues/116)) ([b5a0e64](https://github.com/appium/appium-ios-remotexpc/commit/b5a0e6481fd30c016d31a0f49a4402d035d794e0))
|
|
6
|
+
|
|
7
|
+
## [0.21.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.20.0...v0.21.0) (2025-12-19)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **dvt:** add network monitor DVT instrument ([#110](https://github.com/appium/appium-ios-remotexpc/issues/110)) ([7e31f74](https://github.com/appium/appium-ios-remotexpc/commit/7e31f74f05b75e37c9ce2397be5ef1bf53d06056))
|
|
12
|
+
|
|
1
13
|
## [0.20.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.19.0...v0.20.0) (2025-12-19)
|
|
2
14
|
|
|
3
15
|
### Features
|
package/build/src/index.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ 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, ProcessInfo, ConditionProfile, ConditionGroup, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DiagnosticsServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, MobileConfigServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, WebInspectorServiceWithConnection, MisagentServiceWithConnection, DVTServiceWithConnection, } from './lib/types.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';
|
|
9
9
|
export { PowerAssertionType } from './lib/types.js';
|
|
10
|
+
export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
|
|
10
11
|
export { STRONGBOX_CONTAINER_NAME, createUsbmux, Services, Usbmux, TunnelManager, PacketStreamServer, PacketStreamClient, createLockdownServiceByUDID, startCoreDeviceProxy, TunnelRegistryServer, startTunnelRegistryServer, };
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
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,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,
|
|
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"}
|
package/build/src/index.js
CHANGED
|
@@ -6,4 +6,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
8
|
export { PowerAssertionType } from './lib/types.js';
|
|
9
|
+
export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
|
|
9
10
|
export { STRONGBOX_CONTAINER_NAME, createUsbmux, Services, Usbmux, TunnelManager, PacketStreamServer, PacketStreamClient, createLockdownServiceByUDID, startCoreDeviceProxy, TunnelRegistryServer, startTunnelRegistryServer, };
|
package/build/src/lib/types.d.ts
CHANGED
|
@@ -512,6 +512,131 @@ export interface GraphicsService {
|
|
|
512
512
|
*/
|
|
513
513
|
messages(): AsyncGenerator<unknown, void, unknown>;
|
|
514
514
|
}
|
|
515
|
+
/**
|
|
516
|
+
* Network address information
|
|
517
|
+
*/
|
|
518
|
+
export interface NetworkAddress {
|
|
519
|
+
/** Length of the address structure */
|
|
520
|
+
len: number;
|
|
521
|
+
/** Address family (2 = IPv4, 30 = IPv6) */
|
|
522
|
+
family: number;
|
|
523
|
+
/** Port number */
|
|
524
|
+
port: number;
|
|
525
|
+
/** Parsed IP address string */
|
|
526
|
+
address: string;
|
|
527
|
+
/** Flow info (IPv6 only) */
|
|
528
|
+
flowInfo?: number;
|
|
529
|
+
/** Scope ID (IPv6 only) */
|
|
530
|
+
scopeId?: number;
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Event emitted when a network interface is detected
|
|
534
|
+
*/
|
|
535
|
+
export interface InterfaceDetectionEvent {
|
|
536
|
+
type: 0;
|
|
537
|
+
/** Interface index */
|
|
538
|
+
interfaceIndex: number;
|
|
539
|
+
/** Interface name (e.g., 'en0', 'lo0') */
|
|
540
|
+
name: string;
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Event emitted when a network connection is detected
|
|
544
|
+
*/
|
|
545
|
+
export interface ConnectionDetectionEvent {
|
|
546
|
+
type: 1;
|
|
547
|
+
/** Local address information */
|
|
548
|
+
localAddress: NetworkAddress;
|
|
549
|
+
/** Remote address information */
|
|
550
|
+
remoteAddress: NetworkAddress;
|
|
551
|
+
/** Interface index */
|
|
552
|
+
interfaceIndex: number;
|
|
553
|
+
/** Process ID owning the connection */
|
|
554
|
+
pid: number;
|
|
555
|
+
/** Receive buffer size */
|
|
556
|
+
recvBufferSize: number;
|
|
557
|
+
/** Receive buffer used */
|
|
558
|
+
recvBufferUsed: number;
|
|
559
|
+
/** Connection serial number */
|
|
560
|
+
serialNumber: number;
|
|
561
|
+
/** Connection kind/type */
|
|
562
|
+
kind: number;
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Event emitted when connection statistics are updated
|
|
566
|
+
*/
|
|
567
|
+
export interface ConnectionUpdateEvent {
|
|
568
|
+
type: 2;
|
|
569
|
+
/** Received packets count */
|
|
570
|
+
rxPackets: number;
|
|
571
|
+
/** Received bytes count */
|
|
572
|
+
rxBytes: number;
|
|
573
|
+
/** Transmitted packets count */
|
|
574
|
+
txPackets: number;
|
|
575
|
+
/** Transmitted bytes count */
|
|
576
|
+
txBytes: number;
|
|
577
|
+
/** Duplicate received packets */
|
|
578
|
+
rxDups: number;
|
|
579
|
+
/** Reserved field */
|
|
580
|
+
rx000: number;
|
|
581
|
+
/** Retransmitted packets */
|
|
582
|
+
txRetx: number;
|
|
583
|
+
/** Minimum round-trip time */
|
|
584
|
+
minRtt: number;
|
|
585
|
+
/** Average round-trip time */
|
|
586
|
+
avgRtt: number;
|
|
587
|
+
/** Connection serial number (links to ConnectionDetectionEvent) */
|
|
588
|
+
connectionSerial: number;
|
|
589
|
+
/** Timestamp */
|
|
590
|
+
time: number;
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* Union type for all network monitoring events
|
|
594
|
+
*/
|
|
595
|
+
export type NetworkEvent = InterfaceDetectionEvent | ConnectionDetectionEvent | ConnectionUpdateEvent;
|
|
596
|
+
/**
|
|
597
|
+
* Network monitor service interface for real-time network activity monitoring
|
|
598
|
+
*/
|
|
599
|
+
export interface NetworkMonitorService {
|
|
600
|
+
/**
|
|
601
|
+
* Async iterator for network events.
|
|
602
|
+
* Yields interface detection, connection detection, and connection update events.
|
|
603
|
+
*
|
|
604
|
+
* @example
|
|
605
|
+
* const networkMonitor = device.networkMonitor();
|
|
606
|
+
* for await (const event of networkMonitor.events()) {
|
|
607
|
+
* console.log(event);
|
|
608
|
+
* }
|
|
609
|
+
*
|
|
610
|
+
* // Example output:
|
|
611
|
+
* // { type: 0, interfaceIndex: 25, name: 'utun5' }
|
|
612
|
+
* // {
|
|
613
|
+
* // type: 1,
|
|
614
|
+
* // localAddress: {
|
|
615
|
+
* // len: 28,
|
|
616
|
+
* // family: 30,
|
|
617
|
+
* // port: 50063,
|
|
618
|
+
* // address: 'fdc2:1118:d2ac:0:0:0:0:1',
|
|
619
|
+
* // flowInfo: 0,
|
|
620
|
+
* // scopeId: 0
|
|
621
|
+
* // },
|
|
622
|
+
* // remoteAddress: {
|
|
623
|
+
* // len: 28,
|
|
624
|
+
* // family: 30,
|
|
625
|
+
* // port: 65334,
|
|
626
|
+
* // address: 'fdc2:1118:d2ac:0:0:0:0:2',
|
|
627
|
+
* // flowInfo: 0,
|
|
628
|
+
* // scopeId: 0
|
|
629
|
+
* // },
|
|
630
|
+
* // interfaceIndex: 25,
|
|
631
|
+
* // pid: -2,
|
|
632
|
+
* // recvBufferSize: 397120,
|
|
633
|
+
* // recvBufferUsed: 0,
|
|
634
|
+
* // serialNumber: 0,
|
|
635
|
+
* // kind: 1
|
|
636
|
+
* // }
|
|
637
|
+
*/
|
|
638
|
+
events(): AsyncGenerator<NetworkEvent, void, unknown>;
|
|
639
|
+
}
|
|
515
640
|
/**
|
|
516
641
|
* Process information
|
|
517
642
|
*/
|
|
@@ -779,6 +904,8 @@ export interface DVTServiceWithConnection {
|
|
|
779
904
|
deviceInfo: DeviceInfoService;
|
|
780
905
|
/** The Notifications service instance */
|
|
781
906
|
notification: NotificationService;
|
|
907
|
+
/** The NetworkMonitor service instance */
|
|
908
|
+
networkMonitor: NetworkMonitorService;
|
|
782
909
|
/** The RemoteXPC connection that can be used to close the connection */
|
|
783
910
|
remoteXPC: RemoteXpcConnection;
|
|
784
911
|
}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { NetworkEvent } from '../../../../lib/types.js';
|
|
2
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
|
+
/**
|
|
4
|
+
* Message types for network monitoring events
|
|
5
|
+
*/
|
|
6
|
+
export declare const NetworkMessageType: {
|
|
7
|
+
readonly INTERFACE_DETECTION: 0;
|
|
8
|
+
readonly CONNECTION_DETECTION: 1;
|
|
9
|
+
readonly CONNECTION_UPDATE: 2;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* NetworkMonitor provides real-time network activity monitoring on iOS devices.
|
|
13
|
+
*
|
|
14
|
+
* This instrument captures:
|
|
15
|
+
* - Interface detection events (network interfaces coming up)
|
|
16
|
+
* - Connection detection events (new TCP/UDP connections)
|
|
17
|
+
* - Connection update events (traffic statistics updates)
|
|
18
|
+
*/
|
|
19
|
+
export declare class NetworkMonitor extends BaseInstrument {
|
|
20
|
+
static readonly IDENTIFIER = "com.apple.instruments.server.services.networking";
|
|
21
|
+
start(): Promise<void>;
|
|
22
|
+
stop(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Async generator that yields network events as they occur.
|
|
25
|
+
*
|
|
26
|
+
* The generator automatically starts monitoring when iteration begins
|
|
27
|
+
* and stops when the iteration is terminated (via break, return, or error).
|
|
28
|
+
*
|
|
29
|
+
* @yields NetworkEvent - Interface detection, connection detection, or connection update events
|
|
30
|
+
*/
|
|
31
|
+
events(): AsyncGenerator<NetworkEvent, void, unknown>;
|
|
32
|
+
/**
|
|
33
|
+
* Parse a raw message into a typed NetworkEvent
|
|
34
|
+
*/
|
|
35
|
+
private parseMessage;
|
|
36
|
+
/**
|
|
37
|
+
* Parse interface detection event data
|
|
38
|
+
*/
|
|
39
|
+
private parseInterfaceDetection;
|
|
40
|
+
/**
|
|
41
|
+
* Parse connection detection event data
|
|
42
|
+
*/
|
|
43
|
+
private parseConnectionDetection;
|
|
44
|
+
/**
|
|
45
|
+
* Parse connection update event data
|
|
46
|
+
*/
|
|
47
|
+
private parseConnectionUpdate;
|
|
48
|
+
/**
|
|
49
|
+
* Parse a raw address buffer into a NetworkAddress structure
|
|
50
|
+
*
|
|
51
|
+
* Address structure format (sockaddr):
|
|
52
|
+
* - Byte 0: Length (0x10 for IPv4, 0x1C for IPv6)
|
|
53
|
+
* - Byte 1: Address family (2 = AF_INET, 30 = AF_INET6)
|
|
54
|
+
* - Bytes 2-3: Port (big-endian)
|
|
55
|
+
* - For IPv4 (len=0x10): Bytes 4-7 are the IP address
|
|
56
|
+
* - For IPv6 (len=0x1C): Bytes 4-7 flow info, 8-23 address, 24-27 scope ID
|
|
57
|
+
*/
|
|
58
|
+
private parseAddress;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=network-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-monitor.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/network-monitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAKV,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA+BtD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,MAAM,CAAC,QAAQ,CAAC,UAAU,sDAC2B;IAE/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;;;;;;OAOG;IACI,MAAM,IAAI,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC;IAuB5D;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2BhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;CAyBrB"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
|
+
const log = getLogger('NetworkMonitor');
|
|
4
|
+
/**
|
|
5
|
+
* Message types for network monitoring events
|
|
6
|
+
*/
|
|
7
|
+
export const NetworkMessageType = {
|
|
8
|
+
INTERFACE_DETECTION: 0,
|
|
9
|
+
CONNECTION_DETECTION: 1,
|
|
10
|
+
CONNECTION_UPDATE: 2,
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* NetworkMonitor provides real-time network activity monitoring on iOS devices.
|
|
14
|
+
*
|
|
15
|
+
* This instrument captures:
|
|
16
|
+
* - Interface detection events (network interfaces coming up)
|
|
17
|
+
* - Connection detection events (new TCP/UDP connections)
|
|
18
|
+
* - Connection update events (traffic statistics updates)
|
|
19
|
+
*/
|
|
20
|
+
export class NetworkMonitor extends BaseInstrument {
|
|
21
|
+
static IDENTIFIER = 'com.apple.instruments.server.services.networking';
|
|
22
|
+
async start() {
|
|
23
|
+
await this.initialize();
|
|
24
|
+
await this.channel.call('startMonitoring')(undefined, false);
|
|
25
|
+
}
|
|
26
|
+
async stop() {
|
|
27
|
+
if (this.channel) {
|
|
28
|
+
await this.channel.call('stopMonitoring')();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Async generator that yields network events as they occur.
|
|
33
|
+
*
|
|
34
|
+
* The generator automatically starts monitoring when iteration begins
|
|
35
|
+
* and stops when the iteration is terminated (via break, return, or error).
|
|
36
|
+
*
|
|
37
|
+
* @yields NetworkEvent - Interface detection, connection detection, or connection update events
|
|
38
|
+
*/
|
|
39
|
+
async *events() {
|
|
40
|
+
await this.start();
|
|
41
|
+
log.debug('network monitoring started');
|
|
42
|
+
try {
|
|
43
|
+
while (true) {
|
|
44
|
+
const message = await this.channel.receivePlist();
|
|
45
|
+
if (message === null) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const event = this.parseMessage(message);
|
|
49
|
+
if (event) {
|
|
50
|
+
yield event;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
log.debug('network monitoring stopped');
|
|
56
|
+
await this.stop();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse a raw message into a typed NetworkEvent
|
|
61
|
+
*/
|
|
62
|
+
parseMessage(message) {
|
|
63
|
+
if (!Array.isArray(message) || message.length < 2) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const [messageType, data] = message;
|
|
67
|
+
switch (messageType) {
|
|
68
|
+
case NetworkMessageType.INTERFACE_DETECTION:
|
|
69
|
+
return this.parseInterfaceDetection(data);
|
|
70
|
+
case NetworkMessageType.CONNECTION_DETECTION:
|
|
71
|
+
return this.parseConnectionDetection(data);
|
|
72
|
+
case NetworkMessageType.CONNECTION_UPDATE:
|
|
73
|
+
return this.parseConnectionUpdate(data);
|
|
74
|
+
default:
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Parse interface detection event data
|
|
80
|
+
*/
|
|
81
|
+
parseInterfaceDetection(data) {
|
|
82
|
+
const [interfaceIndex, name] = data;
|
|
83
|
+
return {
|
|
84
|
+
type: NetworkMessageType.INTERFACE_DETECTION,
|
|
85
|
+
interfaceIndex,
|
|
86
|
+
name,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Parse connection detection event data
|
|
91
|
+
*/
|
|
92
|
+
parseConnectionDetection(data) {
|
|
93
|
+
const [localAddressRaw, remoteAddressRaw, interfaceIndex, pid, recvBufferSize, recvBufferUsed, serialNumber, kind,] = data;
|
|
94
|
+
return {
|
|
95
|
+
type: NetworkMessageType.CONNECTION_DETECTION,
|
|
96
|
+
localAddress: this.parseAddress(localAddressRaw),
|
|
97
|
+
remoteAddress: this.parseAddress(remoteAddressRaw),
|
|
98
|
+
interfaceIndex,
|
|
99
|
+
pid,
|
|
100
|
+
recvBufferSize,
|
|
101
|
+
recvBufferUsed,
|
|
102
|
+
serialNumber,
|
|
103
|
+
kind,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Parse connection update event data
|
|
108
|
+
*/
|
|
109
|
+
parseConnectionUpdate(data) {
|
|
110
|
+
const [rxPackets, rxBytes, txPackets, txBytes, rxDups, rx000, txRetx, minRtt, avgRtt, connectionSerial, time,] = data;
|
|
111
|
+
return {
|
|
112
|
+
type: NetworkMessageType.CONNECTION_UPDATE,
|
|
113
|
+
rxPackets,
|
|
114
|
+
rxBytes,
|
|
115
|
+
txPackets,
|
|
116
|
+
txBytes,
|
|
117
|
+
rxDups,
|
|
118
|
+
rx000,
|
|
119
|
+
txRetx,
|
|
120
|
+
minRtt,
|
|
121
|
+
avgRtt,
|
|
122
|
+
connectionSerial,
|
|
123
|
+
time,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Parse a raw address buffer into a NetworkAddress structure
|
|
128
|
+
*
|
|
129
|
+
* Address structure format (sockaddr):
|
|
130
|
+
* - Byte 0: Length (0x10 for IPv4, 0x1C for IPv6)
|
|
131
|
+
* - Byte 1: Address family (2 = AF_INET, 30 = AF_INET6)
|
|
132
|
+
* - Bytes 2-3: Port (big-endian)
|
|
133
|
+
* - For IPv4 (len=0x10): Bytes 4-7 are the IP address
|
|
134
|
+
* - For IPv6 (len=0x1C): Bytes 4-7 flow info, 8-23 address, 24-27 scope ID
|
|
135
|
+
*/
|
|
136
|
+
parseAddress(raw) {
|
|
137
|
+
const buf = Buffer.isBuffer(raw) ? raw : Buffer.from(raw);
|
|
138
|
+
const len = buf[0];
|
|
139
|
+
const family = buf[1];
|
|
140
|
+
const port = buf.readUInt16BE(2);
|
|
141
|
+
const result = { len, family, port, address: '0.0.0.0' };
|
|
142
|
+
if (len === 0x1c) {
|
|
143
|
+
// IPv6: 8 groups of 16-bit hex values
|
|
144
|
+
result.flowInfo = buf.readUInt32LE(4);
|
|
145
|
+
result.address = Array.from({ length: 8 }, (_, i) => buf.readUInt16BE(8 + i * 2).toString(16)).join(':');
|
|
146
|
+
result.scopeId = buf.readUInt32LE(24);
|
|
147
|
+
}
|
|
148
|
+
else if (len === 0x10) {
|
|
149
|
+
// IPv4: 4 octets as decimal
|
|
150
|
+
result.address = Array.from(buf.subarray(4, 8)).join('.');
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
log.warn(`Unknown address length: ${len}`);
|
|
154
|
+
}
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -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,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;AAuBrD,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,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
|
@@ -10,6 +10,7 @@ import { ConditionInducer } from './services/ios/dvt/instruments/condition-induc
|
|
|
10
10
|
import { DeviceInfo } from './services/ios/dvt/instruments/device-info.js';
|
|
11
11
|
import { Graphics } from './services/ios/dvt/instruments/graphics.js';
|
|
12
12
|
import { LocationSimulation } from './services/ios/dvt/instruments/location-simulation.js';
|
|
13
|
+
import { NetworkMonitor } from './services/ios/dvt/instruments/network-monitor.js';
|
|
13
14
|
import { Notifications } from './services/ios/dvt/instruments/notifications.js';
|
|
14
15
|
import { Screenshot } from './services/ios/dvt/instruments/screenshot.js';
|
|
15
16
|
import { MisagentService } from './services/ios/misagent/index.js';
|
|
@@ -144,6 +145,7 @@ export async function startDVTService(udid) {
|
|
|
144
145
|
const graphics = new Graphics(dvtService);
|
|
145
146
|
const deviceInfo = new DeviceInfo(dvtService);
|
|
146
147
|
const notification = new Notifications(dvtService);
|
|
148
|
+
const networkMonitor = new NetworkMonitor(dvtService);
|
|
147
149
|
return {
|
|
148
150
|
remoteXPC: remoteXPC,
|
|
149
151
|
dvtService,
|
|
@@ -154,6 +156,7 @@ export async function startDVTService(udid) {
|
|
|
154
156
|
graphics,
|
|
155
157
|
deviceInfo,
|
|
156
158
|
notification,
|
|
159
|
+
networkMonitor,
|
|
157
160
|
};
|
|
158
161
|
}
|
|
159
162
|
export async function createRemoteXPCConnection(udid) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-ios-remotexpc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.1",
|
|
4
4
|
"main": "build/src/index.js",
|
|
5
5
|
"types": "build/src/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"build:es": "tsc",
|
|
20
20
|
"build": "run-s clean:* build:*",
|
|
21
21
|
"lint": "eslint src --ext .ts --quiet",
|
|
22
|
-
"prepare": "npm run build",
|
|
22
|
+
"prepare": "husky && npm run build",
|
|
23
23
|
"format": "prettier --write \"{src,test}/**/*.{ts,tsx}\"",
|
|
24
24
|
"format:check": "prettier --check \"{src,test}/**/*.{ts,tsx}\"",
|
|
25
25
|
"lint:fix": "eslint src --ext .ts --fix",
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"test:dvt:device-info": "mocha test/integration/dvt_instruments/device-info-test.ts --exit --timeout 1m",
|
|
48
48
|
"test:dvt:applist": "mocha test/integration/dvt_instruments/app-listing-test.ts --exit --timeout 1m",
|
|
49
49
|
"test:dvt:notification": "mocha test/integration/dvt_instruments/notifications-test.ts --exit --timeout 1m",
|
|
50
|
+
"test:dvt:network-monitor": "mocha test/integration/dvt_instruments/network-monitor-test.ts --exit --timeout 1m",
|
|
50
51
|
"test:tunnel-creation": "sudo tsx scripts/test-tunnel-creation.ts",
|
|
51
52
|
"test:tunnel-creation:lsof": "sudo tsx scripts/test-tunnel-creation.ts --keep-open"
|
|
52
53
|
},
|
|
@@ -75,6 +76,8 @@
|
|
|
75
76
|
"chai-as-promised": "^8.0.1",
|
|
76
77
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
77
78
|
"eslint-plugin-unicorn": "^61.0.2",
|
|
79
|
+
"husky": "^9.1.7",
|
|
80
|
+
"lint-staged": "^16.2.7",
|
|
78
81
|
"mocha": "^11.1.0",
|
|
79
82
|
"prettier": "^3.5.3",
|
|
80
83
|
"rimraf": "^6.0.1",
|
|
@@ -101,5 +104,11 @@
|
|
|
101
104
|
"!.DS_Store",
|
|
102
105
|
"CHANGELOG.md",
|
|
103
106
|
"LICENSE"
|
|
104
|
-
]
|
|
107
|
+
],
|
|
108
|
+
"lint-staged": {
|
|
109
|
+
"*.ts": [
|
|
110
|
+
"eslint --fix",
|
|
111
|
+
"prettier --write"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
105
114
|
}
|
package/src/index.ts
CHANGED
|
@@ -30,6 +30,7 @@ export type {
|
|
|
30
30
|
ScreenshotService,
|
|
31
31
|
GraphicsService,
|
|
32
32
|
DeviceInfoService,
|
|
33
|
+
NetworkMonitorService,
|
|
33
34
|
ProcessInfo,
|
|
34
35
|
ConditionProfile,
|
|
35
36
|
ConditionGroup,
|
|
@@ -46,8 +47,14 @@ export type {
|
|
|
46
47
|
WebInspectorServiceWithConnection,
|
|
47
48
|
MisagentServiceWithConnection,
|
|
48
49
|
DVTServiceWithConnection,
|
|
50
|
+
NetworkAddress,
|
|
51
|
+
InterfaceDetectionEvent,
|
|
52
|
+
ConnectionDetectionEvent,
|
|
53
|
+
ConnectionUpdateEvent,
|
|
54
|
+
NetworkEvent,
|
|
49
55
|
} from './lib/types.js';
|
|
50
56
|
export { PowerAssertionType } from './lib/types.js';
|
|
57
|
+
export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
|
|
51
58
|
export {
|
|
52
59
|
STRONGBOX_CONTAINER_NAME,
|
|
53
60
|
createUsbmux,
|
package/src/lib/types.ts
CHANGED
|
@@ -575,6 +575,140 @@ export interface GraphicsService {
|
|
|
575
575
|
messages(): AsyncGenerator<unknown, void, unknown>;
|
|
576
576
|
}
|
|
577
577
|
|
|
578
|
+
/**
|
|
579
|
+
* Network address information
|
|
580
|
+
*/
|
|
581
|
+
export interface NetworkAddress {
|
|
582
|
+
/** Length of the address structure */
|
|
583
|
+
len: number;
|
|
584
|
+
/** Address family (2 = IPv4, 30 = IPv6) */
|
|
585
|
+
family: number;
|
|
586
|
+
/** Port number */
|
|
587
|
+
port: number;
|
|
588
|
+
/** Parsed IP address string */
|
|
589
|
+
address: string;
|
|
590
|
+
/** Flow info (IPv6 only) */
|
|
591
|
+
flowInfo?: number;
|
|
592
|
+
/** Scope ID (IPv6 only) */
|
|
593
|
+
scopeId?: number;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* Event emitted when a network interface is detected
|
|
598
|
+
*/
|
|
599
|
+
export interface InterfaceDetectionEvent {
|
|
600
|
+
type: 0;
|
|
601
|
+
/** Interface index */
|
|
602
|
+
interfaceIndex: number;
|
|
603
|
+
/** Interface name (e.g., 'en0', 'lo0') */
|
|
604
|
+
name: string;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
/**
|
|
608
|
+
* Event emitted when a network connection is detected
|
|
609
|
+
*/
|
|
610
|
+
export interface ConnectionDetectionEvent {
|
|
611
|
+
type: 1;
|
|
612
|
+
/** Local address information */
|
|
613
|
+
localAddress: NetworkAddress;
|
|
614
|
+
/** Remote address information */
|
|
615
|
+
remoteAddress: NetworkAddress;
|
|
616
|
+
/** Interface index */
|
|
617
|
+
interfaceIndex: number;
|
|
618
|
+
/** Process ID owning the connection */
|
|
619
|
+
pid: number;
|
|
620
|
+
/** Receive buffer size */
|
|
621
|
+
recvBufferSize: number;
|
|
622
|
+
/** Receive buffer used */
|
|
623
|
+
recvBufferUsed: number;
|
|
624
|
+
/** Connection serial number */
|
|
625
|
+
serialNumber: number;
|
|
626
|
+
/** Connection kind/type */
|
|
627
|
+
kind: number;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/**
|
|
631
|
+
* Event emitted when connection statistics are updated
|
|
632
|
+
*/
|
|
633
|
+
export interface ConnectionUpdateEvent {
|
|
634
|
+
type: 2;
|
|
635
|
+
/** Received packets count */
|
|
636
|
+
rxPackets: number;
|
|
637
|
+
/** Received bytes count */
|
|
638
|
+
rxBytes: number;
|
|
639
|
+
/** Transmitted packets count */
|
|
640
|
+
txPackets: number;
|
|
641
|
+
/** Transmitted bytes count */
|
|
642
|
+
txBytes: number;
|
|
643
|
+
/** Duplicate received packets */
|
|
644
|
+
rxDups: number;
|
|
645
|
+
/** Reserved field */
|
|
646
|
+
rx000: number;
|
|
647
|
+
/** Retransmitted packets */
|
|
648
|
+
txRetx: number;
|
|
649
|
+
/** Minimum round-trip time */
|
|
650
|
+
minRtt: number;
|
|
651
|
+
/** Average round-trip time */
|
|
652
|
+
avgRtt: number;
|
|
653
|
+
/** Connection serial number (links to ConnectionDetectionEvent) */
|
|
654
|
+
connectionSerial: number;
|
|
655
|
+
/** Timestamp */
|
|
656
|
+
time: number;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* Union type for all network monitoring events
|
|
661
|
+
*/
|
|
662
|
+
export type NetworkEvent =
|
|
663
|
+
| InterfaceDetectionEvent
|
|
664
|
+
| ConnectionDetectionEvent
|
|
665
|
+
| ConnectionUpdateEvent;
|
|
666
|
+
|
|
667
|
+
/**
|
|
668
|
+
* Network monitor service interface for real-time network activity monitoring
|
|
669
|
+
*/
|
|
670
|
+
export interface NetworkMonitorService {
|
|
671
|
+
/**
|
|
672
|
+
* Async iterator for network events.
|
|
673
|
+
* Yields interface detection, connection detection, and connection update events.
|
|
674
|
+
*
|
|
675
|
+
* @example
|
|
676
|
+
* const networkMonitor = device.networkMonitor();
|
|
677
|
+
* for await (const event of networkMonitor.events()) {
|
|
678
|
+
* console.log(event);
|
|
679
|
+
* }
|
|
680
|
+
*
|
|
681
|
+
* // Example output:
|
|
682
|
+
* // { type: 0, interfaceIndex: 25, name: 'utun5' }
|
|
683
|
+
* // {
|
|
684
|
+
* // type: 1,
|
|
685
|
+
* // localAddress: {
|
|
686
|
+
* // len: 28,
|
|
687
|
+
* // family: 30,
|
|
688
|
+
* // port: 50063,
|
|
689
|
+
* // address: 'fdc2:1118:d2ac:0:0:0:0:1',
|
|
690
|
+
* // flowInfo: 0,
|
|
691
|
+
* // scopeId: 0
|
|
692
|
+
* // },
|
|
693
|
+
* // remoteAddress: {
|
|
694
|
+
* // len: 28,
|
|
695
|
+
* // family: 30,
|
|
696
|
+
* // port: 65334,
|
|
697
|
+
* // address: 'fdc2:1118:d2ac:0:0:0:0:2',
|
|
698
|
+
* // flowInfo: 0,
|
|
699
|
+
* // scopeId: 0
|
|
700
|
+
* // },
|
|
701
|
+
* // interfaceIndex: 25,
|
|
702
|
+
* // pid: -2,
|
|
703
|
+
* // recvBufferSize: 397120,
|
|
704
|
+
* // recvBufferUsed: 0,
|
|
705
|
+
* // serialNumber: 0,
|
|
706
|
+
* // kind: 1
|
|
707
|
+
* // }
|
|
708
|
+
*/
|
|
709
|
+
events(): AsyncGenerator<NetworkEvent, void, unknown>;
|
|
710
|
+
}
|
|
711
|
+
|
|
578
712
|
/**
|
|
579
713
|
* Process information
|
|
580
714
|
*/
|
|
@@ -862,6 +996,8 @@ export interface DVTServiceWithConnection {
|
|
|
862
996
|
deviceInfo: DeviceInfoService;
|
|
863
997
|
/** The Notifications service instance */
|
|
864
998
|
notification: NotificationService;
|
|
999
|
+
/** The NetworkMonitor service instance */
|
|
1000
|
+
networkMonitor: NetworkMonitorService;
|
|
865
1001
|
/** The RemoteXPC connection that can be used to close the connection */
|
|
866
1002
|
remoteXPC: RemoteXpcConnection;
|
|
867
1003
|
}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
+
import type {
|
|
3
|
+
ConnectionDetectionEvent,
|
|
4
|
+
ConnectionUpdateEvent,
|
|
5
|
+
InterfaceDetectionEvent,
|
|
6
|
+
NetworkAddress,
|
|
7
|
+
NetworkEvent,
|
|
8
|
+
} from '../../../../lib/types.js';
|
|
9
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
10
|
+
|
|
11
|
+
const log = getLogger('NetworkMonitor');
|
|
12
|
+
|
|
13
|
+
type InterfaceDetectionMessage = [number, string];
|
|
14
|
+
|
|
15
|
+
type ConnectionDetectionMessage = [
|
|
16
|
+
Buffer,
|
|
17
|
+
Buffer,
|
|
18
|
+
number,
|
|
19
|
+
number,
|
|
20
|
+
number,
|
|
21
|
+
number,
|
|
22
|
+
number,
|
|
23
|
+
number,
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
type ConnectionUpdateMessage = [
|
|
27
|
+
number,
|
|
28
|
+
number,
|
|
29
|
+
number,
|
|
30
|
+
number,
|
|
31
|
+
number,
|
|
32
|
+
number,
|
|
33
|
+
number,
|
|
34
|
+
number,
|
|
35
|
+
number,
|
|
36
|
+
number,
|
|
37
|
+
number,
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Message types for network monitoring events
|
|
42
|
+
*/
|
|
43
|
+
export const NetworkMessageType = {
|
|
44
|
+
INTERFACE_DETECTION: 0,
|
|
45
|
+
CONNECTION_DETECTION: 1,
|
|
46
|
+
CONNECTION_UPDATE: 2,
|
|
47
|
+
} as const;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* NetworkMonitor provides real-time network activity monitoring on iOS devices.
|
|
51
|
+
*
|
|
52
|
+
* This instrument captures:
|
|
53
|
+
* - Interface detection events (network interfaces coming up)
|
|
54
|
+
* - Connection detection events (new TCP/UDP connections)
|
|
55
|
+
* - Connection update events (traffic statistics updates)
|
|
56
|
+
*/
|
|
57
|
+
export class NetworkMonitor extends BaseInstrument {
|
|
58
|
+
static readonly IDENTIFIER =
|
|
59
|
+
'com.apple.instruments.server.services.networking';
|
|
60
|
+
|
|
61
|
+
async start(): Promise<void> {
|
|
62
|
+
await this.initialize();
|
|
63
|
+
await this.channel!.call('startMonitoring')(undefined, false);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async stop(): Promise<void> {
|
|
67
|
+
if (this.channel) {
|
|
68
|
+
await this.channel.call('stopMonitoring')();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Async generator that yields network events as they occur.
|
|
74
|
+
*
|
|
75
|
+
* The generator automatically starts monitoring when iteration begins
|
|
76
|
+
* and stops when the iteration is terminated (via break, return, or error).
|
|
77
|
+
*
|
|
78
|
+
* @yields NetworkEvent - Interface detection, connection detection, or connection update events
|
|
79
|
+
*/
|
|
80
|
+
async *events(): AsyncGenerator<NetworkEvent, void, unknown> {
|
|
81
|
+
await this.start();
|
|
82
|
+
log.debug('network monitoring started');
|
|
83
|
+
|
|
84
|
+
try {
|
|
85
|
+
while (true) {
|
|
86
|
+
const message = await this.channel!.receivePlist();
|
|
87
|
+
|
|
88
|
+
if (message === null) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const event = this.parseMessage(message);
|
|
93
|
+
if (event) {
|
|
94
|
+
yield event;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
} finally {
|
|
98
|
+
log.debug('network monitoring stopped');
|
|
99
|
+
await this.stop();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Parse a raw message into a typed NetworkEvent
|
|
105
|
+
*/
|
|
106
|
+
private parseMessage(message: unknown): NetworkEvent | null {
|
|
107
|
+
if (!Array.isArray(message) || message.length < 2) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const [messageType, data] = message;
|
|
112
|
+
|
|
113
|
+
switch (messageType) {
|
|
114
|
+
case NetworkMessageType.INTERFACE_DETECTION:
|
|
115
|
+
return this.parseInterfaceDetection(data);
|
|
116
|
+
case NetworkMessageType.CONNECTION_DETECTION:
|
|
117
|
+
return this.parseConnectionDetection(data);
|
|
118
|
+
case NetworkMessageType.CONNECTION_UPDATE:
|
|
119
|
+
return this.parseConnectionUpdate(data);
|
|
120
|
+
default:
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Parse interface detection event data
|
|
127
|
+
*/
|
|
128
|
+
private parseInterfaceDetection(
|
|
129
|
+
data: InterfaceDetectionMessage,
|
|
130
|
+
): InterfaceDetectionEvent {
|
|
131
|
+
const [interfaceIndex, name] = data;
|
|
132
|
+
return {
|
|
133
|
+
type: NetworkMessageType.INTERFACE_DETECTION,
|
|
134
|
+
interfaceIndex,
|
|
135
|
+
name,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Parse connection detection event data
|
|
141
|
+
*/
|
|
142
|
+
private parseConnectionDetection(
|
|
143
|
+
data: ConnectionDetectionMessage,
|
|
144
|
+
): ConnectionDetectionEvent {
|
|
145
|
+
const [
|
|
146
|
+
localAddressRaw,
|
|
147
|
+
remoteAddressRaw,
|
|
148
|
+
interfaceIndex,
|
|
149
|
+
pid,
|
|
150
|
+
recvBufferSize,
|
|
151
|
+
recvBufferUsed,
|
|
152
|
+
serialNumber,
|
|
153
|
+
kind,
|
|
154
|
+
] = data;
|
|
155
|
+
|
|
156
|
+
return {
|
|
157
|
+
type: NetworkMessageType.CONNECTION_DETECTION,
|
|
158
|
+
localAddress: this.parseAddress(localAddressRaw),
|
|
159
|
+
remoteAddress: this.parseAddress(remoteAddressRaw),
|
|
160
|
+
interfaceIndex,
|
|
161
|
+
pid,
|
|
162
|
+
recvBufferSize,
|
|
163
|
+
recvBufferUsed,
|
|
164
|
+
serialNumber,
|
|
165
|
+
kind,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Parse connection update event data
|
|
171
|
+
*/
|
|
172
|
+
private parseConnectionUpdate(
|
|
173
|
+
data: ConnectionUpdateMessage,
|
|
174
|
+
): ConnectionUpdateEvent {
|
|
175
|
+
const [
|
|
176
|
+
rxPackets,
|
|
177
|
+
rxBytes,
|
|
178
|
+
txPackets,
|
|
179
|
+
txBytes,
|
|
180
|
+
rxDups,
|
|
181
|
+
rx000,
|
|
182
|
+
txRetx,
|
|
183
|
+
minRtt,
|
|
184
|
+
avgRtt,
|
|
185
|
+
connectionSerial,
|
|
186
|
+
time,
|
|
187
|
+
] = data;
|
|
188
|
+
|
|
189
|
+
return {
|
|
190
|
+
type: NetworkMessageType.CONNECTION_UPDATE,
|
|
191
|
+
rxPackets,
|
|
192
|
+
rxBytes,
|
|
193
|
+
txPackets,
|
|
194
|
+
txBytes,
|
|
195
|
+
rxDups,
|
|
196
|
+
rx000,
|
|
197
|
+
txRetx,
|
|
198
|
+
minRtt,
|
|
199
|
+
avgRtt,
|
|
200
|
+
connectionSerial,
|
|
201
|
+
time,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Parse a raw address buffer into a NetworkAddress structure
|
|
207
|
+
*
|
|
208
|
+
* Address structure format (sockaddr):
|
|
209
|
+
* - Byte 0: Length (0x10 for IPv4, 0x1C for IPv6)
|
|
210
|
+
* - Byte 1: Address family (2 = AF_INET, 30 = AF_INET6)
|
|
211
|
+
* - Bytes 2-3: Port (big-endian)
|
|
212
|
+
* - For IPv4 (len=0x10): Bytes 4-7 are the IP address
|
|
213
|
+
* - For IPv6 (len=0x1C): Bytes 4-7 flow info, 8-23 address, 24-27 scope ID
|
|
214
|
+
*/
|
|
215
|
+
private parseAddress(raw: Buffer | Uint8Array): NetworkAddress {
|
|
216
|
+
const buf = Buffer.isBuffer(raw) ? raw : Buffer.from(raw);
|
|
217
|
+
|
|
218
|
+
const len = buf[0];
|
|
219
|
+
const family = buf[1];
|
|
220
|
+
const port = buf.readUInt16BE(2);
|
|
221
|
+
|
|
222
|
+
const result: NetworkAddress = { len, family, port, address: '0.0.0.0' };
|
|
223
|
+
|
|
224
|
+
if (len === 0x1c) {
|
|
225
|
+
// IPv6: 8 groups of 16-bit hex values
|
|
226
|
+
result.flowInfo = buf.readUInt32LE(4);
|
|
227
|
+
result.address = Array.from({ length: 8 }, (_, i) =>
|
|
228
|
+
buf.readUInt16BE(8 + i * 2).toString(16),
|
|
229
|
+
).join(':');
|
|
230
|
+
result.scopeId = buf.readUInt32LE(24);
|
|
231
|
+
} else if (len === 0x10) {
|
|
232
|
+
// IPv4: 4 octets as decimal
|
|
233
|
+
result.address = Array.from(buf.subarray(4, 8)).join('.');
|
|
234
|
+
} else {
|
|
235
|
+
log.warn(`Unknown address length: ${len}`);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
return result;
|
|
239
|
+
}
|
|
240
|
+
}
|
package/src/services.ts
CHANGED
|
@@ -23,6 +23,7 @@ import { ConditionInducer } from './services/ios/dvt/instruments/condition-induc
|
|
|
23
23
|
import { DeviceInfo } from './services/ios/dvt/instruments/device-info.js';
|
|
24
24
|
import { Graphics } from './services/ios/dvt/instruments/graphics.js';
|
|
25
25
|
import { LocationSimulation } from './services/ios/dvt/instruments/location-simulation.js';
|
|
26
|
+
import { NetworkMonitor } from './services/ios/dvt/instruments/network-monitor.js';
|
|
26
27
|
import { Notifications } from './services/ios/dvt/instruments/notifications.js';
|
|
27
28
|
import { Screenshot } from './services/ios/dvt/instruments/screenshot.js';
|
|
28
29
|
import { MisagentService } from './services/ios/misagent/index.js';
|
|
@@ -210,6 +211,7 @@ export async function startDVTService(
|
|
|
210
211
|
const graphics = new Graphics(dvtService);
|
|
211
212
|
const deviceInfo = new DeviceInfo(dvtService);
|
|
212
213
|
const notification = new Notifications(dvtService);
|
|
214
|
+
const networkMonitor = new NetworkMonitor(dvtService);
|
|
213
215
|
|
|
214
216
|
return {
|
|
215
217
|
remoteXPC: remoteXPC as RemoteXpcConnection,
|
|
@@ -221,6 +223,7 @@ export async function startDVTService(
|
|
|
221
223
|
graphics,
|
|
222
224
|
deviceInfo,
|
|
223
225
|
notification,
|
|
226
|
+
networkMonitor,
|
|
224
227
|
};
|
|
225
228
|
}
|
|
226
229
|
|