diff --git a/BusinessJB/.gitignore b/BusinessJB/.gitignore new file mode 100644 index 0000000..faf8687 --- /dev/null +++ b/BusinessJB/.gitignore @@ -0,0 +1,3 @@ +.theos/ +packages/ +.DS_Store diff --git a/BusinessJB/BusinessJB.plist b/BusinessJB/BusinessJB.plist new file mode 100644 index 0000000..4225580 --- /dev/null +++ b/BusinessJB/BusinessJB.plist @@ -0,0 +1,7 @@ +{ + Filter = { + Bundles = ( + "fr.labanquepostale.pmo.mescomptes", + ); + }; +} \ No newline at end of file diff --git a/BusinessJB/Makefile b/BusinessJB/Makefile new file mode 100644 index 0000000..1d5a3d0 --- /dev/null +++ b/BusinessJB/Makefile @@ -0,0 +1,13 @@ +TARGET = iphone:latest:14.0 +INSTALL_TARGET_PROCESSES = Business +ARCHS = arm64 arm64e + +include $(THEOS)/makefiles/common.mk + +TWEAK_NAME = BusinessJB + +BusinessJB_FILES = Tweak.x +BusinessJB_CFLAGS = -fobjc-arc +BusinessJB_FRAMEWORKS = Foundation + +include $(THEOS_MAKE_PATH)/tweak.mk diff --git a/BusinessJB/Tweak.x b/BusinessJB/Tweak.x new file mode 100644 index 0000000..09ebbdc --- /dev/null +++ b/BusinessJB/Tweak.x @@ -0,0 +1,8 @@ +#import +#import + +%hook JailbreakDetection +- (bool)jailbroken { + return FALSE; +} +%end \ No newline at end of file diff --git a/BusinessJB/control b/BusinessJB/control new file mode 100644 index 0000000..34df82e --- /dev/null +++ b/BusinessJB/control @@ -0,0 +1,9 @@ +Package: xyz.nohamr.businessjb +Name: BusinessJB +Version: 1.0.0 +Architecture: iphoneos-arm +Description: Bypass the jailbreak detection of the Business app. +Maintainer: NohamR +Author: NohamR +Section: Tweaks +Depends: mobilesubstrate (>= 0.9.5000) diff --git a/BusinessJB/index.md b/BusinessJB/index.md new file mode 100644 index 0000000..e3b2950 --- /dev/null +++ b/BusinessJB/index.md @@ -0,0 +1,26 @@ +# BusinessJB + +Disables jailbreak detection in La Banque Postale by forcing `JailbreakDetection\n- (bool)jailbroken` to return `FALSE`. + +- **App**: [Business – La Banque Postale](https://apps.apple.com/fr/app/business-la-banque-postale/id1438089314) +- **Latest version**: 2.3.000 +- **Tested on**: iOS 15.8.6 + +## Build + +```sh +make clean && make package THEOS_PACKAGE_SCHEME=rootless DEBUG=0 +``` + +## Inject + +```sh +cyan -i com.labanquepostale.business-2.3.000.ipa \ + -o com.labanquepostale.business-2.3.000_patched.ipa \ + -f xyz.nohamr.businessjb_1.0.0-1_iphoneos-arm64.deb \ + -u +``` + +## Screenshots + +![../docs/screens/BusinessJB/jailbreak.png](../docs/screens/BusinessJB/jailbreak.png) \ No newline at end of file diff --git a/README.md b/README.md index cf7a74f..3e3d0c4 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ iOS tweaks built with [Theos](https://theos.dev), injected into IPAs via [cyan]( | [ServerCatPremium](ServerCatPremium/index.md) | ServerCat 1.30.0 | iOS 17+ | | [ServerCatPremium (legacy)](ServerCatPremium_/index.md) | ServerCat 1.6.4 | iOS 15 | | [TextasticPro](TextasticPro/index.md) | Textastic 10.9.2 | iOS 18+ | +| [BusinessJB](BusinessJB/index.md) | Business 2.3.000 | iOS 15 | ## Build diff --git a/docs/screens/BusinessJB/jailbreak.png b/docs/screens/BusinessJB/jailbreak.png new file mode 100644 index 0000000..ca621ea Binary files /dev/null and b/docs/screens/BusinessJB/jailbreak.png differ diff --git a/scripts/patch_and_serve.sh b/scripts/patch_and_serve.sh new file mode 100755 index 0000000..7792111 --- /dev/null +++ b/scripts/patch_and_serve.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +set -e + +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + exit 1 +fi + +IPA="" +DEB="" + +for arg in "$@"; do + case "$arg" in + *.ipa) + IPA="$arg" + ;; + *.deb) + DEB="$arg" + ;; + *) + echo "Unknown file type: $arg" + exit 1 + ;; + esac +done + +if [ -z "$IPA" ] || [ -z "$DEB" ]; then + echo "You must provide one .ipa and one .deb file." + exit 1 +fi + +# ---- Prepare output folder ---- +OUT_DIR="/tmp/ipa_patched" +mkdir -p "$OUT_DIR" + +IPA_NAME=$(basename "$IPA") +OUTPUT_IPA="$OUT_DIR/$IPA_NAME" + +echo "[+] Patching IPA with cyan..." +cyan -i "$IPA" -o "$OUTPUT_IPA" -f "$DEB" -u --overwrite +echo "[+] Patch complete." + +LOCAL_IP=$(ipconfig getifaddr en0 2>/dev/null) + +if [ -z "$LOCAL_IP" ]; then + LOCAL_IP=$(hostname -I 2>/dev/null | awk '{print $1}') +fi + +if [ -z "$LOCAL_IP" ]; then + echo "Could not detect local IP automatically." + LOCAL_IP="YOUR_IP" +fi + +DOWNLOAD_LINK="http://$LOCAL_IP:8000/$IPA_NAME" + +cd "$OUT_DIR" + +echo "" +echo "==========================================" +echo "Download link:" +echo "$DOWNLOAD_LINK" +echo "==========================================" +echo "" +echo -n "$DOWNLOAD_LINK" | pbcopy +echo "[+] Download link copied to clipboard." +echo "[+] Starting HTTP server..." +echo "Press Ctrl+C to stop." +echo "" + +python3 -m http.server 8000 \ No newline at end of file