Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- if [ "$EUID" -ne 0 ]
- then echo "Please run as root"
- exit
- fi
- function help {
- echo "Usage: ipapatcher <IPA File>"
- }
- if [ $# = 0 ]; then
- help
- exit 1
- fi
- if [ $1 = "-h" ]; then
- help
- exit 1
- fi
- if [ $1 = "--help" ]; then
- help
- exit 1
- fi
- if [ ! -f $1 ] && [ ! $1 = "-h" ] && [ ! $1 = "--help" ]; then
- echo "[X] Could not find IPA with filename $1"
- exit 1
- fi
- echo "[*] Unzipping (May take a while depending on size of the app, be patient!)"
- if [ ! -d "/tmp/IPAPatcher" ]; then
- mkdir /tmp/IPAPatcher
- else
- rm -r /tmp/IPAPatcher
- mkdir /tmp/IPAPatcher
- fi
- mkdir /var/mobile/Documents/Patched > /dev/null 2>&1
- unzip -d /tmp/IPAPatcher/ "$1" > /dev/null 2>&1
- ipa=$(basename $1)
- patch="/var/mobile/Documents/Patched/${ipa%.ipa}.patched.ipa"
- echo "[*] Finished unzipping!"
- cd /tmp/IPAPatcher/Payload
- sign(){
- echo "[*] Signing $(basename $1) with entitlements..."
- plist="/tmp/IPAPatcher/ent.xml"
- ldid -e "$1" > "$plist"
- if [ ! $? -eq 0 ]; then
- echo "[X] Error extracting entitlements from binary, using global entitlements instead."
- if [ -f "/usr/share/entitlements/global.xml" ]; then
- cp "/usr/share/entitlements/global.xml" "$plist"
- else
- curl -Lo "$plist" "https://raw.githubusercontent.com/sbingner/jailbreak-resources/master/layout/usr/share/entitlements/global.xml"
- fi
- else
- sed -i '5 i\<true\/>' "$plist"
- sed -i '5 i\<key>platform-application<\/key>' "$plist"
- sed -i '5 i\<true\/>' "$plist"
- sed -i '5 i\<key>com.apple.private.skip-library-validation<\/key>' "$plist"
- sed -i '5 i\<true\/>' "$plist"
- sed -i '5 i\<key>com.apple.private.security.no-container<\/key>' "$plist"
- if [ ! $? -eq 0 ]; then
- echo "[X] Error adding entitlements to $plist, please check $plist"
- exit 1
- fi
- fi
- if [ -f /usr/share/jailbreak/signcert.p12 ]; then
- ldid -P -K/usr/share/jailbreak/signcert.p12 -S"$plist" "$1" > /dev/null 2>&1
- else
- ldid -S"$plist" "$1" > /dev/null 2>&1
- fi
- rm "$plist" > /dev/null 2>&1
- }
- for f in $(find /tmp/IPAPatcher/Payload/*.app)
- do
- if [[ $(file $f) == *"Mach-O"* ]]; then
- sign "$f"
- if [ ! $? -eq 0 ]; then
- echo "[X] Error, could not sign $f."
- fi
- fi
- done
- echo "[*] Zipping..."
- rm -r /Payload > /dev/null 2>&1
- mv /tmp/IPAPatcher/Payload /Payload
- zip -r "$patch" "/Payload" > /dev/null 2>&1
- echo "[*] Finished zipping!"
- rm -r /tmp/IPAPatcher/
- rm -r /Payload
- echo "[*] Output: $patch"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement