Xinamine Rootless Patcher for Filza on iOS 15 - iOS 16
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.
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:
- Open the Sileo app from the Home Screen.
- Tap on the Sources tab, then select Edit button.
- Add the following repository URL:
https://paisseon.github.io
- Search for Xinamine Rootless Patcher and Xinamine.
- Install the packages and respring your device.
- Xinamine Rootless Patcher can be activated in Filza app.
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.