Skip to content

Commit

Permalink
Fix iOS Frida bug for devices with - in UDID
Browse files Browse the repository at this point in the history
I had assumed that wasn't valid, and I'm definitely wrong, so we need to
catch that case. We now use a much less likely separator, and join again
anyway just in case it comes up somehow.
  • Loading branch information
pimterry committed Jun 18, 2024
1 parent c7154c6 commit 2a37990
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/interceptors/frida/frida-ios-integration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ export async function getIosFridaHosts(usbmuxClient: UsbmuxClient): Promise<Reco
));
}

const HOST_ID_SEPARATOR = '---';

const getHostDetails = async (usbmuxClient: UsbmuxClient, deviceId: number) => {
const deviceMetadataPromise = usbmuxClient.queryAllDeviceValues(deviceId);

Expand All @@ -81,17 +83,17 @@ const getHostDetails = async (usbmuxClient: UsbmuxClient, deviceId: number) => {
'Unknown iOS Device';

return {
id: `${deviceId}-${deviceMetadata.UniqueDeviceID}`, // Host id = both (to avoid deviceid change races)
id: `${deviceId}${HOST_ID_SEPARATOR}${deviceMetadata.UniqueDeviceID}`, // Host id = both (to avoid deviceid change races)
name: deviceName,
type: 'ios',
state
} as const;
};

async function getDeviceId(usbmuxClient: UsbmuxClient, hostId: string) {
const parts = hostId.split('-');
const parts = hostId.split(HOST_ID_SEPARATOR);
const deviceId = parseInt(parts[0]);
const udid = parts[1];
const udid = parts.slice(1).join(HOST_ID_SEPARATOR);

const realUdid = await usbmuxClient.queryDeviceValue(deviceId, 'UniqueDeviceID');

Expand Down

0 comments on commit 2a37990

Please sign in to comment.