appium-ios-remotexpc 0.17.0 → 0.18.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 CHANGED
@@ -1,3 +1,9 @@
1
+ ## [0.18.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.17.0...v0.18.0) (2025-12-05)
2
+
3
+ ### Features
4
+
5
+ * **dvt:** implement device info DVT instrument ([#105](https://github.com/appium/appium-ios-remotexpc/issues/105)) ([91e8cbd](https://github.com/appium/appium-ios-remotexpc/commit/91e8cbd824071e97d580f7cd6c8516b6434ac455))
6
+
1
7
  ## [0.17.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.16.1...v0.17.0) (2025-12-05)
2
8
 
3
9
  ### Features
@@ -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, 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, ProcessInfo, ConditionProfile, ConditionGroup, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DiagnosticsServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, MobileConfigServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, WebInspectorServiceWithConnection, MisagentServiceWithConnection, DVTServiceWithConnection, } from './lib/types.js';
9
9
  export { PowerAssertionType } from './lib/types.js';
10
10
  export { STRONGBOX_CONTAINER_NAME, createUsbmux, Services, Usbmux, TunnelManager, PacketStreamServer, PacketStreamClient, createLockdownServiceByUDID, startCoreDeviceProxy, TunnelRegistryServer, startTunnelRegistryServer, };
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -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,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,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,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,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,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,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"}
@@ -511,6 +511,209 @@ export interface GraphicsService {
511
511
  */
512
512
  messages(): AsyncGenerator<unknown, void, unknown>;
513
513
  }
514
+ /**
515
+ * Process information
516
+ */
517
+ export interface ProcessInfo {
518
+ /** Process identifier (may be negative for system services) */
519
+ pid: number;
520
+ /** Process name */
521
+ name?: string;
522
+ /** Indicates whether the process is an application */
523
+ isApplication: boolean;
524
+ /** Bundle identifier for application processes */
525
+ bundleIdentifier?: string;
526
+ /** Full path to the executable */
527
+ realAppName?: string;
528
+ /** Raw device start timestamp */
529
+ startDate?: {
530
+ /** Mach-based timestamp value */
531
+ 'NS.time': number;
532
+ };
533
+ /** Whether crash analysis should include corpse sampling */
534
+ shouldAnalyzeWithCorpse?: boolean;
535
+ }
536
+ /**
537
+ * DeviceInfo service interface for accessing device information,
538
+ * file system, and process management
539
+ */
540
+ export interface DeviceInfoService {
541
+ /**
542
+ * List directory contents
543
+ * @param path The directory path to list
544
+ * @returns Array of filenames
545
+ */
546
+ ls(path: string): Promise<string[]>;
547
+ /**
548
+ * Get executable path for a process
549
+ * @param pid The process identifier
550
+ * @returns The full path to the executable
551
+ */
552
+ execnameForPid(pid: number): Promise<string>;
553
+ /**
554
+ * Get list of running processes
555
+ * @returns Array of process information
556
+ * @example
557
+ * ```typescript
558
+ * const processes = await deviceInfo.proclist();
559
+ * // Example response:
560
+ * // [
561
+ * // {
562
+ * // name: 'audioaccessoryd',
563
+ * // startDate: { 'NS.time': 786563887.8186979 },
564
+ * // isApplication: false,
565
+ * // pid: 77,
566
+ * // realAppName: '/usr/libexec/audioaccessoryd'
567
+ * // },
568
+ * // {
569
+ * // name: 'dmd',
570
+ * // startDate: { 'NS.time': 786563890.2724509 },
571
+ * // isApplication: false,
572
+ * // pid: -102,
573
+ * // realAppName: '/usr/libexec/dmd'
574
+ * // },
575
+ * // ...
576
+ * // ]
577
+ * ```
578
+ */
579
+ proclist(): Promise<ProcessInfo[]>;
580
+ /**
581
+ * Check if a process is running
582
+ * @param pid The process identifier
583
+ * @returns true if running, false otherwise
584
+ */
585
+ isRunningPid(pid: number): Promise<boolean>;
586
+ /**
587
+ * Get hardware information
588
+ * @returns Hardware information object
589
+ * @example
590
+ * ```typescript
591
+ * const hwInfo = await deviceInfo.hardwareInformation();
592
+ * // Example response:
593
+ * // {
594
+ * // numberOfPhysicalCpus: 6,
595
+ * // hwCPUsubtype: 2,
596
+ * // numberOfCpus: 6,
597
+ * // hwCPUtype: 16777228,
598
+ * // hwCPU64BitCapable: 1,
599
+ * // ProcessorTraceState: {
600
+ * // HWTraceVersion: '{\n "lib_ver": "libhwtrace @ tag libhwtrace-118.1",\n "api_ver": 21,\n ...\n}',
601
+ * // Streaming: false,
602
+ * // ProdTraceSupported: false,
603
+ * // AllocatedBufferSize: 0,
604
+ * // HWSupported: false,
605
+ * // HWConfigured: false,
606
+ * // RequestedBufferSize: 0,
607
+ * // DevTraceSupported: false
608
+ * // }
609
+ * // }
610
+ * ```
611
+ */
612
+ hardwareInformation(): Promise<any>;
613
+ /**
614
+ * Get network information
615
+ * @returns Network information object
616
+ * @example
617
+ * ```typescript
618
+ * const networkInfo = await deviceInfo.networkInformation();
619
+ * // Example response:
620
+ * // {
621
+ * // en2: 'Ethernet Adapter (en2)',
622
+ * // en0: 'Wi-Fi',
623
+ * // en1: 'Ethernet Adapter (en1)',
624
+ * // lo0: 'Loopback'
625
+ * // }
626
+ * ```
627
+ */
628
+ networkInformation(): Promise<any>;
629
+ /**
630
+ * Get mach time information
631
+ * @returns Mach time info array containing [machAbsoluteTime, numer, denom, machContinuousTime, systemTime, timezone]
632
+ * @example
633
+ * ```typescript
634
+ * const machTime = await deviceInfo.machTimeInfo();
635
+ * // Example response:
636
+ * // [
637
+ * // 1536005260807, // machAbsoluteTime
638
+ * // 125, // numer
639
+ * // 3, // denom
640
+ * // 1713684132688, // machContinuousTime
641
+ * // 1764942215.065243, // systemTime
642
+ * // 'Asia/Kolkata' // timezone
643
+ * // ]
644
+ * ```
645
+ */
646
+ machTimeInfo(): Promise<any>;
647
+ /**
648
+ * Get mach kernel name
649
+ * @returns Kernel name string
650
+ * @example
651
+ * ```typescript
652
+ * const kernelName = await deviceInfo.machKernelName();
653
+ * // Example response:
654
+ * // '/mach.release.t8030'
655
+ * ```
656
+ */
657
+ machKernelName(): Promise<string>;
658
+ /**
659
+ * Get kernel performance event database
660
+ * @returns KPEP database object or null
661
+ * @example
662
+ * ```typescript
663
+ * const kpep = await deviceInfo.kpepDatabase();
664
+ * // Example response:
665
+ * // {
666
+ * // system: {
667
+ * // cpu: {
668
+ * // config_counters: 1020,
669
+ * // marketing_name: 'Apple A13',
670
+ * // fixed_counters: 3,
671
+ * // aliases: { ... },
672
+ * // events: { ... },
673
+ * // architecture: 'arm64',
674
+ * // power_counters: -32
675
+ * // }
676
+ * // },
677
+ * // internal: false,
678
+ * // id: 'cpu_100000c_2_462504d2',
679
+ * // name: 'a13',
680
+ * // version: [1, 0]
681
+ * // }
682
+ * ```
683
+ */
684
+ kpepDatabase(): Promise<any | null>;
685
+ /**
686
+ * Get trace code mappings
687
+ * @returns Object mapping trace codes (as hex strings) to descriptions
688
+ * @example
689
+ * ```typescript
690
+ * const codes = await deviceInfo.traceCodes();
691
+ * // Example response:
692
+ * // {
693
+ * // '0x1020000': 'KTrap_DivideError',
694
+ * // '0x1020004': 'KTrap_Debug',
695
+ * // '0x1020008': 'KTrap_NMI',
696
+ * // '0x102000c': 'KTrap_Int3',
697
+ * // '0x1020010': 'KTrap_Overflow',
698
+ * // '0x1020014': 'KTrap_BoundRange',
699
+ * // ...
700
+ * // }
701
+ * ```
702
+ */
703
+ traceCodes(): Promise<Record<string, string>>;
704
+ /**
705
+ * Get username for UID
706
+ * @param uid The user identifier
707
+ * @returns Username string
708
+ */
709
+ nameForUid(uid: number): Promise<string>;
710
+ /**
711
+ * Get group name for GID
712
+ * @param gid The group identifier
713
+ * @returns Group name string
714
+ */
715
+ nameForGid(gid: number): Promise<string>;
716
+ }
514
717
  /**
515
718
  * DVT service with connection
516
719
  * This allows callers to properly manage the connection lifecycle
@@ -528,6 +731,8 @@ export interface DVTServiceWithConnection {
528
731
  appListing: AppListService;
529
732
  /** The Graphics service instance */
530
733
  graphics: GraphicsService;
734
+ /** The DeviceInfo service instance */
735
+ deviceInfo: DeviceInfoService;
531
736
  /** The RemoteXPC connection that can be used to close the connection */
532
737
  remoteXPC: RemoteXpcConnection;
533
738
  }
