ONE Jailbreak Ad
Research Updated Jun 20, 2023

Xinamine Rootless Patcher for Filza on iOS 15 - iOS 16

Promotion image of Xinamine Rootless Patcher article.

XinaA15 is a revolutionary jailbreak that aims to enable users to run non-rootless tweaks beyond the usual limitations. It successfully provides extensive support for numerous tweaks that are typically unavailable in other rootless jailbreaks like Dopamine. However, it's worth noting that the Xinamine Patcher for Fugu15 based jailbreaks changes it.

What is Xinamine Rootless Patcher?

Xinamine Rootless Patcher is a script designed for Filza, enabling effortless conversion of non-rootless tweaks to function seamlessly on rootless jailbreaks like Fugu15, Dopamine, or Palera1n. What sets Xinamine Patcher apart from other conversion tools is its unique capability to modify paths similar to XinaA15, ensuring optimal compatibility and smooth functioning.

After installation, Xinamine Rootless Patcher Script seamlessly integrates with Filza File Manager on iOS 15. Converting a non-rootless DEB package to its rootless version is a breeze. Just reveal the popup menu in Filza, navigate to Scripts, and select XinaminePatcher. With a simple click, the file will undergo conversion, ensuring compatibility with rootless jailbreaks. Please note that for this process to work, the Xinamine package must be installed on your jailbroken device.

While it's important to acknowledge that Xinamine Rootless Patcher may not guarantee compatibility in every case, there is a significant chance that this script can prove invaluable. Even if the developer of your cherished tweak has ceased updating it to support rootless jailbreaks, Xinamine Rootless Patcher can step in and bridge the gap, offering a potential solution to keep your favorite tweaks functioning smoothly.

Two iPhone screens showing Xinamine Patcher script execution in Filza.

Xinamine, developed by Sudo and Paisseon, introduces symlinks that resolve compatibility issues for Xina tweaks (repacked packages designed for XinaA15 Jailbreak) on Dopamine and Palera1n rootless jailbreaks, specifically on iOS 15.0 – iOS 15.7.1. This remarkable tool offers several key features, including automatic execution upon respring, a lightweight design, and an open-source nature. With Xinamine, you can seamlessly enhance the functionality of your jailbreak experience while enjoying its efficient and transparent operation.

Xinamine Rootless Patcher is compatible with iOS 15 and iOS 16, but it's important to note that the necessary component, Xinamine, does not work on iOS 16 and above. Additionally, Xinamine Patcher exclusively supports Filza specifically designed for jailbroken devices.

Attempting to use Filza for TrollStore or Filza MacDirtyCow will result in incorrect execution of the script. To proceed with the repacking process, it is important to have ldid package installed. Xinamine Rootless Patcher uses Teutates repack-rootless script with additional changes.

Add Repository

Xinamine Rootless Patcher Script was released as a free package from the private NoW4U2Kid Repository. Add Xinamine Patcher Repo to your package manager to access the script to repack tweaks for rootless support on iOS 15 – iOS 15.7.1. Additionally, to use converted tweaks on Dopamine or Palera1n jailbreaks it's required to install Xinamine from Paisseon Repository.

To install Xinamine Patcher for Filza, follow those steps:

  1. Open the Sileo app from the Home Screen.
  2. Tap on the Sources tab, then select Edit button.
  3. Add the following repository URL:
    https://now4u2kid.github.io
    https://paisseon.github.io
  4. Search for Xinamine Rootless Patcher and Xinamine.
  5. Install the packages and respring your device.
  6. Xinamine Rootless Patcher can be activated in Filza app.

Sileo app showing Xinamine and Xinamine Patcher installed files on rootless iOS 15.

Source Code

#Xinamine Rootless Patcher v1.4 Source Code

set -e

if ! type dpkg-deb >/dev/null 2>&1; then
	echo "Please install 'dpkg-deb'."
fi

if ! type file >/dev/null 2>&1; then
	echo "Please install 'file' from Bingner or Procursus."
fi

if ! type otool >/dev/null 2>&1; then
	echo "Please install 'odcctools'."
fi

if ! ldid 2>&1 | grep -q 'sha1\|sha2'; then
	echo "Please install 'ldid' (must have -H option)."
