ONE Jailbreak Ad

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://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.
Author Photo
Written by

Kuba has over 20 years of experience in journalism, focusing on jailbreak since 2012. He has interviewed professionals from various companies. Besides journalism, Kuba specializes in video editing and drone flying. He studied IT at university before his writing career.

Post a comment

Latest Posts

Nugget

Nugget unlocks your iPhones full potential on iOS 17.0

LeminLimez released a new project that allows users to activate some hidden iOS features on iOS 17.0. I took a look into Nugget, an open-source software that promises to enable Dynamic Island, Always On Display, set device model name, disable region restrictions...

Essential Tips to Secure Your iOS Devices

Essential Tips to Secure Your iOS Devices

It’s never been more important to secure your iOS devices. iPhones and iPads are rapidly becoming every part of our daily lives, and with it the growing amount of sensitive information stored on these devices. Our devices full of data, ranging from...

RDAR Dynamic Island fix for iOS

How to Fix Dynamic Island RDAR Error 45025538 Issue on iPhone

When you enable Dynamic Island on unsupported devices, you might notice a "rdar" error, which appears as a red bar at the top of the screen. This happens because of a resolution change when activating Dynamic Island on iOS 17.0 to 18.0. The issue mainly...