IOS to PC/Steam Deck – Final Fantasy Pixel Remaster Save Game Transfer

The Final Fantasy Pixel Remaster series of games are a paradox. Nearly perfect pixel recreations of the OG games but infuriating control options for mobile phones. From the beginning, they’ve never supported controllers such as Backbone. This will guide you how to migrate your saves from an IOS version of the remasters to PC/Steam Deck.

This is high level, you’ll need to fill in the obvious gaps. There might be other software that can accomplish this, however this guide requires a Mac.

Download and install iMazing – the free trial will allow you to export your data.

Once installed and the phone is connected to iMazing, select “Manage Apps”.

From the list, click on the app you wish to export.

On the bottom right, click on the arrow and select “Back Up App Data”.

Select a folder to save the export to and select “Back Up and Extract App Data” and click “Next”.

Click OK on the next screen. It can take 15-20 minutes for the process to complete.

Open Terminal and move to the directory containing the .imazingapp backup file. Run “unzip” on the file.

unzip FF2.imazingapp

The save files are held within Container/Documents/Save/ from the files that were extracted.

These files can now be copied to either:

  • PC: ~/Documents/My Games/Final Fantasy {num} PR/Steam/{user_id}/
  • Steam Deck: ~/.steam/steam/steamapps/compatdata/{steam game id}/pfx/drive_c/users/steamuser/My Documents/My Games/Final Fantasy {num} PR/Steam/{user_id}/

num will be one of the following {, II, III, IV, V, VI}

user_id will be some kind of integer ID

steam_game_id will be some kind of integer ID that can be found in the URL of the Steam Store page for the game

If you have a Windows machine or Virtual Machine on your Mac, it may just be easier to copy your files to Windows and let the Steam Cloud sync things for you for the Deck.

Upgrade Untangle – Fixing Broken Auto-Updates

Untangle is a firewall product that I use to manage my network and prevent my kids from accessing certain sites or categories of content. I also use it to shut off internet access to certain devices past certain hours or when I’m given attitude.

Unfortunately, the Home Version of Untangle does not get any support and updates are often promised as “they’ll be pushed out soon.” After rolling with version 12.1 for multiple years, I investigated the upgrade process and have documented the steps I followed to get to the most recent version.

Note: Upgrades MUST be in sequential order. Breaking changes may have been made between versions. Upgrading sequentially will ensure that your current Untangle server and all of its configurations will remain intact. Upgrading out of order may cause you to lose config or worse.

Enable SSH

Please refer to the Untangle Wiki to enable SSH – This is required to edit the apt lists.

Upgrade Path

This is the order in which the Untangle server must be upgraded. Jessie->Jessie and Stretch->Stretch upgrades do not require a restart. The upgrade from Debian Jessie to Debian Stretch will require a reboot.


  • stihl-2
  • beat
  • beat-1
  • jims
  • jims-1
  • 13.2.0
  • 13.2.1


  • 14.0.0
  • 14.0.1
  • 14.1.0
  • 14.1.1
  • 14.1.2
  • 14.2.0
  • 14.2.1
  • 14.2.2
  • 15.0.0


  • 15.1.0
  • 15.1.1
  • 15.1.2
  • 16.0.0
  • 16.0.1
  • 16.1.0
  • 16.1.1
  • 16.2.0
  • 16.2.1
    • See below for issues relating to this version
  • 16.2.2
  • 16.3.0
  • 16.3.1
  • 16.3.2

Edit Apt Sources

Untangle Only Upgrade Steps

  1. sed -i “s/$current_version/$next_version/g” /etc/apt/sources.list.d/untangle.list and bump release code name (or number) to next release
    • IE. stihl-2 would be $current_version and beat would be $next_version.
  2. Log into the Untangle UI.
  3. Select Config -> Upgrade and wait for the system to finish checking upgrades. It should have found a new version and you can click the “Upgrade Now” button.

Distribution Upgrades

Certain upgrade paths require an distro upgrade along with the Untangle upgrade.

  • 13.2.1 to 14.0.0 requires upgrading Debian Jessie to Debian Stretch
  • 15.0.0 to 15.1.0 requires upgrading Debian Stretch to Debian Buster

Please follow these steps for this one time upgrade and return to the steps above for subsequent upgrades until you hit the next distro upgrade requirement.

  1. sed -i “s/$current_version/$next_version/g” /etc/apt/sources.list.d/untangle.list and bump release code name (or number) to next release.
    • IE. 13.2.1 would be $current_version and 14.0.0 would be $next_version.
    • For Jessie to Stretch: sed -i “s/jessie/stretch/g” /etc/apt/sources.list.d/untangle.list
    • For Stretch to Buster: sed -i “s/stretch/buster/g” /etc/apt/sources.list.d/untangle.list
  2. I’m not sure if this is necessary, but I did it anyways and it did not hinder the upgrades.
    • For Jessie to Stretch: sed -i “s/jessie/stretch/g” /etc/apt/preferences.d/00default-debian.pref
    • For Stretch to Buster: sed -i “s/stretch/buster/g” /etc/apt/preferences.d/00default-debian.pref
  3. Return to Untangle Only Upgrade Steps to finish upgrading through the versions


I’ve seen many times during the upgrade process a page that continually refreshes that says “Upgrade in progress…. Do not reboot.” Please verify that the upgrade is complete before attempting the steps below. You can verify the upgrade by via tail -f /var/log/uvm/upgrade.log.

Stop the Splash Screen

/usr/share/untangle/bin/ut-show-upgrade-splash stop

If this does not fix the issue, continue to the next step.

Restart Untangle VM

/etc/init.d/untangle-vm restart

14.2.2 -> 15.0.0 Upgrade – Can’t log into Untangle Admin

This is caused by stale cached JS. Reload the page without the cache.

  • Windows/Linux: Refresh with SHIFT + F5
  • Mac: Refresh with SHIFT + CMD + R

16.2.0 -> 16.2.1 Upgrade – FreeRadius breaks – breaking Untangle

FreeRadius broke for me, default rules are destroyed during this upgrade. I solved this by upgrading to 16.2.2 by updating the untangle repo to that version and running apt-get update ; apt-get upgrade .

This was enough to have untangle start back up outside the “normal” upgrade UI process. It was running as expected and was showing the correct version in the UI.

Suricata Looping

Another issue I saw in 16.3.0 -> 16.3.1 was the following message looping in /var/log/uvm/uvm.log

Jul 1 11:07:16 localhost [ExecManagerImpl] INFO ExecManager.exec(systemctl show suricata) = 0 took 9 ms.
Jul 1 11:07:46 localhost [ExecManagerImpl] INFO ExecManager.exec(systemctl show suricata)
Jul 1 11:07:46 localhost [ExecManagerImpl] INFO ExecManager.exec(systemctl show suricata) = 0 took 9 ms.
Jul 1 11:08:16 localhost [ExecManagerImpl] INFO ExecManager.exec(systemctl show suricata)
Jul 1 11:08:16 localhost [ExecManagerImpl] INFO ExecManager.exec(systemctl show suricata) = 0 took 8 ms.
This went on for much longer than it should. I ran systemctl restart untangle-vm and this got things unwedged and Untangle came back up just fine.

Buster Notes

These are notes – not really instructions. Not liable for terrible things that may happen.

I couldn’t get the uvm to start at all. Found errors in /var/log/uvm/console.log that stated the new uvm was compiled in Java 55 and not Java 52. JDK 11 vs JDK 8.

I ran the following.

apt-get install openjdk-11-jre-headless
update-alternatives --config java

I set the java version to point to the jdk11 that was just installed.

Recovering Splunk Passwords

Splunk’s passwords can be decrypted.

Splunk provides the means to decrypt the passwords.

Splunk Versions 7.2.2+

Use the show-decrypted CLI command to get the password value.

/opt/splunk/bin/splunk show-decrypted --value $hash

You can also use the show-encrypted CLI command to do the reverse if a need arose.

/opt/splunk/bin/splunk show-encrypted --value changeme

Splunk Versions 6.3.0 – 7.2.1

This trick is useful for times where your old admin didn’t share the pass4SymmKey or other “encrypted” fields in the config. This method became possible after 6.3.0 when passwords.conf was introduced.

Splunk Password Basics

Splunk provides a nice write up of how secrets are stored within configuration files on the file system. It’s important to note that when a clear-text password is detected in a “secret” field, the next restart of Splunk will cause this value to become encrypted using the splunk.secret value. This value is generated upon first install and is normally different between Splunk installations, meaning that your encrypted values would be different even if the original clear-text value was identical.


Add a passwords.conf file in your favorite config directory, ie. /opt/splunk/etc/apps/search/local/passwords.conf, with the following contents.


The example from my test instance.

Debug Refresh

Perform a debug refresh to force Splunk to load this new file into active config. Perhaps a restart if you’re getting a Forbidden on this link. (Free users)


Splunk API for Clear Text

Use the Splunk API to view all the passwords (the one you just added) managed by Splunk via passwords.conf.


You’ll find the clear-text in the clear_password field.

Hope this helps with recovering an unknown password.

PrivateBin Instance

When the insurance company asks you to email your policy information and driver’s license information, what do?  I’d recommend not sending it.  I set up this instance of PrivateBin for myself so that when information needs to be securely sent, I now have a method to share those items.

PrivateBin allows the following:

  • Password protection of the content
  • Automatic deletion of the content after a certain time
  • Burn after reading (the content can only be opened once)
  • Encrypted storage (and encryption in transit)
  • Support for plaintext, source code and Markdown
  • Discussion

This instance can be accessed here: