An iOS patch to make Mach-O binaries use the real application groups entitlements evaluated at runtime.
insert_dylib
binary placed in root folder, you can find it heretheos
installed on your machine, see installation guide here- A decrypted iOS application you wish to patch
- Extract the
grouppy.dylib
file from theos tweak ingrouppy
folder, either by compiling it manually, by executing./extract_dylib_here.sh
script, or by downloading a precompiled version from the releases page. - Copy
grouppy.dylib
andCydiaSubstrate.framework
to theFrameworks
folder of the app (inPayload/XXX.app/
) - Add the
Frameworks
folder to the runtime search path of the binary file:
install_name_tool -add_rpath "@executable_path/Frameworks" PATH_TO_BINARY_FILE
- Point the
CydiaSubstrate
path linked ingrouppy.dylib
to theFrameworks
folder:
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @rpath/CydiaSubstrate.framework/CydiaSubstrate Frameworks/grouppy.dylib
- Finally, run the following command to inject the library into the Mach-O binary you wish to patch:
./insert_dylib --inplace --all-yes "@executable_path/grouppy.dylib" PATH_TO_BINARY_FILE
- Done!
If your app contains plugins, you may want to inject Grouppy into them as well, otherwise they won't be able to communicate with the main app because of the different application groups. Another script is included, inject_grouppy.sh
, to demonstrate injecting Grouppy into all Mach-O binaries of a given .ipa
file or .app
folder (i.e. app binary and each plugin in the PlugIns
folder). NOTE: the script will overwrite the original ipa
file or .app
folder.
Usage: ./inject_grouppy.sh PATH_TO_IPA_FILE_OR_APP_FOLDER
.
MIT License. See LICENSE file for further information.