Research Updated Jun 20, 2023

Xinamine Rootless Patcher for Filza on iOS 15 - iOS 16

Xinamine Rootless Patcher

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

Payments with Blockchain

Revolutionizing Cross-Border Payments with Blockchain

Blockchain technology has brought about drastic changes in cross-border payments, ensuring a straightforward money exchange between parties from dissimilar nations. Among them is the swift payment processing that sees crypto international payments conclude...

TrollStore alternatives for iOS 17

Best TrollStore alternatives for iOS 17

TrollStore is one of the most wanted tools for iOS 17, offering users the ability to install apps and games permanently without any limitations. But here's the snag: despite TrollStore's compatibility with iOS 17.0, no installations are available...

Mobile Verification Toolkit

How to install Mobile Verification Toolkit (MVT)

Mobile Verification Toolkit (MVT) serves as a valuable tool for streamlining the consensual forensic analysis of iOS devices, enabling the identification of compromise indicators. This innovative toolkit, by the Amnesty International Security Lab...