risporce / Supercell-jailbreak

A script to automatically remove the protection in Supercell games
213 stars 13 forks source link

Patched game bundle identifiers match App Store equivalent identifiers #43

Closed imnltsa closed 6 months ago

imnltsa commented 7 months ago

The .ipa files you provide match the same bundle identifier as the original games, which is a problem on semi-tethered jailbreaks such as palera1n. Considering many people have had success with Choicy on the Dopamine jailbreak, I can confidently say this is used mainly by palera1n users.

The lack of access to a computer means that you're not always in a jailbroken state when using palera1n, rendering the games useless as the jailbroken .ipa files overwrote the stock applications that could run jailed. This would work best by either:

  1. Changing the bundle identifier in every .ipa to have a different identifier (ex. concatenating .jb to become, for example, com.supercell.soil.jb
  2. Providing two copies of each .ipa, one with the original bundle identifier for those who are content with overwriting the original game, and another with a different identifier so the games are playable jailed/unjailbroken

You can edit the bundle identifier of an application by extracting the .ipa, opening Info.plist, and changing CFBundleIdentifier to an identifier not already used (ex. com.supercell.soil.jb adding .jb to the original bundle identifier). Considering your patching is done automatically, surely it wouldn't be counterproductive to follow through with one of these solutions programmatically, as you can easily manipulate .ipa files (renamed .zip) and .plist files with code.

risporce commented 7 months ago

I think it's actually better that it has the same package name as original than changing it. First, because every signing tool cannot sign the ipa with the same bundle identifier as an existing app store app, automatically these signing tools change it.

If you use TrollStore like a lot of people, i think it's the best choice, the ipa is always signed even if you get into unjailbroken mode, most people with Palera1n have access to TrollStore. By the way, even in unjailbroken mode, supercell games crash on palera1n (from what i heard , i don't use that jailbreak). For both filza and Trollstore, installing by overwriting actually helps many people keeping their account, example there's many russians that can't connect to supercell id anymore due to sanctions (also in other countries) thanks to Apple Game Center which still work when overwriting with filza or Trollstore but not when re-singing

Last of all, not changing the package name helps a little bit into ban prevention, which is a concern for many people.

So really, unless people install only with filza and often loose their jailbroken mode only with jailbreaks like Palera1n while not being home, i might consider putting 2 links (one modified package name, one not modified) in the future if i see more demands for it. But for now i consider better to keep the original package name

imnltsa commented 7 months ago

Not every palera1n device has access to an untethered TrollStore. Devices that ended with i(Pad)OS 16/17 and are up to date on the latest version do NOT have the actual CoreTrust vulnerability, meaning anything installed does not persist usability on a reboot, rendering the games essentially useless. Since you don't have the original stock games installed, you're unable to play the games until you either:

  1. Rejailbreak your device (you need physical access to a computer, mind you)
  2. Uninstall the jailbroken applications and reinstall them normally from the App Store (now, if you jailbreak again, you won't be able to use the games...)

I'm unsure about how the jailbreak detection experience is on rootful, but it's flawless on rootless considering your root filesystem stays clean, no jailbreak detection whatsoever. This is what you'll most commonly see from palera1n users as rootful is legacy, deprecated, and barely maintained in terms of code and tech support.

Not once have I been warned or banned for modifying only CFBundleIdentifier, and I've been rocking this setup by manually editing Info.plist for about two months now.

In my opinion, outright replacing the links with apps with a modified CFBundleIdentifier would cause more confusion than not, so creating separate .ipa files would be ideal especially if the process is automated (which it can).

Don't worry, since the applications share the same keychain, you're automatically logged in on the duplication application, so there's no real downside to duplicating the apps.

risporce commented 7 months ago

I agree that maybe it can be convenient in some specific cases, but let's take the most popular jailbreaks approach right now

So in the end, it's really the user's decision, just with the original package name in the .ipa, they can already do everything to be able to play even in the case of a reboot WITHOUT spending any time modifying the package name of the game, I assume people that jailbreak their devices know how to use different ipa installation methods, they surely have done that before which is why i don't put a complete guide like i wrote here, things change a lot, there's always a new method for installing .ipas, which is why i don't give directive, i just suggest the tools i use that work well for me for people to use to install the ipas,

Therefore, I'm still not convinced with uploading a second .ipa with different package name, it probably just be more confusing to normal people in term of why? What's the difference? Does one work and the other no for my device? A bunch of questions like these,