@@ -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,105 @@
1
+ import type { ProcessInfo } from '../../../../lib/types.js';
2
+ import type { DVTSecureSocketProxyService } from '../index.js';
3
+ /**
4
+ * DeviceInfo service provides access to device information, file system,
5
+ * and process management through the DTX protocol.
6
+ *
7
+ * Available methods:
8
+ * - ls(path): List directory contents
9
+ * - execnameForPid(pid): Get executable path for a process ID
10
+ * - proclist(): Get list of running processes
11
+ * - isRunningPid(pid): Check if a process is running
12
+ * - hardwareInformation(): Get hardware details
13
+ * - networkInformation(): Get network configuration
14
+ * - machTimeInfo(): Get mach time information
15
+ * - machKernelName(): Get kernel name
16
+ * - kpepDatabase(): Get kernel performance event database
17
+ * - traceCodes(): Get trace code mappings
18
+ * - nameForUid(uid): Get username for UID
19
+ * - nameForGid(gid): Get group name for GID
20
+ */
21
+ export declare class DeviceInfo {
22
+ private readonly dvt;
23
+ static readonly IDENTIFIER = "com.apple.instruments.server.services.deviceinfo";
24
+ private channel;
25
+ constructor(dvt: DVTSecureSocketProxyService);
26
+ /**
27
+ * Initialize the device info channel
28
+ */
29
+ initialize(): Promise<void>;
30
+ /**
31
+ * List directory contents at the specified path.
32
+ * @param path - The directory path to list
33
+ * @returns Array of filenames
34
+ * @throws {Error} If the directory doesn't exist or cannot be accessed
35
+ */
36
+ ls(path: string): Promise<string[]>;
37
+ /**
38
+ * Get the full executable path for a given process ID.
39
+ * @param pid - The process identifier
40
+ * @returns The full path to the executable
41
+ */
42
+ execnameForPid(pid: number): Promise<string>;
43
+ /**
44
+ * Get the list of all running processes on the device.
45
+ * @returns Array of process information objects
46
+ */
47
+ proclist(): Promise<ProcessInfo[]>;
48
+ /**
49
+ * Check if a process with the given PID is currently running.
50
+ * @param pid - The process identifier to check
51
+ * @returns true if the process is running, false otherwise
52
+ */
53
+ isRunningPid(pid: number): Promise<boolean>;
54
+ /**
55
+ * Get hardware information about the device.
56
+ * @returns Object containing hardware information
57
+ */
58
+ hardwareInformation(): Promise<any>;
59
+ /**
60
+ * Get network configuration information.
61
+ * @returns Object containing network information
62
+ */
63
+ networkInformation(): Promise<any>;
64
+ /**
65
+ * Get mach kernel time information.
66
+ * @returns Object containing mach time info
67
+ */
68
+ machTimeInfo(): Promise<any>;
69
+ /**
70
+ * Get the mach kernel name.
71
+ * @returns The kernel name string
72
+ */
73
+ machKernelName(): Promise<string>;
74
+ /**
75
+ * Get the kernel performance event (kpep) database.
76
+ * @returns Object containing kpep database or null if not available
77
+ */
78
+ kpepDatabase(): Promise<any | null>;
79
+ /**
80
+ * Get trace code mappings.
81
+ * @returns Object mapping trace codes (as hex strings) to descriptions
82
+ */
83
+ traceCodes(): Promise<Record<string, string>>;
84
+ /**
85
+ * Get the username for a given user ID (UID).
86
+ * @param uid - The user identifier
87
+ * @returns The username string
88
+ */
89
+ nameForUid(uid: number): Promise<string>;
90
+ /**
91
+ * Get the group name for a given group ID (GID).
92
+ * @param gid - The group identifier
93
+ * @returns The group name string
94
+ */
95
+ nameForGid(gid: number): Promise<string>;
96
+ /**
97
+ * Generic method to request information from the device.
98
+ * @param selectorName - The selector name to call
99
+ * @param arg - Optional argument to pass to the selector
100
+ * @returns The information object or value returned by the selector
101
+ * @private
102
+ */
103
+ private requestInformation;
104
+ }
105
+ //# sourceMappingURL=device-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-info.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/device-info.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAI/D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAU;IAKT,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJhC,MAAM,CAAC,QAAQ,CAAC,UAAU,sDAC2B;IAErD,OAAO,CAAC,OAAO,CAAwB;gBACV,GAAG,EAAE,2BAA2B;IAE7D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;;OAKG;IACG,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAczC;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAaxC;;;;OAIG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIxC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAIlC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAoBzC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAoBnD;;;;OAIG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;OAIG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;;;OAMG;YACW,kBAAkB;CAajC"}
@@ -0,0 +1,179 @@
1
+ import { getLogger } from '../../../../lib/logger.js';
2
+ import { parseBinaryPlist } from '../../../../lib/plist/index.js';
3
+ import { MessageAux } from '../dtx-message.js';
4
+ const log = getLogger('DeviceInfo');
5
+ /**
6
+ * DeviceInfo service provides access to device information, file system,
7
+ * and process management through the DTX protocol.
8
+ *
9
+ * Available methods:
10
+ * - ls(path): List directory contents
11
+ * - execnameForPid(pid): Get executable path for a process ID
12
+ * - proclist(): Get list of running processes
13
+ * - isRunningPid(pid): Check if a process is running
14
+ * - hardwareInformation(): Get hardware details
15
+ * - networkInformation(): Get network configuration
16
+ * - machTimeInfo(): Get mach time information
17
+ * - machKernelName(): Get kernel name
18
+ * - kpepDatabase(): Get kernel performance event database
19
+ * - traceCodes(): Get trace code mappings
20
+ * - nameForUid(uid): Get username for UID
21
+ * - nameForGid(gid): Get group name for GID
22
+ */
23
+ export class DeviceInfo {
24
+ dvt;
25
+ static IDENTIFIER = 'com.apple.instruments.server.services.deviceinfo';
26
+ channel = null;
27
+ constructor(dvt) {
28
+ this.dvt = dvt;
29
+ }
30
+ /**
31
+ * Initialize the device info channel
32
+ */
33
+ async initialize() {
34
+ if (!this.channel) {
35
+ this.channel = await this.dvt.makeChannel(DeviceInfo.IDENTIFIER);
36
+ }
37
+ }
38
+ /**
39
+ * List directory contents at the specified path.
40
+ * @param path - The directory path to list
41
+ * @returns Array of filenames
42
+ * @throws {Error} If the directory doesn't exist or cannot be accessed
43
+ */
44
+ async ls(path) {
45
+ const result = await this.requestInformation('directoryListingForPath_', path);
46
+ if (result === null || result === undefined) {
47
+ throw new Error(`Failed to list directory: ${path}`);
48
+ }
49
+ log.debug(`Listed directory ${path}: ${result.length} entries`);
50
+ return result;
51
+ }
52
+ /**
53
+ * Get the full executable path for a given process ID.
54
+ * @param pid - The process identifier
55
+ * @returns The full path to the executable
56
+ */
57
+ async execnameForPid(pid) {
58
+ return this.requestInformation('execnameForPid_', pid);
59
+ }
60
+ /**
61
+ * Get the list of all running processes on the device.
62
+ * @returns Array of process information objects
63
+ */
64
+ async proclist() {
65
+ const result = await this.requestInformation('runningProcesses');
66
+ if (!Array.isArray(result)) {
67
+ throw new Error(`proclist returned invalid data: expected an array, got ${typeof result} (${JSON.stringify(result)})`);
68
+ }
69
+ log.debug(`Retrieved ${result.length} running processes`);
70
+ return result;
71
+ }
72
+ /**
73
+ * Check if a process with the given PID is currently running.
74
+ * @param pid - The process identifier to check
75
+ * @returns true if the process is running, false otherwise
76
+ */
77
+ async isRunningPid(pid) {
78
+ return this.requestInformation('isRunningPid_', pid);
79
+ }
80
+ /**
81
+ * Get hardware information about the device.
82
+ * @returns Object containing hardware information
83
+ */
84
+ async hardwareInformation() {
85
+ return this.requestInformation('hardwareInformation');
86
+ }
87
+ /**
88
+ * Get network configuration information.
89
+ * @returns Object containing network information
90
+ */
91
+ async networkInformation() {
92
+ return this.requestInformation('networkInformation');
93
+ }
94
+ /**
95
+ * Get mach kernel time information.
96
+ * @returns Object containing mach time info
97
+ */
98
+ async machTimeInfo() {
99
+ return this.requestInformation('machTimeInfo');
100
+ }
101
+ /**
102
+ * Get the mach kernel name.
103
+ * @returns The kernel name string
104
+ */
105
+ async machKernelName() {
106
+ return this.requestInformation('machKernelName');
107
+ }
108
+ /**
109
+ * Get the kernel performance event (kpep) database.
110
+ * @returns Object containing kpep database or null if not available
111
+ */
112
+ async kpepDatabase() {
113
+ const kpepData = await this.requestInformation('kpepDatabase');
114
+ if (kpepData === null || kpepData === undefined) {
115
+ return null;
116
+ }
117
+ // The kpepDatabase is returned as binary plist data
118
+ if (Buffer.isBuffer(kpepData)) {
119
+ try {
120
+ return parseBinaryPlist(kpepData);
121
+ }
122
+ catch (error) {
123
+ log.warn('Failed to parse kpep database:', error);
124
+ return null;
125
+ }
126
+ }
127
+ return kpepData;
128
+ }
129
+ /**
130
+ * Get trace code mappings.
131
+ * @returns Object mapping trace codes (as hex strings) to descriptions
132
+ */
133
+ async traceCodes() {
134
+ const codesFile = await this.requestInformation('traceCodesFile');
135
+ if (typeof codesFile !== 'string') {
136
+ return {};
137
+ }
138
+ const codes = {};
139
+ for (const line of codesFile.split('\n')) {
140
+ const match = line.trim().match(/^(\S+)\s+(.+)$/);
141
+ if (match) {
142
+ const [, hex, description] = match;
143
+ codes[hex] = description;
144
+ }
145
+ }
146
+ log.debug(`Retrieved ${Object.keys(codes).length} trace codes`);
147
+ return codes;
148
+ }
149
+ /**
150
+ * Get the username for a given user ID (UID).
151
+ * @param uid - The user identifier
152
+ * @returns The username string
153
+ */
154
+ async nameForUid(uid) {
155
+ return this.requestInformation('nameForUID_', uid);
156
+ }
157
+ /**
158
+ * Get the group name for a given group ID (GID).
159
+ * @param gid - The group identifier
160
+ * @returns The group name string
161
+ */
162
+ async nameForGid(gid) {
163
+ return this.requestInformation('nameForGID_', gid);
164
+ }
165
+ /**
166
+ * Generic method to request information from the device.
167
+ * @param selectorName - The selector name to call
168
+ * @param arg - Optional argument to pass to the selector
169
+ * @returns The information object or value returned by the selector
170
+ * @private
171
+ */
172
+ async requestInformation(selectorName, arg) {
173
+ await this.initialize();
174
+ const call = this.channel.call(selectorName);
175
+ const args = arg !== undefined ? new MessageAux().appendObj(arg) : undefined;
176
+ await call(args);
177
+ return this.channel.receivePlist();
178
+ }
179
+ }
@@ -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;AAoBrD,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,CA+BnC;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM;;;;;;;;GAO3D"}
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;AAqBrD,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,CAiCnC;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM;;;;;;;;GAO3D"}
@@ -7,6 +7,7 @@ import DiagnosticsService from './services/ios/diagnostic-service/index.js';
7
7
  import { DVTSecureSocketProxyService } from './services/ios/dvt/index.js';
