appium-ios-remotexpc 0.10.2 → 0.11.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.11.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.10.2...v0.11.0) (2025-11-05)
2
+
3
+ ### Features
4
+
5
+ * implement misagent ([#88](https://github.com/appium/appium-ios-remotexpc/issues/88)) ([6b64908](https://github.com/appium/appium-ios-remotexpc/commit/6b64908b2d37759e2d6a4b9f619823293022ef4a))
6
+
1
7
  ## [0.10.2](https://github.com/appium/appium-ios-remotexpc/compare/v0.10.1...v0.10.2) (2025-11-03)
2
8
 
3
9
  ### Miscellaneous Chores
@@ -4,7 +4,7 @@ import { TunnelRegistryServer, startTunnelRegistryServer } from './lib/tunnel/tu
4
4
  import { Usbmux, createUsbmux } from './lib/usbmux/index.js';
5
5
  import * as Services from './services.js';
6
6
  import { startCoreDeviceProxy } from './services/ios/tunnel-service/index.js';
7
- export type { DiagnosticsService, MobileImageMounterService, NotificationProxyService, MobileConfigService, PowerAssertionService, PowerAssertionOptions, SpringboardService, WebInspectorService, SyslogService, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DiagnosticsServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, MobileConfigServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, WebInspectorServiceWithConnection, } from './lib/types.js';
7
+ export type { DiagnosticsService, MobileImageMounterService, NotificationProxyService, MobileConfigService, PowerAssertionService, PowerAssertionOptions, SpringboardService, WebInspectorService, MisagentService, SyslogService, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DiagnosticsServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, MobileConfigServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, WebInspectorServiceWithConnection, MisagentServiceWithConnection, } from './lib/types.js';
8
8
  export { PowerAssertionType } from './lib/types.js';
9
9
  export { createUsbmux, Services, Usbmux, TunnelManager, PacketStreamServer, PacketStreamClient, createLockdownServiceByUDID, startCoreDeviceProxy, TunnelRegistryServer, startTunnelRegistryServer, };
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,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,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,gCAAgC,EAChC,uCAAuC,EACvC,sCAAsC,EACtC,iCAAiC,EACjC,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,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,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,UAAU,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,gCAAgC,EAChC,uCAAuC,EACvC,sCAAsC,EACtC,iCAAiC,EACjC,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC"}
@@ -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 { ProvisioningProfile } from '../services/ios/misagent/provisioning-profile.js';
8
9
  import type { PowerAssertionOptions } from '../services/ios/power-assertion/index.js';
9
10
  import { PowerAssertionType } from '../services/ios/power-assertion/index.js';
10
11
  import type { InterfaceOrientation } from '../services/ios/springboard-service/index.js';
@@ -644,4 +645,72 @@ export interface SpringboardServiceWithConnection {
644
645
  /** The RemoteXPC connection for service management */
645
646
  remoteXPC: RemoteXpcConnection;
646
647
  }
648
+ /**
649
+ * Represents the instance side of MisagentService where provisioning profiles can be managed
650
+ * @remarks
651
+ * Provisioning profiles are Apple configuration files (.mobileprovision) that contain:
652
+ * - Certificates, identifiers, and device information
653
+ * - App entitlements and permissions
654
+ * - Expiration dates and platform restrictions
655
+ */
656
+ export interface MisagentService extends BaseService {
657
+ /**
658
+ * Installs a provisioning profile from a file path
659
+ * @param path The file path of the provisioning profile (.mobileprovision file)
660
+ */
661
+ installProfileFromPath(path: string): Promise<void>;
662
+ /**
663
+ * Installs a provisioning profile from a buffer
664
+ * @param payload The buffer containing the provisioning profile data
665
+ */
666
+ installProfile(payload: Buffer): Promise<void>;
667
+ /**
668
+ * Removes a provisioning profile by its UUID
669
+ * @param uuid The uuid of the provisioning profile to remove
670
+ */
671
+ removeProfile(uuid: string): Promise<void>;
672
+ /**
673
+ * Fetching all provisioning profiles from the device
674
+ * This can be used for listing installed provisioning profiles and backing them up
675
+ * @returns {Promise<ProvisioningProfile[]>}
676
+ * e.g.
677
+ * [
678
+ * {
679
+ * "AppIDName": "Apple Development: John Doe (ABCDE12345)",
680
+ * "ApplicationIdentifierPrefix": [
681
+ * "ABCDE12345"
682
+ * ],
683
+ * "CreationDate": "2023-10-01T12:34:56Z",
684
+ * "Platform": [
685
+ * "iOS",
686
+ * "xrOS",
687
+ * ],
688
+ * IsXcodeManaged": false,
689
+ * "DeveloperCertificates": [ <Buffer ...> ],
690
+ * "Entitlements": {
691
+ * "application-identifier": "ABCDE12345.com.example.app",
692
+ * "get-task-allow": true,
693
+ * ...
694
+ * },
695
+ * "ExpirationDate": "2024-10-01T12:34:56Z",
696
+ * "Name": "Apple Development: John Doe (ABCDE12345)",
697
+ * "UUID": "12345678-90AB-CDEF-1234-567890ABCDEF",
698
+ * "Version": 1,
699
+ * ...
700
+ * },
701
+ * ]
702
+ * @example
703
+ * const profiles = await misagentService.fetchAll();
704
+ * profiles.forEach(profile => {
705
+ * console.log(`Profile: ${profile.plist.Name}`);
706
+ * console.log(`UUID: ${profile.plist.UUID}`);
707
+ * console.log(`Expires: ${profile.plist.ExpirationDate}`);
708
+ * });
709
+ */
710
+ fetchAll(): Promise<ProvisioningProfile[]>;
711
+ }
712
+ export interface MisagentServiceWithConnection {
713
+ misagentService: MisagentService;
714
+ remoteXPC: RemoteXpcConnection;
715
+ }
647
716
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import { EventEmitter } from 'events';
2
+ import { ProvisioningProfile } from '../services/ios/misagent/provisioning-profile.js';
2
3
  import { PowerAssertionType } from '../services/ios/power-assertion/index.js';
3
4
  export { PowerAssertionType };
@@ -0,0 +1,17 @@
1
+ import { type MisagentService as MisagentServiceInterface } from '../../../lib/types.js';
2
+ import { ServiceConnection } from '../../../service-connection.js';
3
+ import { BaseService } from '../base-service.js';
4
+ import { ProvisioningProfile } from './provisioning-profile.js';
5
+ declare class MisagentService extends BaseService implements MisagentServiceInterface {
6
+ static readonly RSD_SERVICE_NAME = "com.apple.misagent.shim.remote";
7
+ private _conn;
8
+ connectToMisagentService(): Promise<ServiceConnection>;
9
+ installProfileFromPath(filePath: string): Promise<void>;
10
+ installProfile(payload: Buffer): Promise<void>;
11
+ removeProfile(uuid: string): Promise<void>;
12
+ fetchAll(): Promise<ProvisioningProfile[]>;
13
+ private sendRequest;
14
+ private getServiceConfig;
15
+ }
16
+ export { MisagentService };
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/misagent/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,eAAe,IAAI,wBAAwB,EAEjD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,cAAM,eAAgB,SAAQ,WAAY,YAAW,wBAAwB;IAC3E,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oCAAoC;IACpE,OAAO,CAAC,KAAK,CAAkC;IAEzC,wBAAwB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAUtD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAkBlC,WAAW;IAqBzB,OAAO,CAAC,gBAAgB;CAMzB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { fs } from '@appium/support';
2
+ import path from 'path';
3
+ import {} from '../../../lib/types.js';
4
+ import { ServiceConnection } from '../../../service-connection.js';
5
+ import { BaseService } from '../base-service.js';
6
+ import { ProvisioningProfile } from './provisioning-profile.js';
7
+ class MisagentService extends BaseService {
8
+ static RSD_SERVICE_NAME = 'com.apple.misagent.shim.remote';
9
+ _conn = null;
10
+ async connectToMisagentService() {
11
+ if (this._conn) {
12
+ return this._conn;
13
+ }
14
+ const service = this.getServiceConfig();
15
+ this._conn = await this.startLockdownService(service);
16
+ return this._conn;
17
+ }
18
+ async installProfileFromPath(filePath) {
19
+ // Check if file exists
20
+ if (!(await fs.exists(filePath))) {
21
+ throw new Error(`Profile filepath does not exist: ${filePath}`);
22
+ }
23
+ const fileExtension = path.extname(filePath).toLowerCase();
24
+ if (fileExtension !== '.mobileprovision') {
25
+ throw new Error(`Invalid file extension: ${fileExtension}. Only .mobileprovision files are supported.`);
26
+ }
27
+ const payload = await fs.readFile(filePath);
28
+ await this.installProfile(payload);
29
+ }
30
+ async installProfile(payload) {
31
+ await this.sendRequest({
32
+ MessageType: 'Install',
33
+ Profile: payload,
34
+ ProfileType: 'Provisioning',
35
+ }, 'Failed to install profile');
36
+ }
37
+ async removeProfile(uuid) {
38
+ await this.sendRequest({
39
+ MessageType: 'Remove',
40
+ ProfileID: uuid,
41
+ ProfileType: 'Provisioning',
42
+ }, 'Failed to remove profile');
43
+ }
44
+ async fetchAll() {
45
+ const response = await this.sendRequest({
46
+ MessageType: 'CopyAll',
47
+ ProfileType: 'Provisioning',
48
+ }, 'Failed to copy all profiles');
49
+ if (!response.Payload || !Array.isArray(response.Payload)) {
50
+ return [];
51
+ }
52
+ return response.Payload.filter((profileData) => Buffer.isBuffer(profileData)).map((profileData) => new ProvisioningProfile(profileData));
53
+ }
54
+ async sendRequest(request, errorMessage) {
55
+ const conn = await this.connectToMisagentService();
56
+ try {
57
+ // Skip StartService response
58
+ await conn.sendPlistRequest(request);
59
+ const res = await conn.sendPlistRequest(request);
60
+ if (res.Status) {
61
+ throw new Error(`Invalid response: ${JSON.stringify(res)}`);
62
+ }
63
+ return res;
64
+ }
65
+ catch (error) {
66
+ if (error instanceof Error) {
67
+ throw new Error(`${errorMessage}: ${error.message}`);
68
+ }
69
+ throw error;
70
+ }
71
+ }
72
+ getServiceConfig() {
73
+ return {
74
+ serviceName: MisagentService.RSD_SERVICE_NAME,
75
+ port: this.address[1].toString(),
76
+ };
77
+ }
78
+ }
79
+ export { MisagentService };
@@ -0,0 +1,10 @@
1
+ import { type PlistDictionary } from '../../../lib/types.js';
2
+ declare class ProvisioningProfile {
3
+ buf: Buffer;
4
+ plist: PlistDictionary;
5
+ constructor(buf: Buffer);
6
+ toString(): string;
7
+ toJSON(): PlistDictionary;
8
+ }
9
+ export { ProvisioningProfile };
10
+ //# sourceMappingURL=provisioning-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provisioning-profile.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/misagent/provisioning-profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,cAAM,mBAAmB;IACvB,GAAG,EAAE,MAAM,CAAC;IACL,KAAK,EAAE,eAAe,CAAC;gBAElB,GAAG,EAAE,MAAM;IA0BvB,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,eAAe;CAI1B;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { parsePlist } from '../../../lib/plist/index.js';
2
+ import {} from '../../../lib/types.js';
3
+ class ProvisioningProfile {
4
+ buf;
5
+ plist;
6
+ constructor(buf) {
7
+ this.buf = buf;
8
+ // Find '<?xml' marker and extract everything after it
9
+ const xmlMarker = Buffer.from('<?xml');
10
+ const xmlIndex = buf.indexOf(xmlMarker);
11
+ if (xmlIndex === -1) {
12
+ throw new Error('No XML content found in provisioning profile');
13
+ }
14
+ // Get XML content starting from '<?xml'
15
+ let xml = buf.subarray(buf.indexOf(xmlMarker));
16
+ // Find '</plist>' and extract up to and including it
17
+ const plistEnd = Buffer.from('</plist>');
18
+ const plistIndex = xml.indexOf(plistEnd);
19
+ if (plistIndex === -1) {
20
+ throw new Error('No closing </plist> tag found');
21
+ }
22
+ xml = xml.subarray(0, plistIndex + plistEnd.length);
23
+ this.plist = parsePlist(xml);
24
+ }
25
+ toString() {
26
+ return JSON.stringify(this.plist);
27
+ }
28
+ toJSON() {
29
+ // Only display the plist content
30
+ return this.plist;
31
+ }
32
+ }
33
+ export { ProvisioningProfile };
@@ -1,11 +1,12 @@
1
1
  import { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
2
- import type { DiagnosticsServiceWithConnection, MobileConfigServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, SyslogService as SyslogServiceType, WebInspectorServiceWithConnection } from './lib/types.js';
2
+ import type { DiagnosticsServiceWithConnection, MisagentServiceWithConnection, MobileConfigServiceWithConnection, MobileImageMounterServiceWithConnection, NotificationProxyServiceWithConnection, PowerAssertionServiceWithConnection, SpringboardServiceWithConnection, SyslogService as SyslogServiceType, WebInspectorServiceWithConnection } from './lib/types.js';
3
3
  import AfcService from './services/ios/afc/index.js';
4
4
  export declare function startDiagnosticsService(udid: string): Promise<DiagnosticsServiceWithConnection>;
5
5
  export declare function startNotificationProxyService(udid: string): Promise<NotificationProxyServiceWithConnection>;
6
6
  export declare function startMobileConfigService(udid: string): Promise<MobileConfigServiceWithConnection>;
7
7
  export declare function startMobileImageMounterService(udid: string): Promise<MobileImageMounterServiceWithConnection>;
8
8
  export declare function startSpringboardService(udid: string): Promise<SpringboardServiceWithConnection>;
9
+ export declare function startMisagentService(udid: string): Promise<MisagentServiceWithConnection>;
9
10
  export declare function startPowerAssertionService(udid: string): Promise<PowerAssertionServiceWithConnection>;
10
11
  export declare function startSyslogService(udid: string): Promise<SyslogServiceType>;
11
12
  /**
@@ -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,gCAAgC,EAChC,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;AAarD,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,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,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,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;AAcrD,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,yBAAyB,CAAC,IAAI,EAAE,MAAM;;;;;;;;GAO3D"}
@@ -4,6 +4,7 @@ import { TunnelManager } from './lib/tunnel/index.js';
4
4
  import { TunnelApiClient } from './lib/tunnel/tunnel-api-client.js';
5
5
  import AfcService from './services/ios/afc/index.js';
6
6
  import DiagnosticsService from './services/ios/diagnostic-service/index.js';
7
+ import { MisagentService } from './services/ios/misagent/index.js';
7
8
  import { MobileConfigService } from './services/ios/mobile-config/index.js';
8
9
  import MobileImageMounterService from './services/ios/mobile-image-mounter/index.js';
9
10
  import { NotificationProxyService } from './services/ios/notification-proxy/index.js';
@@ -68,6 +69,17 @@ export async function startSpringboardService(udid) {
68
69
  ]),
69
70
  };
70
71
  }
72
+ export async function startMisagentService(udid) {
73
+ const { remoteXPC, tunnelConnection } = await createRemoteXPCConnection(udid);
74
+ const misagentService = remoteXPC.findService(MisagentService.RSD_SERVICE_NAME);
75
+ return {
76
+ remoteXPC: remoteXPC,
77
+ misagentService: new MisagentService([
78
+ tunnelConnection.host,
79
+ parseInt(misagentService.port, 10),
80
+ ]),
81
+ };
82
+ }
71
83
  export async function startPowerAssertionService(udid) {
72
84
  const { remoteXPC, tunnelConnection } = await createRemoteXPCConnection(udid);
73
85
  const powerAssertionService = remoteXPC.findService(PowerAssertionService.RSD_SERVICE_NAME);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "0.10.2",
3
+ "version": "0.11.0",
4
4
  "main": "build/src/index.js",
5
5
  "types": "build/src/index.d.ts",
6
6
  "type": "module",
@@ -33,6 +33,7 @@
33
33
  "test:mobile-config": "mocha test/integration/mobile-config-test.ts --exit --timeout 1m",
34
34
  "test:springboard": "mocha test/integration/springboard-service-test.ts --exit --timeout 1m",
35
35
  "test:webinspector": "mocha test/integration/webinspector-test.ts --exit --timeout 1m",
36
+ "test:misagent": "mocha test/integration/misagent-service-test.ts --exit --timeout 1m",
36
37
  "test:afc": "mocha test/integration/afc-test.ts --exit --timeout 1m",
37
38
  "test:power-assertion": "mocha test/integration/power-assertion-test.ts --exit --timeout 1m",
38
39
  "test:unit": "mocha 'test/unit/**/*.ts' --exit --timeout 2m",
package/src/index.ts CHANGED
@@ -21,6 +21,7 @@ export type {
21
21
  PowerAssertionOptions,
22
22
  SpringboardService,
23
23
  WebInspectorService,
24
+ MisagentService,
24
25
  SyslogService,
25
26
  SocketInfo,
26
27
  TunnelResult,
@@ -33,6 +34,7 @@ export type {
33
34
  PowerAssertionServiceWithConnection,
34
35
  SpringboardServiceWithConnection,
35
36
  WebInspectorServiceWithConnection,
37
+ MisagentServiceWithConnection,
36
38
  } from './lib/types.js';
37
39
  export { PowerAssertionType } from './lib/types.js';
38
40
  export {
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 { ProvisioningProfile } from '../services/ios/misagent/provisioning-profile.js';
9
10
  import type { PowerAssertionOptions } from '../services/ios/power-assertion/index.js';
10
11
  import { PowerAssertionType } from '../services/ios/power-assertion/index.js';
11
12
  import type { InterfaceOrientation } from '../services/ios/springboard-service/index.js';
@@ -768,3 +769,74 @@ export interface SpringboardServiceWithConnection {
768
769
  /** The RemoteXPC connection for service management */
769
770
  remoteXPC: RemoteXpcConnection;
770
771
  }
772
+
773
+ /**
774
+ * Represents the instance side of MisagentService where provisioning profiles can be managed
775
+ * @remarks
776
+ * Provisioning profiles are Apple configuration files (.mobileprovision) that contain:
777
+ * - Certificates, identifiers, and device information
778
+ * - App entitlements and permissions
779
+ * - Expiration dates and platform restrictions
780
+ */
781
+ export interface MisagentService extends BaseService {
782
+ /**
783
+ * Installs a provisioning profile from a file path
784
+ * @param path The file path of the provisioning profile (.mobileprovision file)
785
+ */
786
+ installProfileFromPath(path: string): Promise<void>;
787
+ /**
788
+ * Installs a provisioning profile from a buffer
789
+ * @param payload The buffer containing the provisioning profile data
790
+ */
791
+ installProfile(payload: Buffer): Promise<void>;
792
+ /**
793
+ * Removes a provisioning profile by its UUID
794
+ * @param uuid The uuid of the provisioning profile to remove
795
+ */
796
+ removeProfile(uuid: string): Promise<void>;
797
+
798
+ /**
799
+ * Fetching all provisioning profiles from the device
800
+ * This can be used for listing installed provisioning profiles and backing them up
801
+ * @returns {Promise<ProvisioningProfile[]>}
802
+ * e.g.
803
+ * [
804
+ * {
805
+ * "AppIDName": "Apple Development: John Doe (ABCDE12345)",
806
+ * "ApplicationIdentifierPrefix": [
807
+ * "ABCDE12345"
808
+ * ],
809
+ * "CreationDate": "2023-10-01T12:34:56Z",
810
+ * "Platform": [
811
+ * "iOS",
812
+ * "xrOS",
813
+ * ],
814
+ * IsXcodeManaged": false,
815
+ * "DeveloperCertificates": [ <Buffer ...> ],
816
+ * "Entitlements": {
817
+ * "application-identifier": "ABCDE12345.com.example.app",
818
+ * "get-task-allow": true,
819
+ * ...
820
+ * },
821
+ * "ExpirationDate": "2024-10-01T12:34:56Z",
822
+ * "Name": "Apple Development: John Doe (ABCDE12345)",
823
+ * "UUID": "12345678-90AB-CDEF-1234-567890ABCDEF",
824
+ * "Version": 1,
825
+ * ...
826
+ * },
827
+ * ]
828
+ * @example
829
+ * const profiles = await misagentService.fetchAll();
830
+ * profiles.forEach(profile => {
831
+ * console.log(`Profile: ${profile.plist.Name}`);
832
+ * console.log(`UUID: ${profile.plist.UUID}`);
833
+ * console.log(`Expires: ${profile.plist.ExpirationDate}`);
834
+ * });
835
+ */
836
+ fetchAll(): Promise<ProvisioningProfile[]>;
837
+ }
838
+
839
+ export interface MisagentServiceWithConnection {
840
+ misagentService: MisagentService;
841
+ remoteXPC: RemoteXpcConnection;
842
+ }
@@ -0,0 +1,110 @@
1
+ import { fs } from '@appium/support';
2
+ import path from 'path';
3
+
4
+ import {
5
+ type MisagentService as MisagentServiceInterface,
6
+ type PlistDictionary,
7
+ } from '../../../lib/types.js';
8
+ import { ServiceConnection } from '../../../service-connection.js';
9
+ import { BaseService } from '../base-service.js';
10
+ import { ProvisioningProfile } from './provisioning-profile.js';
11
+
12
+ class MisagentService extends BaseService implements MisagentServiceInterface {
13
+ static readonly RSD_SERVICE_NAME = 'com.apple.misagent.shim.remote';
14
+ private _conn: ServiceConnection | null = null;
15
+
16
+ async connectToMisagentService(): Promise<ServiceConnection> {
17
+ if (this._conn) {
18
+ return this._conn;
19
+ }
20
+
21
+ const service = this.getServiceConfig();
22
+ this._conn = await this.startLockdownService(service);
23
+ return this._conn;
24
+ }
25
+
26
+ async installProfileFromPath(filePath: string): Promise<void> {
27
+ // Check if file exists
28
+ if (!(await fs.exists(filePath))) {
29
+ throw new Error(`Profile filepath does not exist: ${filePath}`);
30
+ }
31
+ const fileExtension = path.extname(filePath).toLowerCase();
32
+ if (fileExtension !== '.mobileprovision') {
33
+ throw new Error(
34
+ `Invalid file extension: ${fileExtension}. Only .mobileprovision files are supported.`,
35
+ );
36
+ }
37
+ const payload = await fs.readFile(filePath);
38
+ await this.installProfile(payload);
39
+ }
40
+
41
+ async installProfile(payload: Buffer): Promise<void> {
42
+ await this.sendRequest(
43
+ {
44
+ MessageType: 'Install',
45
+ Profile: payload,
46
+ ProfileType: 'Provisioning',
47
+ },
48
+ 'Failed to install profile',
49
+ );
50
+ }
51
+
52
+ async removeProfile(uuid: string): Promise<void> {
53
+ await this.sendRequest(
54
+ {
55
+ MessageType: 'Remove',
56
+ ProfileID: uuid,
57
+ ProfileType: 'Provisioning',
58
+ },
59
+ 'Failed to remove profile',
60
+ );
61
+ }
62
+
63
+ async fetchAll(): Promise<ProvisioningProfile[]> {
64
+ const response = await this.sendRequest(
65
+ {
66
+ MessageType: 'CopyAll',
67
+ ProfileType: 'Provisioning',
68
+ },
69
+ 'Failed to copy all profiles',
70
+ );
71
+
72
+ if (!response.Payload || !Array.isArray(response.Payload)) {
73
+ return [];
74
+ }
75
+
76
+ return response.Payload.filter((profileData): profileData is Buffer =>
77
+ Buffer.isBuffer(profileData),
78
+ ).map((profileData) => new ProvisioningProfile(profileData));
79
+ }
80
+
81
+ private async sendRequest(
82
+ request: any,
83
+ errorMessage: string,
84
+ ): Promise<PlistDictionary> {
85
+ const conn = await this.connectToMisagentService();
86
+ try {
87
+ // Skip StartService response
88
+ await conn.sendPlistRequest(request);
89
+ const res = await conn.sendPlistRequest(request);
90
+ if (res.Status) {
91
+ throw new Error(`Invalid response: ${JSON.stringify(res)}`);
92
+ }
93
+ return res;
94
+ } catch (error) {
95
+ if (error instanceof Error) {
96
+ throw new Error(`${errorMessage}: ${error.message}`);
97
+ }
98
+ throw error;
99
+ }
100
+ }
101
+
102
+ private getServiceConfig(): { serviceName: string; port: string } {
103
+ return {
104
+ serviceName: MisagentService.RSD_SERVICE_NAME,
105
+ port: this.address[1].toString(),
106
+ };
107
+ }
108
+ }
109
+
110
+ export { MisagentService };
@@ -0,0 +1,44 @@
1
+ import { parsePlist } from '../../../lib/plist/index.js';
2
+ import { type PlistDictionary } from '../../../lib/types.js';
3
+
4
+ class ProvisioningProfile {
5
+ buf: Buffer;
6
+ public plist: PlistDictionary;
7
+
8
+ constructor(buf: Buffer) {
9
+ this.buf = buf;
10
+
11
+ // Find '<?xml' marker and extract everything after it
12
+ const xmlMarker = Buffer.from('<?xml');
13
+ const xmlIndex = buf.indexOf(xmlMarker);
14
+
15
+ if (xmlIndex === -1) {
16
+ throw new Error('No XML content found in provisioning profile');
17
+ }
18
+
19
+ // Get XML content starting from '<?xml'
20
+ let xml = buf.subarray(buf.indexOf(xmlMarker));
21
+
22
+ // Find '</plist>' and extract up to and including it
23
+ const plistEnd = Buffer.from('</plist>');
24
+ const plistIndex = xml.indexOf(plistEnd);
25
+
26
+ if (plistIndex === -1) {
27
+ throw new Error('No closing </plist> tag found');
28
+ }
29
+
30
+ xml = xml.subarray(0, plistIndex + plistEnd.length);
31
+ this.plist = parsePlist(xml) as PlistDictionary;
32
+ }
33
+
34
+ toString(): string {
35
+ return JSON.stringify(this.plist);
36
+ }
37
+
38
+ toJSON(): PlistDictionary {
39
+ // Only display the plist content
40
+ return this.plist;
41
+ }
42
+ }
43
+
44
+ export { ProvisioningProfile };
package/src/services.ts CHANGED
@@ -5,6 +5,7 @@ import { TunnelManager } from './lib/tunnel/index.js';
5
5
  import { TunnelApiClient } from './lib/tunnel/tunnel-api-client.js';
6
6
  import type {
7
7
  DiagnosticsServiceWithConnection,
8
+ MisagentServiceWithConnection,
8
9
  MobileConfigServiceWithConnection,
9
10
  MobileImageMounterServiceWithConnection,
10
11
  NotificationProxyServiceWithConnection,
@@ -15,6 +16,7 @@ import type {
15
16
  } from './lib/types.js';
16
17
  import AfcService from './services/ios/afc/index.js';
17
18
  import DiagnosticsService from './services/ios/diagnostic-service/index.js';
19
+ import { MisagentService } from './services/ios/misagent/index.js';
18
20
  import { MobileConfigService } from './services/ios/mobile-config/index.js';
19
21
  import MobileImageMounterService from './services/ios/mobile-image-mounter/index.js';
20
22
  import { NotificationProxyService } from './services/ios/notification-proxy/index.js';
@@ -106,6 +108,22 @@ export async function startSpringboardService(
106
108
  };
107
109
  }
108
110
 
111
+ export async function startMisagentService(
112
+ udid: string,
113
+ ): Promise<MisagentServiceWithConnection> {
114
+ const { remoteXPC, tunnelConnection } = await createRemoteXPCConnection(udid);
115
+ const misagentService = remoteXPC.findService(
116
+ MisagentService.RSD_SERVICE_NAME,
117
+ );
118
+ return {
119
+ remoteXPC: remoteXPC as RemoteXpcConnection,
120
+ misagentService: new MisagentService([
121
+ tunnelConnection.host,
122
+ parseInt(misagentService.port, 10),
123
+ ]),
124
+ };
125
+ }
126
+
109
127
  export async function startPowerAssertionService(
110
128
  udid: string,
111
129
  ): Promise<PowerAssertionServiceWithConnection> {