appium-ios-remotexpc 0.16.0 → 0.17.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 +12 -0
- package/build/src/lib/types.d.ts +29 -0
- package/build/src/lib/types.d.ts.map +1 -1
- package/build/src/services/ios/dvt/index.d.ts.map +1 -1
- package/build/src/services/ios/dvt/index.js +5 -2
- package/build/src/services/ios/dvt/instruments/application-listing.d.ts +46 -0
- package/build/src/services/ios/dvt/instruments/application-listing.d.ts.map +1 -0
- package/build/src/services/ios/dvt/instruments/application-listing.js +41 -0
- package/build/src/services/ios/dvt/nskeyedarchiver-decoder.d.ts.map +1 -1
- package/build/src/services/ios/dvt/nskeyedarchiver-decoder.js +42 -17
- package/build/src/services.d.ts.map +1 -1
- package/build/src/services.js +3 -0
- package/package.json +2 -1
- package/src/lib/types.ts +29 -0
- package/src/services/ios/dvt/index.ts +6 -2
- package/src/services/ios/dvt/instruments/application-listing.ts +97 -0
- package/src/services/ios/dvt/nskeyedarchiver-decoder.ts +62 -19
- package/src/services.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [0.17.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.16.1...v0.17.0) (2025-12-05)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **dvt:** implement app list ([#103](https://github.com/appium/appium-ios-remotexpc/issues/103)) ([b33b836](https://github.com/appium/appium-ios-remotexpc/commit/b33b8362af261a9d9f6b8ad3c4e937f1f0dfd811))
|
|
6
|
+
|
|
7
|
+
## [0.16.1](https://github.com/appium/appium-ios-remotexpc/compare/v0.16.0...v0.16.1) (2025-12-05)
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* **deps:** bump actions/checkout from 5.0.0 to 6.0.0 ([#106](https://github.com/appium/appium-ios-remotexpc/issues/106)) ([151ba4e](https://github.com/appium/appium-ios-remotexpc/commit/151ba4e668009c4936541fb7001feaf84f7a315f))
|
|
12
|
+
|
|
1
13
|
## [0.16.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.15.0...v0.16.0) (2025-12-02)
|
|
2
14
|
|
|
3
15
|
### Features
|
package/build/src/lib/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { PacketData } from 'appium-ios-tuntap';
|
|
|
5
5
|
import { EventEmitter } from 'events';
|
|
6
6
|
import type { ServiceConnection } from '../service-connection.js';
|
|
7
7
|
import type { BaseService, Service } from '../services/ios/base-service.js';
|
|
8
|
+
import type { iOSApplication } from '../services/ios/dvt/instruments/application-listing.js';
|
|
8
9
|
import type { LocationCoordinates } from '../services/ios/dvt/instruments/location-simulation.js';
|
|
9
10
|
import { ProvisioningProfile } from '../services/ios/misagent/provisioning-profile.js';
|
|
10
11
|
import type { PowerAssertionOptions } from '../services/ios/power-assertion/index.js';
|
|
@@ -459,6 +460,32 @@ export interface ScreenshotService {
|
|
|
459
460
|
*/
|
|
460
461
|
getScreenshot(): Promise<Buffer>;
|
|
461
462
|
}
|
|
463
|
+
/**
|
|
464
|
+
* Application listing service interface
|
|
465
|
+
*/
|
|
466
|
+
export interface AppListService {
|
|
467
|
+
/**
|
|
468
|
+
* Get the list of iOS applications on the device
|
|
469
|
+
* @returns {Promise<iOSApplication>}
|
|
470
|
+
* e.g.
|
|
471
|
+
* [
|
|
472
|
+
* {
|
|
473
|
+
* ExtensionDictionary: { NSExtensionPointIdentifier: 'com.apple.mlhost.worker', ... },
|
|
474
|
+
* Version: '1.0',
|
|
475
|
+
* DisplayName: 'ModelMonitoringLighthousePlugin',
|
|
476
|
+
* CFBundleIdentifier: 'com.apple.aeroml.ModelMonitoringLighthouse.ModelMonitoringLighthousePlugin',
|
|
477
|
+
* BundlePath: '/System/Library/ExtensionKit/Extensions/ModelMonitoringLighthousePlugin.appex',
|
|
478
|
+
* ExecutableName: 'ModelMonitoringLighthousePlugin',
|
|
479
|
+
* Restricted: 1,
|
|
480
|
+
* Type: 'PluginKit',
|
|
481
|
+
* PluginIdentifier: 'com.apple.aeroml.ModelMonitoringLighthouse.ModelMonitoringLighthousePlugin',
|
|
482
|
+
* PluginUUID: 'AF17A1FE-E454-57C8-B963-0832FD71AB08'
|
|
483
|
+
* },
|
|
484
|
+
* ...
|
|
485
|
+
* ]
|
|
486
|
+
*/
|
|
487
|
+
list(): Promise<iOSApplication[]>;
|
|
488
|
+
}
|
|
462
489
|
/**
|
|
463
490
|
* Graphics service interface for OpenGL/graphics monitoring
|
|
464
491
|
*/
|
|
@@ -497,6 +524,8 @@ export interface DVTServiceWithConnection {
|
|
|
497
524
|
conditionInducer: ConditionInducerService;
|
|
498
525
|
/** The Screenshot service instance */
|
|
499
526
|
screenshot: ScreenshotService;
|
|
527
|
+
/** The Application Listing service instance */
|
|
528
|
+
appListing: AppListService;
|
|
500
529
|
/** The Graphics service instance */
|
|
501
530
|
graphics: GraphicsService;
|
|
502
531
|
/** The RemoteXPC connection that can be used to close the connection */
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/dvt/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAgB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAczE;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,WAAW;IAC1D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wCAAwC;IACxE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IAEtC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;IAC7E,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,UAAU,CAA2B;gBAEjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAQrC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9B;;OAEG;IACH,uBAAuB,IAAI,eAAe;IAI1C;;;;OAIG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BvD;;;;;;OAMG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,IAAI,GAAE,UAAU,GAAG,IAAW,EAC9B,YAAY,GAAE,OAAc,GAC3B,OAAO,CAAC,IAAI,CAAC;IAwDhB;;;;OAIG;IACG,SAAS,CACb,OAAO,GAAE,MAAsD,GAC9D,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAiBxB;;;;OAIG;IACG,WAAW,CACf,OAAO,GAAE,MAAsD,GAC9D,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAgClC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC5B;;OAEG;YACW,gBAAgB;IAiC9B,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,8BAA8B;IAiBtC;;OAEG;YACW,qBAAqB;IA6BnC;;OAEG;YACW,mBAAmB;IA4CjC;;OAEG;YACW,SAAS;IAoCvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2BvB;;OAEG;IACH,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/dvt/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAgB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAczE;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,WAAW;IAC1D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wCAAwC;IACxE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IAEtC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;IAC7E,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,UAAU,CAA2B;gBAEjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAQrC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9B;;OAEG;IACH,uBAAuB,IAAI,eAAe;IAI1C;;;;OAIG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BvD;;;;;;OAMG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,IAAI,GAAE,UAAU,GAAG,IAAW,EAC9B,YAAY,GAAE,OAAc,GAC3B,OAAO,CAAC,IAAI,CAAC;IAwDhB;;;;OAIG;IACG,SAAS,CACb,OAAO,GAAE,MAAsD,GAC9D,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAiBxB;;;;OAIG;IACG,WAAW,CACf,OAAO,GAAE,MAAsD,GAC9D,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAgClC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC5B;;OAEG;YACW,gBAAgB;IAiC9B,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,8BAA8B;IAiBtC;;OAEG;YACW,qBAAqB;IA6BnC;;OAEG;YACW,mBAAmB;IA4CjC;;OAEG;YACW,SAAS;IAoCvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2BvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4D1B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkC9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAwC5B;AAED,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
|
|
@@ -376,11 +376,14 @@ export class DVTSecureSocketProxyService extends BaseService {
|
|
|
376
376
|
* Archive a value using NSKeyedArchiver format for DTX protocol
|
|
377
377
|
*/
|
|
378
378
|
archiveValue(value) {
|
|
379
|
+
// Handle null values by referencing the $null marker
|
|
380
|
+
const rootIndex = value === null ? 0 : 1;
|
|
381
|
+
const objects = value === null ? ['$null'] : ['$null', value];
|
|
379
382
|
const archived = {
|
|
380
383
|
$version: 100000,
|
|
381
384
|
$archiver: 'NSKeyedArchiver',
|
|
382
|
-
$top: { root: new PlistUID(
|
|
383
|
-
$objects:
|
|
385
|
+
$top: { root: new PlistUID(rootIndex) },
|
|
386
|
+
$objects: objects,
|
|
384
387
|
};
|
|
385
388
|
return createBinaryPlist(archived);
|
|
386
389
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { DVTSecureSocketProxyService } from '../index.js';
|
|
2
|
+
export interface iOSApplication {
|
|
3
|
+
/** Display name of the application/plugin */
|
|
4
|
+
DisplayName: string;
|
|
5
|
+
/** Bundle identifier in reverse domain notation */
|
|
6
|
+
CFBundleIdentifier: string;
|
|
7
|
+
/** Full path to the application bundle */
|
|
8
|
+
BundlePath: string;
|
|
9
|
+
/** Version string of the application */
|
|
10
|
+
Version: string;
|
|
11
|
+
/** Name of the main executable file */
|
|
12
|
+
ExecutableName: string;
|
|
13
|
+
/** Access restriction flag (0 = unrestricted, 1 = restricted) */
|
|
14
|
+
Restricted: number;
|
|
15
|
+
/** Bundle type (e.g., 'PluginKit', 'Application') */
|
|
16
|
+
Type: string;
|
|
17
|
+
/** Unique identifier for plugins */
|
|
18
|
+
PluginIdentifier: string;
|
|
19
|
+
/** UUID for the plugin instance */
|
|
20
|
+
PluginUUID: string;
|
|
21
|
+
/** Extension configuration with variable structure */
|
|
22
|
+
ExtensionDictionary?: Record<string, any>;
|
|
23
|
+
/** Bundle identifier of the containing app (plugins only) */
|
|
24
|
+
ContainerBundleIdentifier?: string;
|
|
25
|
+
/** Path to the container app bundle (plugins only) */
|
|
26
|
+
ContainerBundlePath?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Application Listing service for retrieving installed applications
|
|
30
|
+
*/
|
|
31
|
+
export declare class ApplicationListing {
|
|
32
|
+
private readonly dvt;
|
|
33
|
+
static readonly IDENTIFIER = "com.apple.instruments.server.services.device.applictionListing";
|
|
34
|
+
private channel;
|
|
35
|
+
constructor(dvt: DVTSecureSocketProxyService);
|
|
36
|
+
/**
|
|
37
|
+
* Initialize the application listing channel
|
|
38
|
+
*/
|
|
39
|
+
initialize(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Get the list of installed applications from the device
|
|
42
|
+
* @returns {Promise<iOSApplication[]>}
|
|
43
|
+
*/
|
|
44
|
+
list(): Promise<iOSApplication[]>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=application-listing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-listing.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/application-listing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAI/D,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IAEpB,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IAEvB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IAEb,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IAEnB,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C,6DAA6D;IAC7D,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAMjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,MAAM,CAAC,QAAQ,CAAC,UAAU,oEACyC;IAEnE,OAAO,CAAC,OAAO,CAAwB;gBAEV,GAAG,EAAE,2BAA2B;IAE7D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CA0BxC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
+
import { MessageAux } from '../dtx-message.js';
|
|
3
|
+
const log = getLogger('ApplicationListing');
|
|
4
|
+
/**
|
|
5
|
+
* Application Listing service for retrieving installed applications
|
|
6
|
+
*/
|
|
7
|
+
export class ApplicationListing {
|
|
8
|
+
dvt;
|
|
9
|
+
static IDENTIFIER = 'com.apple.instruments.server.services.device.applictionListing';
|
|
10
|
+
channel = null;
|
|
11
|
+
constructor(dvt) {
|
|
12
|
+
this.dvt = dvt;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the application listing channel
|
|
16
|
+
*/
|
|
17
|
+
async initialize() {
|
|
18
|
+
if (this.channel) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.channel = await this.dvt.makeChannel(ApplicationListing.IDENTIFIER);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the list of installed applications from the device
|
|
25
|
+
* @returns {Promise<iOSApplication[]>}
|
|
26
|
+
*/
|
|
27
|
+
async list() {
|
|
28
|
+
await this.initialize();
|
|
29
|
+
const args = new MessageAux().appendObj(null).appendObj(null);
|
|
30
|
+
await this.channel.call('installedApplicationsMatching_registerUpdateToken_')(args);
|
|
31
|
+
const result = await this.channel.receivePlist();
|
|
32
|
+
if (!result) {
|
|
33
|
+
log.warn('Received null/undefined response from installedApplicationsMatching');
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
if (Array.isArray(result)) {
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
throw new Error(`Unexpected response format from installedApplicationsMatching: ${JSON.stringify(result)}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nskeyedarchiver-decoder.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/dvt/nskeyedarchiver-decoder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nskeyedarchiver-decoder.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/dvt/nskeyedarchiver-decoder.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;gBAElB,IAAI,EAAE,GAAG;IAUrB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO;IAa3C;;OAEG;IACH,MAAM,IAAI,GAAG;IA8Bb;;OAEG;IACH,OAAO,CAAC,YAAY;IAmHpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAuBzB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAiBpD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getLogger } from '../../../lib/logger.js';
|
|
2
2
|
const log = getLogger('NSKeyedArchiverDecoder');
|
|
3
|
+
const MAX_DECODE_DEPTH = 1000;
|
|
3
4
|
/**
|
|
4
5
|
* Decode NSKeyedArchiver formatted data into native JavaScript objects
|
|
5
6
|
*
|
|
@@ -66,42 +67,59 @@ export class NSKeyedArchiverDecoder {
|
|
|
66
67
|
/**
|
|
67
68
|
* Decode an object at a specific index
|
|
68
69
|
*/
|
|
69
|
-
decodeObject(index) {
|
|
70
|
+
decodeObject(index, visited = new Set(), depth = 0) {
|
|
71
|
+
// Prevent stack overflow with depth limit
|
|
72
|
+
if (depth > MAX_DECODE_DEPTH) {
|
|
73
|
+
log.warn(`Maximum decode depth exceeded at index ${index}`);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
70
76
|
if (index < 0 || index >= this.objects.length) {
|
|
71
77
|
return null;
|
|
72
78
|
}
|
|
79
|
+
// Prevent infinite recursion
|
|
80
|
+
if (visited.has(index)) {
|
|
81
|
+
return null; // Return null for circular references
|
|
82
|
+
}
|
|
73
83
|
// Check cache
|
|
74
84
|
if (this.decoded.has(index)) {
|
|
75
85
|
return this.decoded.get(index);
|
|
76
86
|
}
|
|
87
|
+
visited.add(index);
|
|
77
88
|
const obj = this.objects[index];
|
|
78
89
|
// Handle null marker
|
|
79
90
|
if (obj === '$null' || obj === null) {
|
|
91
|
+
visited.delete(index);
|
|
80
92
|
return null;
|
|
81
93
|
}
|
|
82
94
|
// Handle primitive types
|
|
83
95
|
if (typeof obj !== 'object') {
|
|
96
|
+
visited.delete(index);
|
|
84
97
|
return obj;
|
|
85
98
|
}
|
|
86
99
|
// Handle Buffer/binary data (eg. screenshots)
|
|
87
100
|
if (Buffer.isBuffer(obj)) {
|
|
88
101
|
this.decoded.set(index, obj);
|
|
102
|
+
visited.delete(index);
|
|
89
103
|
return obj;
|
|
90
104
|
}
|
|
91
105
|
// Handle UID references
|
|
92
106
|
if ('CF$UID' in obj) {
|
|
93
|
-
|
|
107
|
+
const result = this.decodeObject(obj.CF$UID, visited, depth + 1);
|
|
108
|
+
visited.delete(index);
|
|
109
|
+
return result;
|
|
94
110
|
}
|
|
95
111
|
// Handle NSDictionary (NS.keys + NS.objects) - check this FIRST before NSArray
|
|
96
112
|
if ('NS.keys' in obj && 'NS.objects' in obj) {
|
|
97
|
-
const result = this.decodeDictionary(obj['NS.keys'], obj['NS.objects']);
|
|
113
|
+
const result = this.decodeDictionary(obj['NS.keys'], obj['NS.objects'], visited, depth);
|
|
98
114
|
this.decoded.set(index, result);
|
|
115
|
+
visited.delete(index);
|
|
99
116
|
return result;
|
|
100
117
|
}
|
|
101
118
|
// Handle NSArray (NS.objects only, without NS.keys)
|
|
102
119
|
if ('NS.objects' in obj) {
|
|
103
|
-
const result = this.decodeArray(obj['NS.objects']);
|
|
120
|
+
const result = this.decodeArray(obj['NS.objects'], visited, depth);
|
|
104
121
|
this.decoded.set(index, result);
|
|
122
|
+
visited.delete(index);
|
|
105
123
|
return result;
|
|
106
124
|
}
|
|
107
125
|
// Handle regular objects - just return as-is but resolve references
|
|
@@ -112,11 +130,17 @@ export class NSKeyedArchiverDecoder {
|
|
|
112
130
|
}
|
|
113
131
|
if (typeof value === 'number') {
|
|
114
132
|
// Could be a reference or primitive
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
133
|
+
if (value < this.objects.length && value >= 0) {
|
|
134
|
+
const referenced = this.objects[value];
|
|
135
|
+
if (referenced &&
|
|
136
|
+
typeof referenced === 'object' &&
|
|
137
|
+
referenced !== '$null' &&
|
|
138
|
+
!visited.has(value)) {
|
|
139
|
+
result[key] = this.decodeObject(value, visited, depth + 1);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
result[key] = value;
|
|
143
|
+
}
|
|
120
144
|
}
|
|
121
145
|
else {
|
|
122
146
|
result[key] = value;
|
|
@@ -124,8 +148,8 @@ export class NSKeyedArchiverDecoder {
|
|
|
124
148
|
}
|
|
125
149
|
else if (typeof value === 'object' && value && 'CF$UID' in value) {
|
|
126
150
|
const uid = value.CF$UID;
|
|
127
|
-
if (typeof uid === 'number') {
|
|
128
|
-
result[key] = this.decodeObject(uid);
|
|
151
|
+
if (typeof uid === 'number' && !visited.has(uid)) {
|
|
152
|
+
result[key] = this.decodeObject(uid, visited, depth + 1);
|
|
129
153
|
}
|
|
130
154
|
else {
|
|
131
155
|
result[key] = value;
|
|
@@ -136,21 +160,22 @@ export class NSKeyedArchiverDecoder {
|
|
|
136
160
|
}
|
|
137
161
|
}
|
|
138
162
|
this.decoded.set(index, result);
|
|
163
|
+
visited.delete(index);
|
|
139
164
|
return result;
|
|
140
165
|
}
|
|
141
166
|
/**
|
|
142
167
|
* Decode an NSArray
|
|
143
168
|
*/
|
|
144
|
-
decodeArray(refs) {
|
|
169
|
+
decodeArray(refs, visited = new Set(), depth = 0) {
|
|
145
170
|
if (!Array.isArray(refs)) {
|
|
146
171
|
return [];
|
|
147
172
|
}
|
|
148
173
|
return refs.map((ref) => {
|
|
149
174
|
if (typeof ref === 'number') {
|
|
150
|
-
return this.decodeObject(ref);
|
|
175
|
+
return this.decodeObject(ref, visited, depth + 1);
|
|
151
176
|
}
|
|
152
177
|
else if (typeof ref === 'object' && ref && 'CF$UID' in ref) {
|
|
153
|
-
return this.decodeObject(ref.CF$UID);
|
|
178
|
+
return this.decodeObject(ref.CF$UID, visited, depth + 1);
|
|
154
179
|
}
|
|
155
180
|
return ref;
|
|
156
181
|
});
|
|
@@ -158,14 +183,14 @@ export class NSKeyedArchiverDecoder {
|
|
|
158
183
|
/**
|
|
159
184
|
* Decode an NSDictionary
|
|
160
185
|
*/
|
|
161
|
-
decodeDictionary(keyRefs, valueRefs) {
|
|
186
|
+
decodeDictionary(keyRefs, valueRefs, visited = new Set(), depth = 0) {
|
|
162
187
|
if (!Array.isArray(keyRefs) || !Array.isArray(valueRefs)) {
|
|
163
188
|
return {};
|
|
164
189
|
}
|
|
165
190
|
const result = {};
|
|
166
191
|
for (let i = 0; i < keyRefs.length && i < valueRefs.length; i++) {
|
|
167
|
-
const key = this.decodeObject(keyRefs[i]);
|
|
168
|
-
const value = this.decodeObject(valueRefs[i]);
|
|
192
|
+
const key = this.decodeObject(keyRefs[i], visited, depth + 1);
|
|
193
|
+
const value = this.decodeObject(valueRefs[i], visited, depth + 1);
|
|
169
194
|
if (typeof key === 'string') {
|
|
170
195
|
result[key] = value;
|
|
171
196
|
}
|
|
@@ -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;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"}
|
package/build/src/services.js
CHANGED
|
@@ -5,6 +5,7 @@ import { TunnelApiClient } from './lib/tunnel/tunnel-api-client.js';
|
|
|
5
5
|
import AfcService from './services/ios/afc/index.js';
|
|
6
6
|
import DiagnosticsService from './services/ios/diagnostic-service/index.js';
|
|
7
7
|
import { DVTSecureSocketProxyService } from './services/ios/dvt/index.js';
|
|
8
|
+
import { ApplicationListing } from './services/ios/dvt/instruments/application-listing.js';
|
|
8
9
|
import { ConditionInducer } from './services/ios/dvt/instruments/condition-inducer.js';
|
|
9
10
|
import { Graphics } from './services/ios/dvt/instruments/graphics.js';
|
|
10
11
|
import { LocationSimulation } from './services/ios/dvt/instruments/location-simulation.js';
|
|
@@ -137,6 +138,7 @@ export async function startDVTService(udid) {
|
|
|
137
138
|
const locationSimulation = new LocationSimulation(dvtService);
|
|
138
139
|
const conditionInducer = new ConditionInducer(dvtService);
|
|
139
140
|
const screenshot = new Screenshot(dvtService);
|
|
141
|
+
const appListing = new ApplicationListing(dvtService);
|
|
140
142
|
const graphics = new Graphics(dvtService);
|
|
141
143
|
return {
|
|
142
144
|
remoteXPC: remoteXPC,
|
|
@@ -144,6 +146,7 @@ export async function startDVTService(udid) {
|
|
|
144
146
|
locationSimulation,
|
|
145
147
|
conditionInducer,
|
|
146
148
|
screenshot,
|
|
149
|
+
appListing,
|
|
147
150
|
graphics,
|
|
148
151
|
};
|
|
149
152
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-ios-remotexpc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.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:applist": "mocha test/integration/dvt_instruments/app-listing-test.ts --exit --timeout 1m",
|
|
47
48
|
"test:tunnel-creation": "sudo tsx scripts/test-tunnel-creation.ts",
|
|
48
49
|
"test:tunnel-creation:lsof": "sudo tsx scripts/test-tunnel-creation.ts --keep-open"
|
|
49
50
|
},
|
package/src/lib/types.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { EventEmitter } from 'events';
|
|
|
6
6
|
|
|
7
7
|
import type { ServiceConnection } from '../service-connection.js';
|
|
8
8
|
import type { BaseService, Service } from '../services/ios/base-service.js';
|
|
9
|
+
import type { iOSApplication } from '../services/ios/dvt/instruments/application-listing.js';
|
|
9
10
|
import type { LocationCoordinates } from '../services/ios/dvt/instruments/location-simulation.js';
|
|
10
11
|
import { ProvisioningProfile } from '../services/ios/misagent/provisioning-profile.js';
|
|
11
12
|
import type { PowerAssertionOptions } from '../services/ios/power-assertion/index.js';
|
|
@@ -521,6 +522,32 @@ export interface ScreenshotService {
|
|
|
521
522
|
getScreenshot(): Promise<Buffer>;
|
|
522
523
|
}
|
|
523
524
|
|
|
525
|
+
/**
|
|
526
|
+
* Application listing service interface
|
|
527
|
+
*/
|
|
528
|
+
export interface AppListService {
|
|
529
|
+
/**
|
|
530
|
+
* Get the list of iOS applications on the device
|
|
531
|
+
* @returns {Promise<iOSApplication>}
|
|
532
|
+
* e.g.
|
|
533
|
+
* [
|
|
534
|
+
* {
|
|
535
|
+
* ExtensionDictionary: { NSExtensionPointIdentifier: 'com.apple.mlhost.worker', ... },
|
|
536
|
+
* Version: '1.0',
|
|
537
|
+
* DisplayName: 'ModelMonitoringLighthousePlugin',
|
|
538
|
+
* CFBundleIdentifier: 'com.apple.aeroml.ModelMonitoringLighthouse.ModelMonitoringLighthousePlugin',
|
|
539
|
+
* BundlePath: '/System/Library/ExtensionKit/Extensions/ModelMonitoringLighthousePlugin.appex',
|
|
540
|
+
* ExecutableName: 'ModelMonitoringLighthousePlugin',
|
|
541
|
+
* Restricted: 1,
|
|
542
|
+
* Type: 'PluginKit',
|
|
543
|
+
* PluginIdentifier: 'com.apple.aeroml.ModelMonitoringLighthouse.ModelMonitoringLighthousePlugin',
|
|
544
|
+
* PluginUUID: 'AF17A1FE-E454-57C8-B963-0832FD71AB08'
|
|
545
|
+
* },
|
|
546
|
+
* ...
|
|
547
|
+
* ]
|
|
548
|
+
*/
|
|
549
|
+
list(): Promise<iOSApplication[]>;
|
|
550
|
+
}
|
|
524
551
|
/**
|
|
525
552
|
* Graphics service interface for OpenGL/graphics monitoring
|
|
526
553
|
*/
|
|
@@ -560,6 +587,8 @@ export interface DVTServiceWithConnection {
|
|
|
560
587
|
conditionInducer: ConditionInducerService;
|
|
561
588
|
/** The Screenshot service instance */
|
|
562
589
|
screenshot: ScreenshotService;
|
|
590
|
+
/** The Application Listing service instance */
|
|
591
|
+
appListing: AppListService;
|
|
563
592
|
/** The Graphics service instance */
|
|
564
593
|
graphics: GraphicsService;
|
|
565
594
|
/** The RemoteXPC connection that can be used to close the connection */
|
|
@@ -509,11 +509,15 @@ export class DVTSecureSocketProxyService extends BaseService {
|
|
|
509
509
|
* Archive a value using NSKeyedArchiver format for DTX protocol
|
|
510
510
|
*/
|
|
511
511
|
private archiveValue(value: any): Buffer {
|
|
512
|
+
// Handle null values by referencing the $null marker
|
|
513
|
+
const rootIndex = value === null ? 0 : 1;
|
|
514
|
+
const objects = value === null ? ['$null'] : ['$null', value];
|
|
515
|
+
|
|
512
516
|
const archived = {
|
|
513
517
|
$version: 100000,
|
|
514
518
|
$archiver: 'NSKeyedArchiver',
|
|
515
|
-
$top: { root: new PlistUID(
|
|
516
|
-
$objects:
|
|
519
|
+
$top: { root: new PlistUID(rootIndex) },
|
|
520
|
+
$objects: objects,
|
|
517
521
|
};
|
|
518
522
|
|
|
519
523
|
return createBinaryPlist(archived);
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
+
import type { Channel } from '../channel.js';
|
|
3
|
+
import { MessageAux } from '../dtx-message.js';
|
|
4
|
+
import type { DVTSecureSocketProxyService } from '../index.js';
|
|
5
|
+
|
|
6
|
+
const log = getLogger('ApplicationListing');
|
|
7
|
+
|
|
8
|
+
export interface iOSApplication {
|
|
9
|
+
/** Display name of the application/plugin */
|
|
10
|
+
DisplayName: string;
|
|
11
|
+
|
|
12
|
+
/** Bundle identifier in reverse domain notation */
|
|
13
|
+
CFBundleIdentifier: string;
|
|
14
|
+
|
|
15
|
+
/** Full path to the application bundle */
|
|
16
|
+
BundlePath: string;
|
|
17
|
+
|
|
18
|
+
/** Version string of the application */
|
|
19
|
+
Version: string;
|
|
20
|
+
|
|
21
|
+
/** Name of the main executable file */
|
|
22
|
+
ExecutableName: string;
|
|
23
|
+
|
|
24
|
+
/** Access restriction flag (0 = unrestricted, 1 = restricted) */
|
|
25
|
+
Restricted: number;
|
|
26
|
+
|
|
27
|
+
/** Bundle type (e.g., 'PluginKit', 'Application') */
|
|
28
|
+
Type: string;
|
|
29
|
+
|
|
30
|
+
/** Unique identifier for plugins */
|
|
31
|
+
PluginIdentifier: string;
|
|
32
|
+
|
|
33
|
+
/** UUID for the plugin instance */
|
|
34
|
+
PluginUUID: string;
|
|
35
|
+
|
|
36
|
+
/** Extension configuration with variable structure */
|
|
37
|
+
ExtensionDictionary?: Record<string, any>;
|
|
38
|
+
|
|
39
|
+
/** Bundle identifier of the containing app (plugins only) */
|
|
40
|
+
ContainerBundleIdentifier?: string;
|
|
41
|
+
|
|
42
|
+
/** Path to the container app bundle (plugins only) */
|
|
43
|
+
ContainerBundlePath?: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Application Listing service for retrieving installed applications
|
|
48
|
+
*/
|
|
49
|
+
export class ApplicationListing {
|
|
50
|
+
static readonly IDENTIFIER =
|
|
51
|
+
'com.apple.instruments.server.services.device.applictionListing';
|
|
52
|
+
|
|
53
|
+
private channel: Channel | null = null;
|
|
54
|
+
|
|
55
|
+
constructor(private readonly dvt: DVTSecureSocketProxyService) {}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Initialize the application listing channel
|
|
59
|
+
*/
|
|
60
|
+
async initialize(): Promise<void> {
|
|
61
|
+
if (this.channel) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.channel = await this.dvt.makeChannel(ApplicationListing.IDENTIFIER);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Get the list of installed applications from the device
|
|
69
|
+
* @returns {Promise<iOSApplication[]>}
|
|
70
|
+
*/
|
|
71
|
+
async list(): Promise<iOSApplication[]> {
|
|
72
|
+
await this.initialize();
|
|
73
|
+
|
|
74
|
+
const args = new MessageAux().appendObj(null).appendObj(null);
|
|
75
|
+
|
|
76
|
+
await this.channel!.call(
|
|
77
|
+
'installedApplicationsMatching_registerUpdateToken_',
|
|
78
|
+
)(args);
|
|
79
|
+
|
|
80
|
+
const result = await this.channel!.receivePlist();
|
|
81
|
+
|
|
82
|
+
if (!result) {
|
|
83
|
+
log.warn(
|
|
84
|
+
'Received null/undefined response from installedApplicationsMatching',
|
|
85
|
+
);
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (Array.isArray(result)) {
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
throw new Error(
|
|
94
|
+
`Unexpected response format from installedApplicationsMatching: ${JSON.stringify(result)}`,
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getLogger } from '../../../lib/logger.js';
|
|
2
2
|
|
|
3
3
|
const log = getLogger('NSKeyedArchiverDecoder');
|
|
4
|
+
const MAX_DECODE_DEPTH = 1000;
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Decode NSKeyedArchiver formatted data into native JavaScript objects
|
|
@@ -79,50 +80,77 @@ export class NSKeyedArchiverDecoder {
|
|
|
79
80
|
/**
|
|
80
81
|
* Decode an object at a specific index
|
|
81
82
|
*/
|
|
82
|
-
private decodeObject(
|
|
83
|
+
private decodeObject(
|
|
84
|
+
index: number,
|
|
85
|
+
visited: Set<number> = new Set(),
|
|
86
|
+
depth: number = 0,
|
|
87
|
+
): any {
|
|
88
|
+
// Prevent stack overflow with depth limit
|
|
89
|
+
if (depth > MAX_DECODE_DEPTH) {
|
|
90
|
+
log.warn(`Maximum decode depth exceeded at index ${index}`);
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
83
93
|
if (index < 0 || index >= this.objects.length) {
|
|
84
94
|
return null;
|
|
85
95
|
}
|
|
86
96
|
|
|
97
|
+
// Prevent infinite recursion
|
|
98
|
+
if (visited.has(index)) {
|
|
99
|
+
return null; // Return null for circular references
|
|
100
|
+
}
|
|
101
|
+
|
|
87
102
|
// Check cache
|
|
88
103
|
if (this.decoded.has(index)) {
|
|
89
104
|
return this.decoded.get(index);
|
|
90
105
|
}
|
|
91
106
|
|
|
107
|
+
visited.add(index);
|
|
92
108
|
const obj = this.objects[index];
|
|
93
109
|
|
|
94
110
|
// Handle null marker
|
|
95
111
|
if (obj === '$null' || obj === null) {
|
|
112
|
+
visited.delete(index);
|
|
96
113
|
return null;
|
|
97
114
|
}
|
|
98
115
|
|
|
99
116
|
// Handle primitive types
|
|
100
117
|
if (typeof obj !== 'object') {
|
|
118
|
+
visited.delete(index);
|
|
101
119
|
return obj;
|
|
102
120
|
}
|
|
103
121
|
|
|
104
122
|
// Handle Buffer/binary data (eg. screenshots)
|
|
105
123
|
if (Buffer.isBuffer(obj)) {
|
|
106
124
|
this.decoded.set(index, obj);
|
|
125
|
+
visited.delete(index);
|
|
107
126
|
return obj;
|
|
108
127
|
}
|
|
109
128
|
|
|
110
129
|
// Handle UID references
|
|
111
130
|
if ('CF$UID' in obj) {
|
|
112
|
-
|
|
131
|
+
const result = this.decodeObject(obj.CF$UID, visited, depth + 1);
|
|
132
|
+
visited.delete(index);
|
|
133
|
+
return result;
|
|
113
134
|
}
|
|
114
135
|
|
|
115
136
|
// Handle NSDictionary (NS.keys + NS.objects) - check this FIRST before NSArray
|
|
116
137
|
if ('NS.keys' in obj && 'NS.objects' in obj) {
|
|
117
|
-
const result = this.decodeDictionary(
|
|
138
|
+
const result = this.decodeDictionary(
|
|
139
|
+
obj['NS.keys'],
|
|
140
|
+
obj['NS.objects'],
|
|
141
|
+
visited,
|
|
142
|
+
depth,
|
|
143
|
+
);
|
|
118
144
|
this.decoded.set(index, result);
|
|
145
|
+
visited.delete(index);
|
|
119
146
|
return result;
|
|
120
147
|
}
|
|
121
148
|
|
|
122
149
|
// Handle NSArray (NS.objects only, without NS.keys)
|
|
123
150
|
if ('NS.objects' in obj) {
|
|
124
|
-
const result = this.decodeArray(obj['NS.objects']);
|
|
151
|
+
const result = this.decodeArray(obj['NS.objects'], visited, depth);
|
|
125
152
|
this.decoded.set(index, result);
|
|
153
|
+
visited.delete(index);
|
|
126
154
|
return result;
|
|
127
155
|
}
|
|
128
156
|
|
|
@@ -135,20 +163,25 @@ export class NSKeyedArchiverDecoder {
|
|
|
135
163
|
|
|
136
164
|
if (typeof value === 'number') {
|
|
137
165
|
// Could be a reference or primitive
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
166
|
+
if (value < this.objects.length && value >= 0) {
|
|
167
|
+
const referenced = this.objects[value];
|
|
168
|
+
if (
|
|
169
|
+
referenced &&
|
|
170
|
+
typeof referenced === 'object' &&
|
|
171
|
+
referenced !== '$null' &&
|
|
172
|
+
!visited.has(value)
|
|
173
|
+
) {
|
|
174
|
+
result[key] = this.decodeObject(value, visited, depth + 1);
|
|
175
|
+
} else {
|
|
176
|
+
result[key] = value;
|
|
177
|
+
}
|
|
145
178
|
} else {
|
|
146
179
|
result[key] = value;
|
|
147
180
|
}
|
|
148
181
|
} else if (typeof value === 'object' && value && 'CF$UID' in value) {
|
|
149
182
|
const uid = (value as any).CF$UID;
|
|
150
|
-
if (typeof uid === 'number') {
|
|
151
|
-
result[key] = this.decodeObject(uid);
|
|
183
|
+
if (typeof uid === 'number' && !visited.has(uid)) {
|
|
184
|
+
result[key] = this.decodeObject(uid, visited, depth + 1);
|
|
152
185
|
} else {
|
|
153
186
|
result[key] = value;
|
|
154
187
|
}
|
|
@@ -158,22 +191,27 @@ export class NSKeyedArchiverDecoder {
|
|
|
158
191
|
}
|
|
159
192
|
|
|
160
193
|
this.decoded.set(index, result);
|
|
194
|
+
visited.delete(index);
|
|
161
195
|
return result;
|
|
162
196
|
}
|
|
163
197
|
|
|
164
198
|
/**
|
|
165
199
|
* Decode an NSArray
|
|
166
200
|
*/
|
|
167
|
-
private decodeArray(
|
|
201
|
+
private decodeArray(
|
|
202
|
+
refs: any,
|
|
203
|
+
visited: Set<number> = new Set(),
|
|
204
|
+
depth: number = 0,
|
|
205
|
+
): any[] {
|
|
168
206
|
if (!Array.isArray(refs)) {
|
|
169
207
|
return [];
|
|
170
208
|
}
|
|
171
209
|
|
|
172
210
|
return refs.map((ref) => {
|
|
173
211
|
if (typeof ref === 'number') {
|
|
174
|
-
return this.decodeObject(ref);
|
|
212
|
+
return this.decodeObject(ref, visited, depth + 1);
|
|
175
213
|
} else if (typeof ref === 'object' && ref && 'CF$UID' in ref) {
|
|
176
|
-
return this.decodeObject(ref.CF$UID);
|
|
214
|
+
return this.decodeObject(ref.CF$UID, visited, depth + 1);
|
|
177
215
|
}
|
|
178
216
|
return ref;
|
|
179
217
|
});
|
|
@@ -182,7 +220,12 @@ export class NSKeyedArchiverDecoder {
|
|
|
182
220
|
/**
|
|
183
221
|
* Decode an NSDictionary
|
|
184
222
|
*/
|
|
185
|
-
private decodeDictionary(
|
|
223
|
+
private decodeDictionary(
|
|
224
|
+
keyRefs: any,
|
|
225
|
+
valueRefs: any,
|
|
226
|
+
visited: Set<number> = new Set(),
|
|
227
|
+
depth: number = 0,
|
|
228
|
+
): any {
|
|
186
229
|
if (!Array.isArray(keyRefs) || !Array.isArray(valueRefs)) {
|
|
187
230
|
return {};
|
|
188
231
|
}
|
|
@@ -190,8 +233,8 @@ export class NSKeyedArchiverDecoder {
|
|
|
190
233
|
const result: any = {};
|
|
191
234
|
|
|
192
235
|
for (let i = 0; i < keyRefs.length && i < valueRefs.length; i++) {
|
|
193
|
-
const key = this.decodeObject(keyRefs[i]);
|
|
194
|
-
const value = this.decodeObject(valueRefs[i]);
|
|
236
|
+
const key = this.decodeObject(keyRefs[i], visited, depth + 1);
|
|
237
|
+
const value = this.decodeObject(valueRefs[i], visited, depth + 1);
|
|
195
238
|
|
|
196
239
|
if (typeof key === 'string') {
|
|
197
240
|
result[key] = value;
|
package/src/services.ts
CHANGED
|
@@ -18,6 +18,7 @@ import type {
|
|
|
18
18
|
import AfcService from './services/ios/afc/index.js';
|
|
19
19
|
import DiagnosticsService from './services/ios/diagnostic-service/index.js';
|
|
20
20
|
import { DVTSecureSocketProxyService } from './services/ios/dvt/index.js';
|
|
21
|
+
import { ApplicationListing } from './services/ios/dvt/instruments/application-listing.js';
|
|
21
22
|
import { ConditionInducer } from './services/ios/dvt/instruments/condition-inducer.js';
|
|
22
23
|
import { Graphics } from './services/ios/dvt/instruments/graphics.js';
|
|
23
24
|
import { LocationSimulation } from './services/ios/dvt/instruments/location-simulation.js';
|
|
@@ -203,6 +204,7 @@ export async function startDVTService(
|
|
|
203
204
|
const locationSimulation = new LocationSimulation(dvtService);
|
|
204
205
|
const conditionInducer = new ConditionInducer(dvtService);
|
|
205
206
|
const screenshot = new Screenshot(dvtService);
|
|
207
|
+
const appListing = new ApplicationListing(dvtService);
|
|
206
208
|
const graphics = new Graphics(dvtService);
|
|
207
209
|
|
|
208
210
|
return {
|
|
@@ -211,6 +213,7 @@ export async function startDVTService(
|
|
|
211
213
|
locationSimulation,
|
|
212
214
|
conditionInducer,
|
|
213
215
|
screenshot,
|
|
216
|
+
appListing,
|
|
214
217
|
graphics,
|
|
215
218
|
};
|
|
216
219
|
}
|