8
8
  import { ApplicationListing } from './services/ios/dvt/instruments/application-listing.js';
9
9
  import { ConditionInducer } from './services/ios/dvt/instruments/condition-inducer.js';
10
+ import { DeviceInfo } from './services/ios/dvt/instruments/device-info.js';
10
11
  import { Graphics } from './services/ios/dvt/instruments/graphics.js';
11
12
  import { LocationSimulation } from './services/ios/dvt/instruments/location-simulation.js';
12
13
  import { Screenshot } from './services/ios/dvt/instruments/screenshot.js';
@@ -140,6 +141,7 @@ export async function startDVTService(udid) {
140
141
  const screenshot = new Screenshot(dvtService);
141
142
  const appListing = new ApplicationListing(dvtService);
142
143
  const graphics = new Graphics(dvtService);
144
+ const deviceInfo = new DeviceInfo(dvtService);
143
145
  return {
144
146
  remoteXPC: remoteXPC,
145
147
  dvtService,
@@ -148,6 +150,7 @@ export async function startDVTService(udid) {
148
150
  screenshot,
149
151
  appListing,
150
152
  graphics,
153
+ deviceInfo,
151
154
  };
152
155
  }
153
156
  export async function createRemoteXPCConnection(udid) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "main": "build/src/index.js",
5
5
  "types": "build/src/index.d.ts",
6
6
  "type": "module",
@@ -44,6 +44,7 @@
44
44
  "test:dvt:location-simulation": "mocha test/integration/dvt_instruments/location-simulation-test.ts --exit --timeout 1m",
45
45
  "test:dvt:condition-inducer": "mocha test/integration/dvt_instruments/condition-inducer-test.ts --exit --timeout 1m",
46
46
  "test:dvt:screenshot": "mocha test/integration/dvt_instruments/screenshot-test.ts --exit --timeout 1m",
47
+ "test:dvt:device-info": "mocha test/integration/dvt_instruments/device-info-test.ts --exit --timeout 1m",
47
48
  "test:dvt:applist": "mocha test/integration/dvt_instruments/app-listing-test.ts --exit --timeout 1m",
48
49
  "test:tunnel-creation": "sudo tsx scripts/test-tunnel-creation.ts",
49
50
  "test:tunnel-creation:lsof": "sudo tsx scripts/test-tunnel-creation.ts --keep-open"
package/src/index.ts CHANGED
@@ -29,6 +29,8 @@ export type {
29
29
  ConditionInducerService,
30
30
  ScreenshotService,
31
31
  GraphicsService,
32
+ DeviceInfoService,
33
+ ProcessInfo,
32
34
  ConditionProfile,
33
35
  ConditionGroup,
34
36
  SocketInfo,
package/src/lib/types.ts CHANGED
@@ -574,6 +574,228 @@ export interface GraphicsService {
574
574
  messages(): AsyncGenerator<unknown, void, unknown>;
575
575
  }
576
576
 
577
+ /**
578
+ * Process information
579
+ */
580
+ export interface ProcessInfo {
581
+ /** Process identifier (may be negative for system services) */
582
+ pid: number;
583
+
584
+ /** Process name */
585
+ name?: string;
586
+
587
+ /** Indicates whether the process is an application */
588
+ isApplication: boolean;
589
+
590
+ /** Bundle identifier for application processes */
591
+ bundleIdentifier?: string;
592
+
593
+ /** Full path to the executable */
594
+ realAppName?: string;
595
+
596
+ /** Raw device start timestamp */
597
+ startDate?: {
598
+ /** Mach-based timestamp value */
599
+ 'NS.time': number;
600
+ };
601
+
602
+ /** Whether crash analysis should include corpse sampling */
603
+ shouldAnalyzeWithCorpse?: boolean;
604
+ }
605
+
606
+ /**
607
+ * DeviceInfo service interface for accessing device information,
608
+ * file system, and process management
609
+ */
610
+ export interface DeviceInfoService {
611
+ /**
612
+ * List directory contents
613
+ * @param path The directory path to list
614
+ * @returns Array of filenames
615
+ */
616
+ ls(path: string): Promise<string[]>;
617
+
618
+ /**
619
+ * Get executable path for a process
620
+ * @param pid The process identifier
621
+ * @returns The full path to the executable
622
+ */
623
+ execnameForPid(pid: number): Promise<string>;
624
+
625
+ /**
626
+ * Get list of running processes
627
+ * @returns Array of process information
628
+ * @example
629
+ * ```typescript
630
+ * const processes = await deviceInfo.proclist();
631
+ * // Example response:
632
+ * // [
633
+ * // {
634
+ * // name: 'audioaccessoryd',
635
+ * // startDate: { 'NS.time': 786563887.8186979 },
636
+ * // isApplication: false,
637
+ * // pid: 77,
638
+ * // realAppName: '/usr/libexec/audioaccessoryd'
639
+ * // },
640
+ * // {
641
+ * // name: 'dmd',
642
+ * // startDate: { 'NS.time': 786563890.2724509 },
643
+ * // isApplication: false,
644
+ * // pid: -102,
645
+ * // realAppName: '/usr/libexec/dmd'
646
+ * // },
647
+ * // ...
648
+ * // ]
649
+ * ```
650
+ */
651
+ proclist(): Promise<ProcessInfo[]>;
652
+
653
+ /**
654
+ * Check if a process is running
655
+ * @param pid The process identifier
656
+ * @returns true if running, false otherwise
657
+ */
658
+ isRunningPid(pid: number): Promise<boolean>;
659
+
660
+ /**
661
+ * Get hardware information
662
+ * @returns Hardware information object
663
+ * @example
664
+ * ```typescript
665
+ * const hwInfo = await deviceInfo.hardwareInformation();
666
+ * // Example response:
667
+ * // {
668
+ * // numberOfPhysicalCpus: 6,
669
+ * // hwCPUsubtype: 2,
670
+ * // numberOfCpus: 6,
671
+ * // hwCPUtype: 16777228,
672
+ * // hwCPU64BitCapable: 1,
673
+ * // ProcessorTraceState: {
674
+ * // HWTraceVersion: '{\n "lib_ver": "libhwtrace @ tag libhwtrace-118.1",\n "api_ver": 21,\n ...\n}',
675
+ * // Streaming: false,
676
+ * // ProdTraceSupported: false,
677
+ * // AllocatedBufferSize: 0,
678
+ * // HWSupported: false,
679
+ * // HWConfigured: false,
680
+ * // RequestedBufferSize: 0,
681
+ * // DevTraceSupported: false
682
+ * // }
683
+ * // }
684
+ * ```
685
+ */
686
+ hardwareInformation(): Promise<any>;
687
+
688
+ /**
689
+ * Get network information
690
+ * @returns Network information object
691
+ * @example
692
+ * ```typescript
693
+ * const networkInfo = await deviceInfo.networkInformation();
694
+ * // Example response:
695
+ * // {
696
+ * // en2: 'Ethernet Adapter (en2)',
697
+ * // en0: 'Wi-Fi',
698
+ * // en1: 'Ethernet Adapter (en1)',
699
+ * // lo0: 'Loopback'
700
+ * // }
701
+ * ```
702
+ */
703
+ networkInformation(): Promise<any>;
704
+
705
+ /**
706
+ * Get mach time information
707
+ * @returns Mach time info array containing [machAbsoluteTime, numer, denom, machContinuousTime, systemTime, timezone]
708
+ * @example
709
+ * ```typescript
710
+ * const machTime = await deviceInfo.machTimeInfo();
711
+ * // Example response:
712
+ * // [
713
+ * // 1536005260807, // machAbsoluteTime
714
+ * // 125, // numer
715
+ * // 3, // denom
716
+ * // 1713684132688, // machContinuousTime
717
+ * // 1764942215.065243, // systemTime
718
+ * // 'Asia/Kolkata' // timezone
719
+ * // ]
720
+ * ```
721
+ */
722
+ machTimeInfo(): Promise<any>;
723
+
724
+ /**
725
+ * Get mach kernel name
726
+ * @returns Kernel name string
727
+ * @example
728
+ * ```typescript
729
+ * const kernelName = await deviceInfo.machKernelName();
730
+ * // Example response:
731
+ * // '/mach.release.t8030'
732
+ * ```
733
+ */
734
+ machKernelName(): Promise<string>;
735
+
736
+ /**
737
+ * Get kernel performance event database
738
+ * @returns KPEP database object or null
739
+ * @example
740
+ * ```typescript
741
+ * const kpep = await deviceInfo.kpepDatabase();
742
+ * // Example response:
743
+ * // {
744
+ * // system: {
745
+ * // cpu: {
746
+ * // config_counters: 1020,
747
+ * // marketing_name: 'Apple A13',
748
+ * // fixed_counters: 3,
749
+ * // aliases: { ... },
750
+ * // events: { ... },
751
+ * // architecture: 'arm64',
752
+ * // power_counters: -32
753
+ * // }
754
+ * // },
755
+ * // internal: false,
756
+ * // id: 'cpu_100000c_2_462504d2',
757
+ * // name: 'a13',
758
+ * // version: [1, 0]
759
+ * // }
760
+ * ```
761
+ */
762
+ kpepDatabase(): Promise<any | null>;
763
+
764
+ /**
765
+ * Get trace code mappings
766
+ * @returns Object mapping trace codes (as hex strings) to descriptions
767
+ * @example
768
+ * ```typescript
769
+ * const codes = await deviceInfo.traceCodes();
770
+ * // Example response:
771
+ * // {
772
+ * // '0x1020000': 'KTrap_DivideError',
773
+ * // '0x1020004': 'KTrap_Debug',
774
+ * // '0x1020008': 'KTrap_NMI',
775
+ * // '0x102000c': 'KTrap_Int3',
776
+ * // '0x1020010': 'KTrap_Overflow',
777
+ * // '0x1020014': 'KTrap_BoundRange',
778
+ * // ...
779
+ * // }
780
+ * ```
781
+ */
782
+ traceCodes(): Promise<Record<string, string>>;
783
+
784
+ /**
785
+ * Get username for UID
786
+ * @param uid The user identifier
787
+ * @returns Username string
788
+ */
789
+ nameForUid(uid: number): Promise<string>;
790
+
791
+ /**
792
+ * Get group name for GID
793
+ * @param gid The group identifier
794
+ * @returns Group name string
795
+ */
796
+ nameForGid(gid: number): Promise<string>;
797
+ }
798
+
577
799
  /**
578
800
  * DVT service with connection
579
801
  * This allows callers to properly manage the connection lifecycle
@@ -591,6 +813,8 @@ export interface DVTServiceWithConnection {
591
813
  appListing: AppListService;
592
814
  /** The Graphics service instance */
593
815
  graphics: GraphicsService;
816
+ /** The DeviceInfo service instance */
817
+ deviceInfo: DeviceInfoService;
594
818
  /** The RemoteXPC connection that can be used to close the connection */
595
819
  remoteXPC: RemoteXpcConnection;
596
820
  }
@@ -0,0 +1,217 @@
1
+ import { getLogger } from '../../../../lib/logger.js';
2
+ import { parseBinaryPlist } from '../../../../lib/plist/index.js';
3
+ import type { ProcessInfo } from '../../../../lib/types.js';
4
+ import type { Channel } from '../channel.js';
5
+ import { MessageAux } from '../dtx-message.js';
6
+ import type { DVTSecureSocketProxyService } from '../index.js';
7
+
8
+ const log = getLogger('DeviceInfo');
9
+
10
+ /**
11
+ * DeviceInfo service provides access to device information, file system,
12
+ * and process management through the DTX protocol.
13
+ *
14
+ * Available methods:
15
+ * - ls(path): List directory contents
16
+ * - execnameForPid(pid): Get executable path for a process ID
17
+ * - proclist(): Get list of running processes
18
+ * - isRunningPid(pid): Check if a process is running
19
+ * - hardwareInformation(): Get hardware details
20
+ * - networkInformation(): Get network configuration
21
+ * - machTimeInfo(): Get mach time information
22
+ * - machKernelName(): Get kernel name
23
+ * - kpepDatabase(): Get kernel performance event database
24
+ * - traceCodes(): Get trace code mappings
25
+ * - nameForUid(uid): Get username for UID
26
+ * - nameForGid(gid): Get group name for GID
27
+ */
28
+ export class DeviceInfo {
29
+ static readonly IDENTIFIER =
30
+ 'com.apple.instruments.server.services.deviceinfo';
31
+
32
+ private channel: Channel | null = null;
33
+ constructor(private readonly dvt: DVTSecureSocketProxyService) {}
34
+
35
+ /**
36
+ * Initialize the device info channel
37
+ */
38
+ async initialize(): Promise<void> {
39
+ if (!this.channel) {
40
+ this.channel = await this.dvt.makeChannel(DeviceInfo.IDENTIFIER);
41
+ }
42
+ }
43
+
44
+ /**
45
+ * List directory contents at the specified path.
46
+ * @param path - The directory path to list
47
+ * @returns Array of filenames
48
+ * @throws {Error} If the directory doesn't exist or cannot be accessed
49
+ */
50
+ async ls(path: string): Promise<string[]> {
51
+ const result = await this.requestInformation(
52
+ 'directoryListingForPath_',
53
+ path,
54
+ );
55
+
56
+ if (result === null || result === undefined) {
57
+ throw new Error(`Failed to list directory: ${path}`);
58
+ }
59
+
60
+ log.debug(`Listed directory ${path}: ${result.length} entries`);
61
+ return result;
62
+ }
63
+
64
+ /**
65
+ * Get the full executable path for a given process ID.
66
+ * @param pid - The process identifier
67
+ * @returns The full path to the executable
68
+ */
69
+ async execnameForPid(pid: number): Promise<string> {
70
+ return this.requestInformation('execnameForPid_', pid);
71
+ }
72
+
73
+ /**
74
+ * Get the list of all running processes on the device.
75
+ * @returns Array of process information objects
76
+ */
77
+ async proclist(): Promise<ProcessInfo[]> {
78
+ const result = await this.requestInformation('runningProcesses');
79
+
80
+ if (!Array.isArray(result)) {
81
+ throw new Error(
82
+ `proclist returned invalid data: expected an array, got ${typeof result} (${JSON.stringify(result)})`,
83
+ );
84
+ }
85
+
86
+ log.debug(`Retrieved ${result.length} running processes`);
87
+ return result;
88
+ }
89
+
90
+ /**
91
+ * Check if a process with the given PID is currently running.
92
+ * @param pid - The process identifier to check
93
+ * @returns true if the process is running, false otherwise
94
+ */
95
+ async isRunningPid(pid: number): Promise<boolean> {
96
+ return this.requestInformation('isRunningPid_', pid);
97
+ }
98
+
99
+ /**
100
+ * Get hardware information about the device.
101
+ * @returns Object containing hardware information
102
+ */
103
+ async hardwareInformation(): Promise<any> {
104
+ return this.requestInformation('hardwareInformation');
105
+ }
106
+
107
+ /**
108
+ * Get network configuration information.
109
+ * @returns Object containing network information
110
+ */
111
+ async networkInformation(): Promise<any> {
112
+ return this.requestInformation('networkInformation');
113
+ }
114
+
115
+ /**
116
+ * Get mach kernel time information.
117
+ * @returns Object containing mach time info
118
+ */
119
+ async machTimeInfo(): Promise<any> {
120
+ return this.requestInformation('machTimeInfo');
121
+ }
122
+
123
+ /**
124
+ * Get the mach kernel name.
125
+ * @returns The kernel name string
126
+ */
127
+ async machKernelName(): Promise<string> {
128
+ return this.requestInformation('machKernelName');
129
+ }
130
+
131
+ /**
132
+ * Get the kernel performance event (kpep) database.
133
+ * @returns Object containing kpep database or null if not available
134
+ */
135
+ async kpepDatabase(): Promise<any | null> {
136
+ const kpepData = await this.requestInformation('kpepDatabase');
137
+
138
+ if (kpepData === null || kpepData === undefined) {
139
+ return null;
140
+ }
141
+
142
+ // The kpepDatabase is returned as binary plist data
143
+ if (Buffer.isBuffer(kpepData)) {
144
+ try {
145
+ return parseBinaryPlist(kpepData);
146
+ } catch (error) {
147
+ log.warn('Failed to parse kpep database:', error);
148
+ return null;
149
+ }
150
+ }
151
+
152
+ return kpepData;
153
+ }
154
+
155
+ /**
156
+ * Get trace code mappings.
157
+ * @returns Object mapping trace codes (as hex strings) to descriptions
158
+ */
159
+ async traceCodes(): Promise<Record<string, string>> {
160
+ const codesFile = await this.requestInformation('traceCodesFile');
161
+ if (typeof codesFile !== 'string') {
162
+ return {};
163
+ }
164
+
165
+ const codes: Record<string, string> = {};
166
+
167
+ for (const line of codesFile.split('\n')) {
168
+ const match = line.trim().match(/^(\S+)\s+(.+)$/);
169
+ if (match) {
170
+ const [, hex, description] = match;
171
+ codes[hex] = description;
172
+ }
173
+ }
174
+
175
+ log.debug(`Retrieved ${Object.keys(codes).length} trace codes`);
176
+ return codes;
177
+ }
178
+
179
+ /**
180
+ * Get the username for a given user ID (UID).
181
+ * @param uid - The user identifier
182
+ * @returns The username string
183
+ */
184
+ async nameForUid(uid: number): Promise<string> {
185
+ return this.requestInformation('nameForUID_', uid);
186
+ }
187
+
188
+ /**
189
+ * Get the group name for a given group ID (GID).
190
+ * @param gid - The group identifier
191
+ * @returns The group name string
192
+ */
193
+ async nameForGid(gid: number): Promise<string> {
194
+ return this.requestInformation('nameForGID_', gid);
195
+ }
196
+
197
+ /**
198
+ * Generic method to request information from the device.
199
+ * @param selectorName - The selector name to call
200
+ * @param arg - Optional argument to pass to the selector
201
+ * @returns The information object or value returned by the selector
202
+ * @private
203
+ */
204
+ private async requestInformation(
205
+ selectorName: string,
206
+ arg?: any,
207
+ ): Promise<any> {
208
+ await this.initialize();
209
+
210
+ const call = this.channel!.call(selectorName);
211
+ const args =
212
+ arg !== undefined ? new MessageAux().appendObj(arg) : undefined;
213
+
214
+ await call(args);
215
+ return this.channel!.receivePlist();
216
+ }
217
+ }
package/src/services.ts CHANGED
@@ -20,6 +20,7 @@ import DiagnosticsService from './services/ios/diagnostic-service/index.js';
20
20
  import { DVTSecureSocketProxyService } from './services/ios/dvt/index.js';
21
21
  import { ApplicationListing } from './services/ios/dvt/instruments/application-listing.js';
22
22
  import { ConditionInducer } from './services/ios/dvt/instruments/condition-inducer.js';
23
+ import { DeviceInfo } from './services/ios/dvt/instruments/device-info.js';
23
24
  import { Graphics } from './services/ios/dvt/instruments/graphics.js';
24
25
  import { LocationSimulation } from './services/ios/dvt/instruments/location-simulation.js';
25
26
  import { Screenshot } from './services/ios/dvt/instruments/screenshot.js';
@@ -206,6 +207,7 @@ export async function startDVTService(
206
207
  const screenshot = new Screenshot(dvtService);
207
208
  const appListing = new ApplicationListing(dvtService);
208
209
  const graphics = new Graphics(dvtService);
210
+ const deviceInfo = new DeviceInfo(dvtService);
209
211
 
210
212
  return {
211
213
  remoteXPC: remoteXPC as RemoteXpcConnection,
@@ -215,6 +217,7 @@ export async function startDVTService(
215
217
  screenshot,
216
218
  appListing,
217
219
  graphics,
220
+ deviceInfo,
218
221
  };
219
222
  }
220
223