Skip to content

schlub51/IPARanger

 
 

Repository files navigation

IPARanger Experimental Fork

This is an unofficial experimental fork of 0xkuj/IPARanger.

I made these changes mostly for personal use and experimentation. If they help someone else, great. If not, no worries. This is not intended to replace the original project or take credit for it.

The original app downloads encrypted IPA files from the App Store using an Apple ID account, through majd/ipatool.

Compatibility / support disclaimer

This fork was tested on my own devices and setup only. I used it mainly on a rootless jailbreak environment (Dopamine, iOS 16.4), with limited rootful testing on iOS 13.5. I cannot guarantee that it will behave the same way on other iOS versions, other jailbreaks, or rootful setups.

Some parts may fail, behave differently, or crash entirely depending on your environment. This is shared as an experimental fork, not as a polished or officially supported release.

If it works for you, nice. If it does not, please assume rough edges are expected.

Downloads

Prebuilt experimental .deb packages are available under GitHub Releases.

Pick the package that matches your jailbreak setup:

  • Rootless / Dopamine: IPARanger_2.3.0+exp1_rootless-dopamine_downloads-folder-spacing.deb
  • Rootful / iOS 13-compatible: IPARanger_2.3.0+exp1_rootful-ios13compat_downloads-folder-spacing.deb

What changed in this fork

This fork is versioned as 2.3.0+exp1: it is based on IPARanger 2.3.0, with experimental changes on top.

  • Added multi-account support.
  • Isolated each account's ipatool keychain service to avoid login/token conflicts.
  • Patched the embedded ipatool auth/keychain behavior used by this fork.
  • Added version selection before downloading an app.
  • Added release dates in the version picker when available.
  • Added a fallback to download the latest version when version history is unavailable.
  • Added minimum iOS version metadata for downloaded IPAs.
  • Added account attribution for downloaded IPAs.
  • Made downloads less blocking with an in-app download banner.
  • Adjusted downloaded IPA metadata text so it fits better on small screens.
  • Added a login-screen shortcut to open the local downloads folder even when Apple ID auth is broken.
  • Tested both rootless and rootful builds during development.
  • Kept the existing install/share/download flow as close to the original app as possible.

Screenshots

Search result download action Version picker with release dates Non-blocking download progress banner

Downloads page with account and iOS metadata Multi-account switcher

Notes on downloaded IPAs

Downloaded IPAs are still encrypted when they come from the App Store. TrollStore cannot install encrypted main binaries directly; that is separate from IPARanger's download flow.

ipatool patch

This fork embeds a patched ipatool binary.

The embedded binary is a custom patched iOS build. It may report itself as a development build; the important part for this fork is the patch behavior, not the upstream CLI version string.

The patch is included in patches/ipatool-keychain-service.patch. In short:

  • ipatool can read IPATOOL_KEYCHAIN_SERVICE from the environment.
  • IPARanger sets a different keychain service per account.
  • This avoids multiple Apple ID accounts fighting over the same system keychain slot.
  • keychain.Set removes the old item before saving a new one, which avoids an iOS keychain update failure seen during testing.
  • The goal is to reduce the recurring auth/login failures that can surface in IPARanger as JSON parsing errors when Apple or ipatool behavior changes.

Build notes

This project uses Theos.

Rootless build:

THEOS_PACKAGE_SCHEME=rootless make package FINALPACKAGE=1

Rootful build:

make package FINALPACKAGE=1

Install the package that matches your jailbreak environment. A rootless package is not expected to work correctly on a rootful jailbreak, and a rootful package is not expected to work correctly on a rootless jailbreak.

Depending on your local Xcode/iOS SDK setup, you may need to adjust the TARGET line in the Makefile. For older rootful devices, the app has been built with TARGET=iphone:clang:latest:13.0 during testing.

Generated .deb packages are intentionally not tracked in this source tree. If I publish builds, they should live under GitHub Releases instead.

Original project information

From the original README:

  • IPARanger is a GUI based application for ipatool.
  • It was made for jailbroken devices.
  • Original support notes mentioned jailbroken devices running iOS 13.4 to iOS 16, excluding Xina15.

Credits

License

This project keeps the original MIT license from IPARanger.

About

Experimental IPARanger fork with multi-account support, version selection, and quality-of-life tweaks.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Objective-C 100.0%