Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion ppsideloader.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
472ADDC61CC04250007D628E /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 472ADDC51CC04250007D628E /* Info.plist */; };
472ADDC91CC04272007D628E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 472ADDC81CC04272007D628E /* AppDelegate.m */; };
472ADDCD1CC04291007D628E /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 472ADDCC1CC04291007D628E /* ViewController.m */; };
4773C4B71CC7590F00D16032 /* make_ipa in Resources */ = {isa = PBXBuildFile; fileRef = 4773C4B61CC7590F00D16032 /* make_ipa */; };
47F81AFB1CC1F03200460314 /* PP_SIDELOADER_OPTIONS.plist in Resources */ = {isa = PBXBuildFile; fileRef = 47F81AFA1CC1F03200460314 /* PP_SIDELOADER_OPTIONS.plist */; };
/* End PBXBuildFile section */

Expand All @@ -23,6 +24,7 @@
472ADDCB1CC04291007D628E /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ViewController.h; path = ppsideloader/ViewController.h; sourceTree = SOURCE_ROOT; };
472ADDCC1CC04291007D628E /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ViewController.m; path = ppsideloader/ViewController.m; sourceTree = SOURCE_ROOT; };
4741EE651CBDFF09008F9CDF /* app.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = app.entitlements; sourceTree = SOURCE_ROOT; };
4773C4B61CC7590F00D16032 /* make_ipa */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = make_ipa; path = script/make_ipa; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.sh; };
478649241CBE7D790090A40A /* modify_app */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; name = modify_app; path = script/modify_app; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.sh; };
47F81AFA1CC1F03200460314 /* PP_SIDELOADER_OPTIONS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = PP_SIDELOADER_OPTIONS.plist; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -59,6 +61,7 @@
isa = PBXGroup;
children = (
478649241CBE7D790090A40A /* modify_app */,
4773C4B61CC7590F00D16032 /* make_ipa */,
47F81AFA1CC1F03200460314 /* PP_SIDELOADER_OPTIONS.plist */,
4741EE651CBDFF09008F9CDF /* app.entitlements */,
24208ADF1BCDE89E00D78C93 /* Supporting Files */,
Expand Down Expand Up @@ -120,7 +123,6 @@
TargetAttributes = {
24208ADB1BCDE89E00D78C93 = {
CreatedOnToolsVersion = 7.0.1;
DevelopmentTeam = 9999T6G2M8;
SystemCapabilities = {
com.apple.ApplicationGroups.iOS = {
enabled = 1;
Expand Down Expand Up @@ -158,6 +160,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4773C4B71CC7590F00D16032 /* make_ipa in Resources */,
472ADDC61CC04250007D628E /* Info.plist in Resources */,
47F81AFB1CC1F03200460314 /* PP_SIDELOADER_OPTIONS.plist in Resources */,
);
Expand Down
2 changes: 1 addition & 1 deletion script/make_ipa
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ if [ "$CREATE_IPA_FILES" = true ] ; then
fi

#cleanup
rm -rf "$WORKING_DIR" || true
#rm -rf "$WORKING_DIR" || true
rm -rf "$TEMP_PATH" || true

exit 0
42 changes: 31 additions & 11 deletions script/modify_app
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ WORKING_DIR="${SRCROOT}/working_dir"
EXTRACTED_IPA_PATH="$TEMP_PATH/EXTRACTED_IPA"

rm -rf "$TEMP_PATH" || true
rm -rf "$WORKING_DIR" || true
#rm -rf "$WORKING_DIR" || true

mkdir -p "$TEMP_PATH" || true
mkdir -p "$WORKING_DIR" || true
Expand All @@ -41,11 +41,7 @@ HOOKED_EXE_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/$HOOKED_EXECUTABLE"
#lets download the pp tweak for the app located in root
echo "DOWNLOADING PP TWEAK"
PP_TWEAK_ZIP_PATH="$TEMP_PATH/pptweak.zip"
curl -L "https://beta.unlimapps.com/ppsideloaded/$HOOKED_APP_BUNDLE_ID" -o "$PP_TWEAK_ZIP_PATH"

#now we can unzip the tweak into working directory
echo "EXTRACTING PP TWEAK"
unzip -oqq "$PP_TWEAK_ZIP_PATH" -d "$WORKING_DIR"
#curl -L "https://beta.unlimapps.com/ppsideloaded/$HOOKED_APP_BUNDLE_ID" -o "$PP_TWEAK_ZIP_PATH"

#copy over the app contents
echo "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/"
Expand All @@ -56,6 +52,12 @@ cp -rf "$APP_PATH/" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/"
#copy over all the dylibs
cp -rf "$WORKING_DIR/" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/"

#now we can unzip the tweak into working directory
echo "EXTRACTING PP TWEAK"
mkdir -p "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/Frameworks"
#unzip -oqq "$PP_TWEAK_ZIP_PATH" -d "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/Frameworks"
cp -rf "${SRCROOT}/working_dir/"* "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/Frameworks/"

#lets make sure the HOOKED_EXE has correct permissions
if ! [[ -x "$HOOKED_EXE_PATH" ]]
then
Expand All @@ -77,7 +79,9 @@ if [ "$OVERWRITE_ORIGINAL_APP" != true ] ; then
fi

#add the dylib
"${SRCROOT}/script/insert_dylib" --all-yes --inplace --overwrite "@executable_path/pptweak.dylib" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/$HOOKED_EXECUTABLE"
#"${SRCROOT}/script/insert_dylib" --all-yes --inplace --overwrite "@executable_path/libuasharedanaltyics.dylib" "$PP_TWEAK_PATH"
#"${SRCROOT}/script/insert_dylib" --all-yes --inplace --overwrite "@executable_path/libuasharedtools.dylib" "$PP_TWEAK_PATH"
#"${SRCROOT}/script/insert_dylib" --all-yes --inplace --overwrite "@executable_path/pptweak.dylib" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/$HOOKED_EXECUTABLE"

#add the correct entitlements
TEMP_PLIST="$TEMP_PATH/temp.plist"
Expand All @@ -86,13 +90,29 @@ security cms -D -i ~/Library/MobileDevice/Provisioning\ Profiles/"$EXPANDED_PROV
/usr/libexec/PlistBuddy -c "Print Entitlements" "$TEMP_PLIST" -x > "$REAL_CODE_SIGN_ENTITLEMENTS"

#sign all the executable binaries
for DYLIB in "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/"*.dylib
for DYLIB in "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/Frameworks/"*.dylib
do
FILENAME=$(basename $DYLIB)
echo "SIGNING: $FILENAME"
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY_NAME" "$DYLIB" > /dev/null 2>&1
if [ -f $DYLIB ]; then
echo "'$DYLIB' Exists"
FILENAME=$(basename $DYLIB)
echo "SIGNING: $FILENAME"
#/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY_NAME" "$DYLIB" > /dev/null 2>&1
/opt/iOSOpenDev/bin/ldid -S "$DYLIB"
"${SRCROOT}/script/insert_dylib" --all-yes --inplace --overwrite "@executable_path/Frameworks/$FILENAME" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/$HOOKED_EXECUTABLE"
fi
done

#sign all the executable binaries
#/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY_NAME" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/libuasharedtools.dylib" > /dev/null 2>&1
#/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY_NAME" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/libuasharedanaltyicsflurry.dylib" > /dev/null 2>&1
#/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY_NAME" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/libuasharedanaltyics.dylib" > /dev/null 2>&1

#ldid -S "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/libuasharedtools.dylib"
#ldid -S "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/libuasharedanaltyicsflurry.dylib"
#ldid -S "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/libuasharedanaltyics.dylib"
#/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY_NAME" "$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/pptweakloader.dylib" > /dev/null 2>&1


APP_PLUGINS_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app/PlugIns"
if [ "$OVERWRITE_ORIGINAL_APP" != true ] ; then
echo 'PUSH IS NOT ENABLED'
Expand Down