fi

LDID="ldid -Hsha256"

OLD="$(mktemp -qd)"
NEW="$(mktemp -qd)"

if [ ! -d "$OLD" ] || [ ! -d "$NEW" ]; then
	echo "Creating temporary directories failed."
    exit 1;
fi

### Script start

dpkg-deb -R "$1" "$OLD"

if [ -d "$OLD/var/jb" ]; then
    echo "Deb already rootless. Skipping and exiting cleanly."
    rm -rf "$OLD" "$NEW"
    exit 0;
fi

mkdir -p "$NEW"/var/jb
cp -a "$OLD"/DEBIAN "$NEW"
#sed -i '/^Package: / s/$/rootless/' "$OLD"/DEBIAN/control
sed -i '/^Name: / s/$/ (Xinafied-rootless)/' "$OLD"/DEBIAN/control
sed 's|iphoneos-arm|iphoneos-arm64|' < "$OLD"/DEBIAN/control > "$NEW"/DEBIAN/control

rm -rf "$OLD"/DEBIAN
mv -f "$OLD"/.* "$OLD"/* "$NEW"/var/jb >/dev/null 2>&1 || true

#### Overall Patching Start

find "$NEW" -type f | while read -r file; do
  if file -ib "$file" | grep -q "x-mach-binary; charset=binary"; then
#    echo "$file"
    INSTALL_NAME=$(otool -D "$file" | grep -v -e ":$" -e "^Archive :" | head -n1)
    otool -L "$file" | tail -n +2 | grep -e /System | grep /Library/'[^/]'\*.dylib | cut -d' ' -f1 | tr -d "[:blank:]" > "$OLD"/._lib_cache
    if [ -n "$INSTALL_NAME" ]; then
        install_name_tool -id @rpath/"$(basename "$INSTALL_NAME")" "$file" >/dev/null 2>&1
    fi
    if otool -L "$file" | grep -q CydiaSubstrate; then
        install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @rpath/libsubstrate.dylib "$file" >/dev/null 2>&1
    fi
    if [ -f "$OLD"/._lib_cache ]; then
        cat "$OLD"/._lib_cache | while read line; do
            install_name_tool -change "$line" @rpath/"$(basename "$line")" "$file" >/dev/null 2>&1
        done
    fi
    install_name_tool -add_rpath "/var/jb/Library/Frameworks" "$file" >/dev/null 2>&1
    install_name_tool -add_rpath "/var/jb/usr/lib" "$file" >/dev/null 2>&1

### Xina Patching Start
    #XinaPatch Binaries
    sed -i 's#\x00/Library/MobileSub#\x00/var/LIY/MobileSub#g' "$file"
    sed -i 's#\x00/Library/Sn#\x00/var/LIY/Sn#g' "$file"
    sed -i 's#\x00/Library/Th#\x00/var/LIY/Th#g' "$file"
    sed -i 's#\x00/Library/Application Support#\x00/var/LIY/Application Support#g' "$file"
    sed -i 's#\x00/Library/LaunchD#\x00/var/LIY/LaunchD#g' "$file"
    sed -i 's#\x00/Library/PreferenceB#\x00/var/LIY/PreferenceB#g' "$file"
    sed -i 's#\x00/Library/PreferenceL#\x00/var/LIY/PreferenceL#g' "$file"
    sed -i 's#\x00/Library/Frameworks#\x00/var/LIY/Frameworks#g' "$file"
    sed -i 's#\x00/bin/sh#\x00/var/sh#g' "$file"
    sed -i 's#\x00/usr/lib#\x00/var/lib#g' "$file"
    sed -i 's#\x00/usr/bin#\x00/var/bin#g' "$file"
    #Revert Exceptions
    sed -i 's#\x00/var/lib/libobjc.A.dylib#\x00/usr/lib/libobjc.A.dylib#g' "$file"
    sed -i 's#\x00/var/lib/libc++.1.dylib#\x00/usr/lib/libc++.1.dylib#g' "$file"
    sed -i 's#\x00/var/lib/libSystem.B.dylib#\x00/usr/lib/libSystem.B.dylib#g' "$file"
    sed -i 's#\x00/var/lib/libstdc++.6.dylib#\x00/usr/lib/libstdc++.6.dylib#g' "$file"
    sed -i 's#\x00/var/lib/libMobileGestalt.dylib#\x00/usr/lib/libMobileGestalt.dylib#g' "$file"
    ldid -S "$file"
  #Patch .plist files
  elif basename "$file" | grep -q ".plist"; then
    sed -i 's#>/Applications/#>/var/jb/Applications/#g' "$file"
    sed -i 's#>/Library/i#>/var/LIY/i#g' "$file"
    sed -i 's#>/usr/share/#>/var/share/#g' "$file"
    sed -i 's#>/usr/bin/#>/var/bin/#g' "$file"
    sed -i 's#>/usr/lib/#>/var/lib/#g' "$file"
    sed -i 's#>/usr/sbin/#>/var/sbin/#g' "$file"
    sed -i 's#>/usr/libexec/#>/var/libexec/#g' "$file"
    sed -i 's#>/usr/#>/var/jb/usr/#g' "$file"
    sed -i 's#>/etc/#>/var/etc/#g' "$file"
    sed -i 's#>/bin/#>/var/bin/#g' "$file"
    sed -i 's#>/Library/#>/var/LIY/#g' "$file"
  fi
done

#Patch /DEBIAN preinst, postinst, prerm, postrm
find "$NEW"/DEBIAN -type f | while read -r file; do
  if basename "$file" | grep -q "preinst\|postinst\|prerm\|postrm"; then
    sed -i 's# /Applications/# /var/jb/Applications/#g' "$file"
    sed -i 's# /Library/i# /var/LIY/i#g' "$file"
    sed -i 's# /usr/share/# /var/share/#g' "$file"
    sed -i 's# /usr/bin/# /var/bin/#g' "$file"
    sed -i 's# /usr/lib/# /var/lib/#g' "$file"
    sed -i 's# /usr/sbin/# /var/sbin/#g' "$file"
    sed -i 's# /usr/libexec/# /var/libexec/#g' "$file"
    sed -i 's# /usr/# /var/jb/usr/#g' "$file"
    sed -i 's# /etc/# /var/etc/#g' "$file"
    sed -i 's# /bin/# /var/bin/#g' "$file"
    sed -i 's# /Library/# /var/LIY/#g' "$file"
  fi
done
### Xina Patching End

#### Overall Patching End

dpkg-deb -b "$NEW" "$(pwd)"/"$(grep Package: "$NEW"/DEBIAN/control | cut -f2 -d ' ')"_"$(grep Version: "$NEW"/DEBIAN/control | cut -f2 -d ' ')"_"$(grep Architecture: "$NEW"/DEBIAN/control | cut -f2 -d ' ')".deb >/dev/null 2>&1

### Script end

### Cleaning up
rm -rf "$OLD" "$NEW"

/var/jb/basebin/jbctl rebuild_trustcache >/dev/null 2>&1

What's new

  • Updated Xinamine Rootless Patcher Script to version 1.7.4.
  • Updated Xinamine to version 0.0.5.
  • Supported for Dopamine, Fugu15Max, Palera1n (rootless), XinaA15.
  • Fixed a MAJOR bug in the file locating process.
  • Added more exception paths.
  • Made script much faster and more efficient.
  • Slightly adjusted script based off of Derootifier.
  • Removed Allemand because it was causing problems.

Post a comment

Latest Posts

How to install Mitsuha Forever

How to install Mitsuha tweak on iOS 15 – iOS 16

Since 2017, Mitsuha has been available in a number of editions and variations, both official and unofficial. There are many versions of this tweak that may be installed on your iPhone. Depending on the iOS version and jailbreak that is currently...

IPA installers for iOS

Best IPA installers for iOS 16 and iOS 17

You can download games and apps on your iPhone without having to go through the App Store by utilizing IPA installer apps. These tools enable users to sign and sideload apps onto their devices. Certain IPA installers can directly install IPA files...

Downr1n

Downgrade iOS checkm8 devices with Downr1n

Downr1n, developed by Edwin Nuñez, stands as a comprehensive and free toolbox, enabling the downgrading of checkm8 devices to iOS versions 16, 15, and 14, all achieved without the need for blobs. This tool facilitates tethered downgrades, even...