# Welcome to BluDood's Guides!

### Hello there, good people!

You can either use the sidebar or this list to navigate!

### Most requested pages

{% content-ref url="/pages/-MgQHbtpIY6g65oTWR29" %}
[Common errors](/utm/common-errors)
{% endcontent-ref %}

{% content-ref url="/pages/JoFpIoslbNmxnL5DNhX9" %}
[Controls](/utm/controls)
{% endcontent-ref %}

{% content-ref url="/pages/-MS3Srlc2Hku5K9WtdXQ" %}
[Windows 98](/utm/installing-operating-systems/windows/windows-98)
{% endcontent-ref %}

{% content-ref url="/pages/-MS8S3b-OB4zwcm7uy9i" %}
[Mac OS X 10.5](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5)
{% endcontent-ref %}


# About UTM

## What is UTM?

[UTM](https://github.com/utmapp/UTM) is an app for iPhone, iPad, iPod and macOS made by [osy](https://github.com/osy) that makes your iDevice able to run PC operating systems.&#x20;

{% hint style="info" %}
These answers are made by me, but UTM have their own FAQ [here.](https://getutm.app/faq/)
{% endhint %}

## How do I install UTM?

{% hint style="info" %}
Updated guides over at [http://getutm.app/install](http://getutm.app/install/)
{% endhint %}

## What can I run on UTM?

It really depends on your device. The latest operating system I have got to run stably on my iPhone XR is Windows XP. But remember, this is with Apple's locking down their systems, so it can't really be better without tweaks to the main system.

## What are the controls when running a Virtual Machine?

### The menu

The menu is a bar of icons at the top of your screen. If you don't see it, drag down with 3 fingers on your screen.

From left to right, the icons are:

#### Power

This button stops your Virtual Machine. It will ask you if you really want to stop it, if you misclick it. This will instantly STOP your machine, so any unsaved data will be lost.

#### Pause

This will pause your Virtual Machine. Now you can close the app and do other things, while not shutting it down. To unpause it, click the icon again, and the VM will be in the state you left it.

#### Reset

This will stop and restart your Virtual machine. It will ask you if you really want to restart, if you misclick it. This will instantly STOP your machine, so any unsaved data will be lost.

#### Fit screen

This will automatically make the Virtual Machine's display fit to your screen/window.

#### Show/hide keyboard

Toggles your on-screen keyboard on and off.

#### Change/eject drives

Brings up a menu where you can eject and switch out drives, if you added removable drives.

#### Hide menu

Hides this menu. To bring it back, swipe down with three fingers.

### Controls

* **Keyboard**
  * There is a bar over your keyboard with arrow keys, F1-F12 and some system keys.
* **Mouse**
  * Left click = Single tap
  * Left click and hold = Tap and hold
  * Right click = 2 finger tap
* **Gestures**
  * Pinch 2 fingers to resize the screen.
  * Drag up with 3 fingers to show the keyboard
  * Drag down with 3 fingers to show the bar


# Useful tips


# Resizing a disk

To resize your virtual disk, stop the VM, go to its settings and select your drive. Now click "Resize" and specify the amount of storage you would like to allocate.

Please head over to the official guide for more information: <https://docs.getutm.app/settings-qemu/drive/resize-and-compress/>


# Controls

### The menu

The menu is a bar of icons at the top of your screen. If you don't see it, drag down with 3 fingers on your screen.

From left to right, the icons are:

#### Power

This button stops your Virtual Machine. It will ask you if you really want to stop it, if you misclick it. This will instantly STOP your machine, so any unsaved data will be lost.

#### Pause

This will pause your Virtual Machine. Now you can close the app and do other things, while not shutting it down. To unpause it, click the icon again, and the VM will be in the state you left it.

#### Reset

This will stop and restart your Virtual machine. It will ask you if you really want to restart, if you misclick it. This will instantly STOP your machine, so any unsaved data will be lost.

#### Fit to screen

This will automatically make the Virtual Machine's display fit to your screen/window.

#### Show/hide keyboard

Toggles your on-screen keyboard on and off.

#### Change/eject drives

Brings up a menu where you can eject and switch out drives, if you added removable drives.

#### Hide menu

Hides this menu. To bring it back, swipe down with three fingers.

### Controls

* **Keyboard**
  * There is a bar over your keyboard with arrow keys, F1-F12 and some system keys.
* **Mouse**
  * Left click = Single tap
  * Left click and hold = Tap and hold
  * Right click = 2 finger tap
* **Gestures**
  * Pinch 2 fingers to resize the screen.
  * Drag up with 3 fingers to show the keyboard/hide the menu
  * Drag down with 3 fingers to hide the keyboard/show the menu


# Common errors

This page will explain some of the most displayed errors in UTM.

## Error trying to restore removable drives: Failed to access drive image path.

**Reason:** A previously set removable drive path has been moved, edited or deleted.

**Solution:** Simply eject the image in any connected removable drive, by clicking "CD/DVD" and "Clear" (or Browse if you want to replace/fix the drive)

![How to eject a removable drive: step-by-step](/files/-MgQJeSZybMf4aIZ-vvN)

## QEMU exited from an error: qemu-system: cannot set up guest memory 'pc.ram': Cannot allocate memory

**Reason:** The amount of RAM set is too large for your system to run it.

**Solution:** Try to turn down the amount of RAM you allocated to your VM.

{% hint style="info" %}
On a Mac system, you can click the Apple logo in the top right, then About this computer, and see how much RAM your computer has. It is reccomended to use at least half your system's RAM, and more if possible.
{% endhint %}

{% hint style="warning" %}
On an iOS/iPadOS device, you may not use more than half it's RAM or else iOS will kill UTM. To find out how much RAM you device has, you can search it up on your favourite search engine. (example: "iPad Pro 11" 3rd generation RAM")
{% endhint %}

![How to turn down the amount of RAM a VM uses: step 1](/files/-MgQNVho_11G-K1Mrv8L)

![How to turn down the amount of RAM a VM uses: step 2](/files/-MgQMeppVEBiDHR_yPhf)

![How to turn down the amount of RAM a VM uses: step 3](/files/-MgQMSjUwUZjPgrFIk_A)


# Installing Operating Systems

Here is a collection of guides on how to install certain Operating Systems in UTM.


# Windows

{% content-ref url="/pages/-MS3Srlc2Hku5K9WtdXQ" %}
[Windows 98](/utm/installing-operating-systems/windows/windows-98)
{% endcontent-ref %}


# Windows 98

{% hint style="info" %}
If you need help along the way, feel free to add me on Discord: BluDood#0001
{% endhint %}

{% content-ref url="/pages/-MS3lBukXxArwWexU1gK" %}
[Preparing the VM](/utm/installing-operating-systems/windows/windows-98/preparing-the-vm)
{% endcontent-ref %}

{% content-ref url="/pages/-MS3r5jKqO3MeHsTJM9y" %}
[Installing Windows 98](/utm/installing-operating-systems/windows/windows-98/installing-windows-98)
{% endcontent-ref %}

{% content-ref url="/pages/-MS3U7Tid7S4GroLM6r9" %}
[Getting connected](/utm/installing-operating-systems/windows/windows-98/getting-connected)
{% endcontent-ref %}


# Preparing the VM

Here we will prepare the VM with all its settings and files.

## What we are going to do:

* [Download the installation ISO](/utm/installing-operating-systems/windows/windows-98/preparing-the-vm#download-the-install-image)
* [Create and configure the VM](/utm/installing-operating-systems/windows/windows-98/preparing-the-vm#make-and-configure-the-vm)

## Download the installation ISO

Download a Windows 98 ISO, or rip one from a disk you have.

## Create and configure the VM

1. Open UTM
2. Tap the + icon

### Info

#### Give your machine a name

1. Set a name for the Virtual Machine

#### (Optional) Set an icon

1. Tap "Style"
2. Tap "Operating System"
3. Tap the white computer
4. Tap any of the icon you'd like

### System

{% hint style="info" %}
The minimum is 64 MB
{% endhint %}

1. Drag the slider to your preferred amount

### QEMU

1. &#x20;Disable "UEFI Boot"

### Drives

#### Make the hard drive

{% hint style="info" %}
256 MB is the minimum amount or storage.
{% endhint %}

1. Tap the + icon
2. Set the "Size" to your preferred hard drive space
3. Tap "Done"

#### Make a removable drive

1. Tap the + button
2. Toggle on "Removable"
3. Tap "Done"

### Input

Windows 98 only supports PS/2 keyboard and mouse.

1. Toggle on "Legacy (PS/2) Mode"

After you are done with this, save your VM by going back to the list of options, and tapping "Save" in the top right.

### Mount the installation disk

1. Tap your virtual machine
2. Tap "CD/DVD"
3. Tap "Browse"
4. Find your ISO and tap it.

{% hint style="info" %}
Your image will probably be in On My iPhone > Downloads, as that is the default downloads folder.
{% endhint %}

## That's it!

Now you are ready to install Windows 98! Proceed to the next page:

{% content-ref url="/pages/-MS3r5jKqO3MeHsTJM9y" %}
[Installing Windows 98](/utm/installing-operating-systems/windows/windows-98/installing-windows-98)
{% endcontent-ref %}


# Installing Windows 98

Installing Windows 98

## What we are going to do:

* [Start the VM](/utm/installing-operating-systems/windows/windows-98/installing-windows-98#start-the-vm)
* [Install Windows 98](/utm/installing-operating-systems/windows/windows-98/installing-windows-98#install-windows-98)

## Start the VM

1. Tap your Virtual Machine
2. Tap the big play button

## Install Windows 98

The installation should be really straight forward from here. Installation guide has yet to be added.

## You're done!

Your VM should be fully functional from here, except from having an Internet connection. If you plan on browsing the web, you can proceed to the next page:

{% content-ref url="/pages/-MS3U7Tid7S4GroLM6r9" %}
[Getting connected](/utm/installing-operating-systems/windows/windows-98/getting-connected)
{% endcontent-ref %}


# Getting connected

Connecting your VM to the internet for browsing the web.

## What we are going to do:

* [Make sure UTM settings are correct](/utm/installing-operating-systems/windows/windows-98/getting-connected#make-sure-utm-settings-are-correct)
* [Get the driver for the network card and mount it to the VM](/utm/installing-operating-systems/windows/windows-98/getting-connected#get-the-driver-for-the-network-card-and-mount-it-to-the-vm)
* [Copying all the drivers to our local system](/utm/installing-operating-systems/windows/windows-98/getting-connected#copying-all-the-drivers-to-our-local-system)
* [Install the PCI-bus driver](/utm/installing-operating-systems/windows/windows-98/getting-connected#install-the-pci-bus-driver)
* &#x20;[Install other drivers](/utm/installing-operating-systems/windows/windows-98/getting-connected#install-other-drivers)
* [(Optional) Install Firefox](/utm/installing-operating-systems/windows/windows-98/getting-connected#optional-install-firefox)

## Configuring settings

1. Tap your VM
2. Go to your VMs config
3. Go to "Network"
4. Make sure "Enabled" is on
5. Make sure "Emulated Network Card" is set to "rtl8139"\
   If it is not, tap "Emulated Network card" and find "rtl8139"
6. Save your settings

Make sure your installation ISO is still attached to the VM. If not, attach it again by tapping CD/DVD and Browse.

## Copying the Windows 98 drivers to an accessible folder on our C:/ drive

{% hint style="info" %}

#### Why?

When the system installs drivers on startup, it sometimes cannot detect the CD-ROM drive
{% endhint %}

1. Start the Virtual Machine
2. Click "My Computer"
3. Click the C: drive
4. Right click and make a new folder called "drivers"
5. Open that folder
6. Make another folder called "network"
7. Go back to "My Computer"
8. Right click the Windows 98 install disk and click "Explore"
9. Copy the "win98" folder
10. Go back to your "drivers" folder
11. Paste the folder

{% hint style="info" %}
Some files might be hidden because they are recognized as system files. To fix that, do this:&#x20;

1. In the menu bar of Explorer, click "View"
2. Click "Folder Options"
3. Click the "View" tab
4. Under "Hidden files", tick off "Show all files"
5. Click "OK"

If you want to hide system files again, repeat this but tick off "Do not show hidden or system files" instead.
{% endhint %}

Now we need to get the network drivers.

## Get the driver for the network card and mount it to the VM

#### Here is the ISO file with the network drivers. Tap it to download.

{% file src="/files/-MS3YVnGGc3w3kszlv5t" %}
Drivers for the RTL network card
{% endfile %}

#### When the file has finished downloading, follow these steps:

1. Open UTM back up
2. Tap the CD icon
3. Tap "Removable Drive"
4. Tap "Browse"
5. Find the ISO you downloaded and tap it
6. Tap "Done"

#### Copy the drivers

1. Open the newly inserted drive. It should be called "Isoimage"
2. Copy its contents
3. Go back to your "C:/drivers/network" folder
4. Paste the files

## Install the PCI-bus driver

1. Right-click "My Computer" on the Desktop
2. Click "Properties"
3. Go to the "Device Manager" tab
4. Look for "Plug and Play BIOS"
5. Double-click it
6. Go to the "Driver" tab
7. Click "Update Driver..."

#### Now we will install the correct driver.

1. Click "Next"
2. Tick off "Display a list of all the drivers..."
3. Click "Next"
4. Tick off "Show all hardware"
5. Scroll down to "PCI bus" on the right side and click it
6. Click "Next"
7. Click "Yes"
8. Click "Next"
9. Click "Finish"
10. It will tell you to restart. Click "Yes"

## Install other drivers

When you have restarted, it will start installing a lot of different drivers. Read this entire section before proceeding.

1. Click "Next"
2. Click "Next" on the (Recommended) one
3. "Floppy disk drives", "CD-ROM drive" and "Microsoft Windows Update" should all be off. "Specify a location" should be the only one on
4. Type "C:\drivers\\" and click "Next"
5. It will search for a driver, and then tell you if it found anything.
6. Click "Next"
7. Wait for the driver to install
8. Click "Finish"

{% hint style="info" %}
Repeat this on all the next driver installations even if they don't install correctly (they might even install themselves) and reboot when it tells you to.
{% endhint %}

{% hint style="warning" %}

#### If the device you are installing is called "PCI Ethernet Controller":

1. Click "Next" until you can "Specify a location"
2. Type "C:\drivers\network\\"
3. Click "Next"
4. "Next" again
   {% endhint %}

{% hint style="info" %}

#### If it asks you to insert the Windows 98 CD-ROM:

1. Click OK
2. Set the location to C:\drivers\win98
3. Click OK
   {% endhint %}

## (Optional) Install Firefox

Internet Explorer is very outdated and does not work with most pages. Therefore, we will be installing the latest release of Firefox that supports Windows 98.

You can of course install any other browser of your choice, but here i will show how to install Firefox.

#### [Here](https://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/en-US/Firefox%20Setup%202.0.0.20.exe) is the original file from Mozilla. I have put this installer into an ISO file, so you can install it without problems.

{% file src="/files/-MS4LBr50k9LL1nhzhT7" %}
Firefox Installer in an ISO
{% endfile %}

1. Tap the CD icon
2. Tap "Browse"
3. Find and tap the downloaded ISO
4. Double click "My Computer"
5. Double click the CD Drive (firefox)
6. Double click the Firefox Installer
7. Install Firefox like a normal program
8. When it's done, it should appear on your desktop
9. Open it, and try a website like google.com

## Complete!

You can now browse the web on almost all sites. Remember, this browser and OS is very old, and therefore will not work on all sites.


# macOS / Mac OS

{% content-ref url="/pages/-MS8S3b-OB4zwcm7uy9i" %}
[Mac OS X 10.5](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5)
{% endcontent-ref %}


# Mac OS X 10.5

{% hint style="info" %}
If you need help along the way, feel free to add me on Discord: BluDood#0001
{% endhint %}

{% content-ref url="/pages/-MS8Ya8x\_DHt9HCv0rVO" %}
[Preparing the VM](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/preparing-the-vm)
{% endcontent-ref %}

{% content-ref url="/pages/-MS8eEdiI4yM\_tRXhQLt" %}
[Installing Mac OS X 10.5](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/installing-mac-os-x-10.5)
{% endcontent-ref %}


# Preparing the VM

Configuring settings, and mounting your ISO.

## What we are going to do:

* [Download the installation ISO](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/preparing-the-vm#download-the-install-image)
* [Create and configure the VM](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/preparing-the-vm#make-and-configure-the-vm)

## Download the installation ISO

Download an ISO from the internet, or make an ISO from a disk you have.

## Create and configure the VM

1. Open UTM
2. Tap the + icon

### Info

#### Give your machine a name

1. Set a name for the Virtual Machine

#### (Optional) Set an icon

1. Tap "Style"
2. Tap "Operating System"
3. Tap the white computer
4. Tap any of the icon you'd like

### System

#### Setting the architecture

1. Tap "Architecture"
2. Select "PowerPC"
3. Tap "System"
4. Select "Mac99 based PowerMAC (mac99)"

#### Set the amount of RAM

{% hint style="info" %}
The minimum amount is 512 MB.
{% endhint %}

1. Drag the slider to your preferred amount

### Drives

#### Making the hard drive

UTM currently uses the .qcow2 format for its hard drives. There are a lot of pros of this, but Leopard doesn't seem to like the format. When the installation is done, the machine fails to boot. I have found a workaround, but you'll need a computer for it.

1. Install QEMU on your computer
2. Run this command in your terminal:

```
qemu-img create hda.img <size>M
```

You will end up with a file called "hda.img" in the directory you ran the command from.

Transfer this file to your device.

1. Open UTM
2. Tap your VM
3. Go into its config
4. Go to "Drives"
5. Tap the Import button
6. Find the file and tap it
7. Set the type to disk - ide
8. Save your settings

#### Mounting the ISO

1. Tap the Import button
2. Find your ISO file and tap it

{% hint style="info" %}
Your image will probably be in On My iPhone > Downloads, as that is the default downloads folder.
{% endhint %}

### The Sound section

Mac OS X 10.5 crashes if you have sound on. Turn it off:

1. Toggle "Enabled" off

Save your settings.

## That's it!

Now you are ready to install Mac OS X 10.5! Proceed to the next page:

{% content-ref url="/pages/-MS8eEdiI4yM\_tRXhQLt" %}
[Installing Mac OS X 10.5](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/installing-mac-os-x-10.5)
{% endcontent-ref %}


# Installing Mac OS X 10.5

Installing the OS, fixing an error and setting it up.

## What we are going to do:

* [Start the VM](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/installing-mac-os-x-10.5#start-the-vm)
* [Install Mac OS X 10.5](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/installing-mac-os-x-10.5#install-mac-os-x-10-5)
* [Fixing "Installation Failed" Error](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/installing-mac-os-x-10.5#fixing-installation-failed-error)
* [Set up Mac OS X 10.5](/utm/installing-operating-systems/macos-mac-os/mac-os-x-10.5/installing-mac-os-x-10.5#set-up-mac-os-x-10-5)

## Start the VM

1. Tap your Virtual Machine (If you haven't already)
2. Tap the big play button

## Install Mac OS X 10.5

It will take some time to start the installer, but if you are on a screen with an Apple logo and a loading ring, you are good to go!

You will eventually get to a screen with a selection of languages. Select the one you want, and click the arrow icon in the lower left.

### Formatting the hard drive

1. Click "Utilities" from the menu at the top of the screen
2. Click "Disk Utility"
3. Click the drive on the right side
4. Go to the "Erase" tab
5. (Optional) Give the drive a name
6. Click "Erase"
7. Click "Erase"
8. Wait for it to finish
9. Close Disk Utility (the red button in the top right)

### Installing

1. Click "Continue"
2. Agree to the Terms and License Agreement
3. Click the drive you just named
4. Click "Continue"

{% hint style="info" %}
You can click "Customize", and you can save some time and space by unchecking stuff you don't need. I usually uncheck "Printer Drivers" and "Language Translations", since they use up a lot of space, and we don't really need them. Click "Done" when you are done.
{% endhint %}

Click "Install".

{% hint style="info" %}
You can skip the installation disk check to save some time, but it is recommended to let it check the disk. I have skipped it multiple times and had success, but that is because I have used the ISO many times before, so it's not corrupted.
{% endhint %}

Now it is installing! It will take a long time (it took 1 hour for me), so make sure to plug your drive in to power.&#x20;

When it has finished, it will display an error. We will fix that here:

## Fixing "Installation Failed" Error

You will get an error when finished installing saying "Installation Failed". Don't worry, Mac OS is installed, but Mac OS tried to remove the install disk and failed. Open the UTM menu and stop the VM.

1. Open UTM
2. Tap your VM
3. Go into its config
4. Tap "Drives"
5. Swipe left and delete the Mac OS Installation disk
6. Save your settings
7. Start the VM

The VM might be stuck on the Apple logo for a little while, but this is normal. Just wait it out and you'll see a loading circle.

## Set up Mac OS X 10.5

### Setting your country and keyboard layout

1. Find your language and click it
2. Click "Continue"
3. Find your keyboard layout and click it
4. Click "Continue"

### Continue Setup

1. Select "Do not transfer my information now"
2. Click "Continue"

You can put in your Apple ID if you want, but you can continue without it.

1. Click "Continue"

Here is the registration page. Apple do not maintain these anymore, so we'll skip it.

1. Click "Continue"
2. Click "Continue"

Now it is time to set up your user account.

1. Put your name (or whatever you want) in the "Name" box
2. Put a username in the "User Name" box

You can optionally set up a password too.

1. Put in a password in the "Password" box
2. Retype your password in the "Verify" box
3. (Optional) Set a password hint in the "Password Hint" box

You are done setting up your user account! Click "Continue".

Now, choose your time zone.

1. Click your location on the map, or choose it from the list
2. Click "Continue"

## Done!

You have installed Mac OS X 10.5 Leopard! You can check out some programs like Chess, and you should also be connected to the internet!


# Tethering UTM

UTM on iOS 14.4 and above required tethering to function. This guide will show you some different methods of tethering.

{% content-ref url="/pages/GJj5PCTn0o4Vh8pSDZzG" %}
[Jitterbug](/utm/tethering-utm/jitterbug)
{% endcontent-ref %}

{% content-ref url="/pages/5yPYzN17F7hxKYwyiICR" %}
[libimobiledevice](/utm/tethering-utm/libimobiledevice)
{% endcontent-ref %}


# Jitterbug

Jitterbug allows you to use another iOS device to tether UTM. With a paid Apple Developer Account, you can also tether on the same device! This guide will show you both methods.

{% content-ref url="/pages/Sqyv5N4RvqNJRrVaQvTD" %}
[Initial Setup](/utm/tethering-utm/jitterbug/initial-setup)
{% endcontent-ref %}

{% content-ref url="/pages/Zucvcf2lEbvHakkQ8O91" %}
[Launching UTM](/utm/tethering-utm/jitterbug/launching-utm)
{% endcontent-ref %}


# Initial Setup

Jitterbug requires a few files to work properly. You'll only need to do this once.

## Prerequisites

* Windows, Mac or Linux computer with an Internet connection
* iOS device with an Internet connection
* Lightning cable (for connecting the device to your computer)

{% hint style="info" %}
If you do not have a paid Apple Developer account, the "iOS device" will be your secondary device. Otherwise, do this on your main device.
{% endhint %}

## Installing Jitterbug

Installing Jitterbug is quite a simple process. This guide will use AltStore, but you can use other methods you are comfortable with.

1. On your computer, head over to the [Jitterbug Releases](https://github.com/osy/Jitterbug/releases).
2. Choose the correct file for your situation:\
   **If you have a paid Apple Developer Account, choose "Jitterbug.ipa".**\
   **Otherwise, choose "JitterbugLite.ipa"**
3. Sideload with AltStore. You can find a guide on the Internet, or use my guide [here](https://altstore.io).

## Downloading JitterbugPair

We need to generate a "pairing file" for your iOS device. This will enable Jitterbug to connect to your device wirelessly.

1. Again, head over to the [Jitterbug Releases](https://github.com/osy/Jitterbug/releases).
2. Choose the right download for your operating system.\
   jitterbugpair-win64.zip for Windows\
   jitterbugpair-macos.zip for macOS.\
   jitterbugpair-linux.zip for Linux
3. Extract the ZIP file downloaded
4. Connect your iOS device to your computer
5. Run the extracted executable

{% hint style="warning" %}
If the executable stops with no saved pairing file, you need to "Trust this Computer" on your iOS device.
{% endhint %}

This will generate a pairing file for your device, and put it in the same folder you ran JitterbugPair from.

Transfer this pairing file to your iOS device. You can use AirDrop, or what I normally use, [SnapDrop](https://snapdrop.net/).

## Downloading the Developer Disk Image

When tethering, you need to mount a Developer Disk Image. We'll download and import this on your iOS device.

1. Head over to [this GitHub repository](https://github.com/haikieu/xcode-developer-disk-image-all-platforms/tree/master/DiskImages/iPhoneOS.platform/DeviceSupport). It contains all the developer disk images, taken straight from Apple.
2. Download the correct archive for your device.

{% hint style="warning" %}
Not all iOS versions have a disk image. If your version is not listed, choose the version before it.
{% endhint %}

Extract the archive, and save it somewhere you can find it later.

## Importing files to Jitterbug

Now we'll take the collected files, and send them to Jitterbug.

Open Jitterbug, and proceed to follow the next steps:

#### Pairing File

1. Tap "Pairings"
2. Tap the import icon in the top right
3. Choose the pairing file you transferred from your computer

#### Developer Disk Image

1. Tap "Support Files"
2. Tap the import icon in the top right
3. Find these files from the archive, and import them:\
   **DeveloperDiskImage.dmg**\
   **DeveloperDiskImage.dmg.signature**

## Done!

That's the initial setup for Jitterbug! Now, proceed to tethering UTM:

{% content-ref url="/pages/Zucvcf2lEbvHakkQ8O91" %}
[Launching UTM](/utm/tethering-utm/jitterbug/launching-utm)
{% endcontent-ref %}


# Launching UTM

After the initial setup is done, this is all you'll have to do to start UTM.

{% hint style="info" %}
Make sure you are connected to a Wi-Fi network. This does not work over mobile data.\
If you are on mobile data, nothing will happen after step 3.
{% endhint %}

{% tabs %}
{% tab title="Paid ADP Account" %}

1. Open Jitterbug
2. Find your device in the device list. e.g iPhone-12.local
3. Choose your pairing file
4. Choose UTM
5. If it pops up with another menu asking for a disk image, choose DeveloperDiskImage.dmg
   {% endtab %}

{% tab title="Free ADP Account" %}

1. Open Jitterbug on your secondary device
2. Find your main device in the device list. e.g iPhone-12.local
3. Choose your pairing file
4. Choose UTM
5. If it pops up with another menu asking for a disk image, choose DeveloperDiskImage.dmg
   {% endtab %}
   {% endtabs %}

UTM should now start in tethered mode. You can now run any VM, at full speed!


# libimobiledevice

Libimobiledevice is a command-line library to communicate with iOS devices. This includes tethering iOS apps, so this guide will show you how to do this on iOS.

{% content-ref url="/pages/r5G9JCy2LdBGNEQbcaMn" %}
[Initial Setup](/utm/tethering-utm/libimobiledevice/initial-setup)
{% endcontent-ref %}

{% content-ref url="/pages/pYtaMrFK8IKu11ZZ9vdj" %}
[Launching UTM](/utm/tethering-utm/libimobiledevice/launching-utm)
{% endcontent-ref %}


# Initial Setup

libimobiledevice requires a few files and some commands you can note down. Let's download those.

## Prerequisites

* Windows, Mac or Linux computer with an Internet connection
* iOS device with an Internet connection
* Lightning cable (for connecting the device to your computer)

## Downloading libimobiledevice

On your computer, download libimobiledevice for your OS.\
[Download for Windows](https://github.com/libimobiledevice-win32/imobiledevice-net/releases/)\
[Download for macOS and Linux](https://libimobiledevice.org/#get-started)

{% tabs %}
{% tab title="Windows" %}

1. Extract the ZIP archive, and place it in a place you won't delete
2. Press CTRL+R, type `sysdm.cpl`, and press Enter
3. Click "Advanced", and "Environment Variables"'
4. Click "Path", and "Edit..."
5. Click "Browse..." and select the folder you extracted
6. Press OK, and close the windows
   {% endtab %}

{% tab title="macOS / Linux" %}
After installing with Homebrew or APT, you should be good to go!
{% endtab %}
{% endtabs %}

## Downloading the Developer Disk Image

When tethering, you need to mount a Developer Disk Image. We'll download this on your computer.

1. Head over to [this GitHub repository](https://github.com/haikieu/xcode-developer-disk-image-all-platforms/tree/master/DiskImages/iPhoneOS.platform/DeviceSupport). It contains all the developer disk images, taken straight from Apple.
2. Download the correct archive for your device.

{% hint style="warning" %}
Not all iOS versions have a disk image. If your version is not listed, choose the version before it.
{% endhint %}

Extract the archive, and save it somewhere you can find it later.

## Noting down some commands

There are some commands here that you can copy+paste later. Let's find them.

Connect your iOS device to your computer, and open a terminal/command prompt before proceeding.

#### Finding your devices UUID

1. Type `idevice_id` and press Enter

Now you will see your devices in this list. Note down the number before `(USB)` or `(Network)`.

{% hint style="info" %}
If your device says `(Network)` besides it, you don't need your device connected via USB for this to work! Just remember to add the `-n` parameter to the commands you are running.
{% endhint %}

#### Finding UTMs Bundle Identifier

1. Type `ideviceinstaller -l -u` , and paste your devices UUID.
2. Press Enter

This will show every app on your device, and will probably be a very long string of text. You can paste this into a text editor like TextEdit or Notepad, and search for "UTM".

In the line you found "UTM", the bundle identifier is the left-most entry. e.g `com.utmapp.UTM`. Note this string down.

#### Noting down the launch commands

Now we'll note down the commands you need to run every time you are tethering UTM on your device.

1. Mounting the disk image\
   `ideviceimagemounter -u [your devices UUID] [path to DeveloperDiskImage.dmg]`\
   \
   Example: `ideviceimagemounter -u 12345678-ABCEDEFGHIJKLMNO C:\Users\BluDood\15.0\DeveloperDiskImage.dmg`
2. Tethering UTM\
   `idevicedebug -u [your devices UUID] --detach run [UTM bundle ID]`\
   \
   Example: `idevicedebug -u 12345678-ABCEDEFGHIJKLMNO --detach run com.bludood.UTM`

## Done!

That's the initial setup process for libimobiledevice. In the next step, we'll run the commands and look at some troubleshooting steps:


# Launching UTM

After the initial setup is done, you can run the commands you noted down.

#### Mounting the disk image

Run the command you noted down, e.g. `ideviceimagemounter -u 12345678-ABCEDEFGHIJKLMNO C:\Users\BluDood\15.0\DeveloperDiskImage.dmg`

#### Tethering UTM

Run the command you noted down, e.g. `idevicedebug -u 12345678-ABCEDEFGHIJKLMNO --detach run com.bludood.UTM`

### Done!

UTM should now be running. If you encountered any issues, please refer to the below troubleshooting guide.

## Troubleshooting

#### No device found with udid \[UDID].

**Reason:** libimobiledevice could not find the device with this UDID.

**Solution:** Check your USB cable, and see if your computer recognizes your iOS device. If you are doing this over the network, try connecting your device via USB.

### While mounting the disk image

#### Error: ImageMountFailed

**Reason:** The developer disk image is already mounted, or incompatible with your iOS version.

**Solution:** Attempt to tether UTM, or verify that you downloaded the correct disk image.

### While tethering UTM

#### Could not determine container path for bundle identifier \[Bundle ID].

Reason: Your iOS device does not have an application with this bundle ID.

Solution: Verify that you are targeting the correct device. In [Initial Setup > Finding UTMs Bundle Identifier](/utm/tethering-utm/libimobiledevice/initial-setup#finding-utms-bundle-identifier), run this command again, and find UTMs bundle ID.

{% hint style="info" %}
Issue not listed here? Join the [UTM Discord](https://discord.gg/UV2RUgD) and ask there!
{% endhint %}


# Fortnite iOS

This guide will show how to install Fortnite on iOS/iPadOS after the ban.

{% hint style="warning" %}

## With Fortnite returning to iOS in the US and EU, the servers for this version of the game have been shut down and you are not able to log in / launch the game anymore. It was fun while it lasted o7

{% endhint %}

## Prerequisites

* PC / Mac with an Internet connection
* An iOS device (iPhone / iPad / iPod) running iOS 13.2+
* An Apple ID that has owned Fortnite before it was banned
* `Fortnite iOS.imazingapp`, found below

{% file src="/files/9Js7oCwPcBZZipcwhdYe" %}
File required to install Fortnite using iMazing.
{% endfile %}

{% hint style="danger" %}
Make sure to read through the guide first and follow it to the point, as some critical steps could result in data loss by choosing the wrong option. It would be a good idea to make a backup of your device at this point, but following this guide correctly will not erase your data. I do not stand responsible for any damage or data loss of your device.
{% endhint %}

## Download iMazing on your computer

1. Go to <https://imazing.com/download> and pick the version that matches your operating system.
2. Install iMazing and open it.
3. Click "Continue Trial" if you are prompted to buy a license.

## Install Fortnite

1. Connect your iOS device to your computer, and trust the computer if you are prompted to do so
2. In iMazing, go to the device's overview if it is not automatically opened
3. Click "Quick Transfer"
4. Choose or drop the `Fortnite.imazingapp` file
5. Click "Apps" and click "Transfer"
6. Click "Continue"
7. Sign in with your Apple ID.&#x20;

{% hint style="info" %}
Please note that you must log in with an account that has owned Fortnite on iOS before. If you do not have one, you can ask a friend or family member as it will only use it to download the app.
{% endhint %}

7. Wait for the app to download, and for your device to finish rebooting
8. Complete the iOS setup.

{% hint style="danger" %}
**IMPORTANT**: When getting the option to transfer your data or restore from a backup, choose "Don't Transfer Apps & Data". Your data is still present on the device, and restoring it could result in data loss.

In newer versions of iOS, this option may be a little more hidden. Be sure to read everything in the setup process, and if it says anywhere that it's going to restore from iCloud or another backup, choose "Customize".

If you accidentally selected to restore from a backup, immediately rebooting your device should cancel it and let you do the setup again.
{% endhint %}

## Logging In

This process is a little weird as the native login screen does not appear to work, but there are multiple workarounds. Here is one of them:

1. Open Fortnite on your iOS device and tap "LOG OUT" if you are met with an error screen
2. Tap "Yes, find my account"
3. Tap the Google icon and sign in with an account that is not already linked with an Epic Games account
4. When met with a screen that asks you for a birthdate, tap "Back to all options"
5. Now (in the in-app browser), choose your preferred login method and sign in.

{% hint style="warning" %}
Epic Games has restricted login on Fortnite iOS for users younger than 18. This means that if you are under 18 years old, you must make a new Epic Games account.
{% endhint %}

## Downloading Fortnite

Once you are logged into the app, simply press the `Install` button to install Fortnite.

{% hint style="info" %}
Make sure to keep the app open and your device on for this process, as it's quite buggy. Turning your device off or closing the app may result in a bugged download which will error right at the end.
{% endhint %}

## Troubleshooting

* **When the game is started, my device is locked at a portrait orientation.**\
  Fix 1: Try suspending and reopening the game while holding the device in a horizontal orientation.\
  Fix 2: Open the chat box to make your native keyboard appear and close it.
* **I keep getting an "Authentication Error" when I log into the app.**\
  Epic Games has restricted login on Fortnite iOS for users younger than 18. If you are under 18 years old, you must make a new Epic Games account.
* **I get errors at the very end of the installation of Fortnite (in app).**\
  Make sure to keep your device on and the app open at all times during installation, as suspending the app may result in a bugged download.

## Credits

* [GOLDEN (YouTube)](https://www.youtube.com/watch?v=-8_IV-XGAVw)

If you have contributed to this find, please let me know and I'll add you to the list.


# Metal Performance Overlay

Performance overlay for iOS 16+

I noticed someone found some kind of setting to enable a (hidden?) performance overlay in certain apps running on iOS. You can find some useful information like FPS, GPU usage and memory usage. I will show you how to enable it here.

### Prerequisites

* A Mac or PC with an active Internet connection
* Lightning cable for connecting the device to your computer (alternatively, use WiFi sync)

### Installing `libimobiledevice`

A good tool to use for mounting developer disk images is `libimobiledevice`. It also comes with a lot of other useful stuff, but we're interested in one of them.

You can find the installation steps for other operating systems [here](https://libimobiledevice.org/#get-started), i will only list Windows and macOS here.

{% tabs %}
{% tab title="Windows" %}
`libimobiledevice` is not officially compiled for Windows yet, so you'll either have to download an unofficial build or build it yourself.

You can find the build instructions [here](https://github.com/libimobiledevice/libimobiledevice), or a download link below.

{% file src="/files/cuNd72GmK33hMtagBEI3" %}
Libimobiledevice for Windows x64.
{% endfile %}

If you downloaded the archive, you'll have to extract it, and prepend all your commands with the path of the extracted folder. `idevice_id` -> `C:\Users\username\Downloads\libimobiledevice\idevice_id`

You can also append this path to your PATH or environment variables.
{% endtab %}

{% tab title="macOS" %}
àUsing `homebrew`, we can use one command to install this library.

If you haven't done that already, install homebrew [from here](https://brew.sh/).

Now, you can open your terminal and enter this command:

`brew install libimobiledevice```l`
{% endtab %}
{% endtabs %}

### Mounting the developer disk image

As of writing this, the latest beta of iOS 16 is Developer Beta 3. You can find the developer disk image below. Please note that i have not verified that this is official, but it does work for my device.

{% file src="/files/60DxQNAm7ETaBR8Odrj2" %}
Developer Disk Image for iOS 16 Developer Beta.
{% endfile %}

Now, we'll use `libimobiledevice` to mount this image.

Plug your device in to your computer.

Extract the archive you downloaded to a place you'll remember, open a terminal or command prompt, and follow these commands:

&#x20;1\. `idevice_id`

Note down the string before `(USB)`, you'll need this in the next command. This is called a UUID.

Enter the folder you extracted, and copy the path of `DeveloperDiskImage.dmg`. You'll also need this in the next command. You can make a text file or note containing this next command, since this is what you'll need to enter to mount the image again later.&#x20;

&#x20;2\. `ideviceimagemounter -u <UUID> <path_to_disk_image>`

After executing this command, it should output `Status: Complete`. If it does not, make sure your device is on iOS 16, and restart it.

### Enabling the Performance Overlay

1. On your iOS device, open Settings
2. Open "Developer"
3. Scroll down to the bottom and enable the toggle "Show Graphics HUD" under `GRAPHICS_HUD`. This name may be changed later.

![Screenshot of the toggle you have to enable. "Show Graphics HUD"](/files/GbBUpVeqMzGLEShJbuB5)

### Supported apps

Now that you have enabled this toggle, the overlay is enabled. I've only found some apps that utilize this feature.

* UTM

If you find any other apps that utilize this overlay, please contact me via email: <bludood@bludood.com>, or Discord: BluDood#0001


# Urban Dictionary API

https\://urbanapi.up.railway.app

## Get featured definition

<mark style="color:blue;">`GET`</mark> `https://urbanapi.up.railway.app/featured`

#### Query Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| page | Integer |             |

## Get definition of specified word

<mark style="color:blue;">`GET`</mark> `https://urbanapi.up.railway.app/define/:word`

#### Path Parameters

| Name                                   | Type   | Description    |
| -------------------------------------- | ------ | -------------- |
| word<mark style="color:red;">\*</mark> | String | Word to define |


