Advertisement
Guest User

ipapatcher

a guest
Sep 6th, 2019
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #!/bin/bash
  2. if [ "$EUID" -ne 0 ]
  3. then echo "Please run as root"
  4. exit
  5. fi
  6. function help {
  7. echo "Usage: ipapatcher <IPA File>"
  8. }
  9. if [ $# = 0 ]; then
  10. help
  11. exit 1
  12. fi
  13. if [ $1 = "-h" ]; then
  14. help
  15. exit 1
  16. fi
  17. if [ $1 = "--help" ]; then
  18. help
  19. exit 1
  20. fi
  21. if [ ! -f $1 ] && [ ! $1 = "-h" ] && [ ! $1 = "--help" ]; then
  22. echo "[X] Could not find IPA with filename $1"
  23. exit 1
  24. fi
  25. echo "[*] Unzipping (May take a while depending on size of the app, be patient!)"
  26. if [ ! -d "/tmp/IPAPatcher" ]; then
  27. mkdir /tmp/IPAPatcher
  28. else
  29. rm -r /tmp/IPAPatcher
  30. mkdir /tmp/IPAPatcher
  31. fi
  32. mkdir /var/mobile/Documents/Patched > /dev/null 2>&1
  33. unzip -d /tmp/IPAPatcher/ "$1" > /dev/null 2>&1
  34. ipa=$(basename $1)
  35. patch="/var/mobile/Documents/Patched/${ipa%.ipa}.patched.ipa"
  36. echo "[*] Finished unzipping!"
  37. cd /tmp/IPAPatcher/Payload
  38. sign(){
  39. echo "[*] Signing $(basename $1) with entitlements..."
  40. plist="/tmp/IPAPatcher/ent.xml"
  41. ldid -e "$1" > "$plist"
  42. if [ ! $? -eq 0 ]; then
  43. echo "[X] Error extracting entitlements from binary, using global entitlements instead."
  44. if [ -f "/usr/share/entitlements/global.xml" ]; then
  45. cp "/usr/share/entitlements/global.xml" "$plist"
  46. else
  47. curl -Lo "$plist" "https://raw.githubusercontent.com/sbingner/jailbreak-resources/master/layout/usr/share/entitlements/global.xml"
  48. fi
  49. else
  50. sed -i '5 i\<true\/>' "$plist"
  51. sed -i '5 i\<key>platform-application<\/key>' "$plist"
  52. sed -i '5 i\<true\/>' "$plist"
  53. sed -i '5 i\<key>com.apple.private.skip-library-validation<\/key>' "$plist"
  54. sed -i '5 i\<true\/>' "$plist"
  55. sed -i '5 i\<key>com.apple.private.security.no-container<\/key>' "$plist"
  56. if [ ! $? -eq 0 ]; then
  57. echo "[X] Error adding entitlements to $plist, please check $plist"
  58. exit 1
  59. fi
  60. fi
  61. if [ -f /usr/share/jailbreak/signcert.p12 ]; then
  62. ldid -P -K/usr/share/jailbreak/signcert.p12 -S"$plist" "$1" > /dev/null 2>&1
  63. else
  64. ldid -S"$plist" "$1" > /dev/null 2>&1
  65. fi
  66. rm "$plist" > /dev/null 2>&1
  67. }
  68. for f in $(find /tmp/IPAPatcher/Payload/*.app)
  69. do
  70. if [[ $(file $f) == *"Mach-O"* ]]; then
  71. sign "$f"
  72. if [ ! $? -eq 0 ]; then
  73. echo "[X] Error, could not sign $f."
  74. fi
  75. fi
  76. done
  77. echo "[*] Zipping..."
  78. rm -r /Payload > /dev/null 2>&1
  79. mv /tmp/IPAPatcher/Payload /Payload
  80. zip -r "$patch" "/Payload" > /dev/null 2>&1
  81. echo "[*] Finished zipping!"
  82. rm -r /tmp/IPAPatcher/
  83. rm -r /Payload
  84. echo "[*] Output: $patch"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement