✨ Features
| Category |
Features |
| 📰 Feed |
Remove Ads & Sponsored Posts (feed, video, stories & Marketplace) Hide "People you may know", Group & Page suggestions Remove Reels carousel, Threads promo & Stories (tray + single cards) |
| ✅ Confirmations |
Opt-in prompts that catch accidental taps — a prompt appears before the action, Cancel stops it: Like (feed & Reels), Comment, Share, Post, Friend request, Follow / Join |
| 🎬 Reels |
Hide overlay (cinema mode) — one tap strips likes, comments, share & caption and fades the bottom tab bar, leaving just the clean video Save Reels to Photos |
| 📖 Stories |
Watch stories anonymously (Ghost Mode) Disable auto-advance Hide Story Suggestions Save Stories (video & photo) to Photos |
| 📞 Calls & Privacy |
Incoming Call Blocker — silently block incoming VoIP / Messenger calls inside Facebook without disturbing your app experience |
| 🧭 Links |
Open external links in your default browser instead of the in-app browser Open in Facebook Safari extension — reopens facebook.com links from Safari in the app, routing directly to the exact Reel / post / photo / story destination (including FaceWeb deep links) |
| 🎨 Appearance |
OLED Dark Mode (true black — preserves post dividers, rounded avatars & status bar legibility) Custom App-Icon Picker with multiple alternate icons Custom Fonts — replace the app's text font with a bundled or imported .ttf/.otf, with an adjustable size |
| 🔔 Updates |
Built-in update checker — notified in-app when a new version ships, with the changelog and one-tap download from GitHub or Telegram Manual re-check from Settings → Check for Update |
💡 Dedicated Settings Page: Access the dedicated full-screen tweak settings anytime by long-pressing any tab bar item (classic or modern liquid-glass bar), long-pressing the “facebook” wordmark, or via the native Facebook settings entry.
🚀 Installation
Download the pre-built .ipa file from the Releases section and install it on your device using Feather, Ksing, AltStore, TrollStore, or any other sideloading tool of your choice.
⚡ Build your own IPA with GitHub Actions
No Mac required. The Build Facebook Plus (.ipa) workflow builds the tweak from
source and injects it into a decrypted Facebook IPA that you provide, then
publishes the result as a draft release on your fork.
[!IMPORTANT]
You must supply your own decrypted Facebook .ipa. We cannot distribute one
for legal reasons.
First time only:
- Fork this repository (top-right Fork button).
- On your fork, open the Actions tab and click I understand my workflows, go ahead and enable them.
To build:
- If your fork is behind, click Sync fork → Update branch.
- Go to Actions → Build Facebook Plus (.ipa).
- Click Run workflow on the right.
- Fill in the inputs:
- Direct download URL to the decrypted Facebook IPA — upload your decrypted
.ipa to filebin.net and paste the direct
download link to the file. filebin is the recommended host and the one this
workflow has been tested with. A link to a web page instead of the file
itself will fail validation.
- Bundle identifier (optional) — leave blank to keep
com.facebook.Facebook.
Set a custom id to install alongside the stock app. The tweak is
bundle-id-agnostic, so it activates under whatever id you choose — no other
change needed.
- Click Run workflow and wait for it to finish (≈10–15 min).
- Download the IPA from your fork’s Releases section. The release is created as
a draft — open it, review, and publish. (If you don’t see Releases, append
/releases to your fork’s URL, e.g. github.com/<you>/Facebook-Plus/releases.)
The workflow reuses build.sh, so your IPA gets the exact same
injection as a local build — the tweak, the custom app-icons, and the bundled
Open in Facebook Safari extension, all fakesigned for sideloading.
🛠️ Building from Source & Automated Injection
This project requires Theos to build. Ensure you have it installed and configured.
-
Clone the repository (including submodules):
git clone --recursive https://github.com/SHAJON-404/Facebook-Plus.git
cd Facebook-Plus
-
Set up Python Environment:
Create a virtual environment and install the required tools:
python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt && pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip && pipx inject --force cyan lief
-
Automated Pipeline (build.sh):
- Run
./build.sh to build every packaging scheme, or narrow it with the
SCHEMES variable (e.g. SCHEMES="rootless rootfull" ./build.sh).
- To also produce an injected
.ipa, place a decrypted Facebook .ipa at
test/com.facebook.Facebook.ipa before running.
What build.sh does:
-
Builds one versioned .deb per scheme into packages/:
| Scheme |
Output |
rootless |
Facebook-Plus-v<version>-rootless.deb |
rootfull |
Facebook-Plus-v<version>-rootfull.deb |
-
If a decrypted .ipa is present, injects the rootless build into it with
cyan and writes packages/Facebook-Plus-v<facebook-version>-rootless.ipa.
The same cyan run also:
- builds every Safari web extension under
OpenInFacebookSafariExtension/
from source and injects the resulting .appex into the app’s PlugIns/;
- merges any custom app icons (
fbplus_*.png in resources/logo/) into
CFBundleAlternateIcons via scripts/icon_plist.py, preserving
Facebook’s native icons;
- fakesigns every injected binary for sideloading.
Code Editor Setup
Theos does not emit a compilation database by default, causing editors to fail at finding the iOS SDK. Generate one with bear:
make compile-commands
This writes a per-machine .clangd (with your theos path and SDK baked in) and a compile_commands.json. The database is produced with bear parse-sh from theos’s own dry-run (make -n) rather than by intercepting the build, because macOS strips the interception mechanism (DYLD_INSERT_LIBRARIES) from the Xcode toolchain’s Apple-signed clang, leaving a plain bear -- make empty. Re-run it after adding new source files. Note: Logos .xm files cannot be fully parsed by clang, so .clangd suppresses false diagnostics while ensuring they compile correctly.
🏗️ Project Architecture
├── Localizations # Translations (ar, bn, de, es, fr, hi, id, it, ja, ko, pl, pt-BR, ru, tr, vi, zh-Hans, zh-Hant)
├── OpenInFacebookSafariExtension # Safari web extension built into PlugIns ("Open in Facebook")
├── resources # Assets (App icons, SVGs, and asset bundles)
│ ├── bundle # Compiled UI images and tweak resources
│ ├── fonts # Bundled custom fonts offered by the Fonts picker
│ ├── logo # Custom app-icons drop folder for build.sh injection
│ └── svg # Source vector graphics
├── scripts # Python utility scripts (e.g., icon merging, svg rendering)
├── src # Tweak source code
│ ├── Core # Constructor, preferences, and resources
│ ├── Features # All hooks & feature implementations:
│ │ ├── Ads # Feed, video, story & Marketplace ad removal (feed chokepoint + RN/GraphQL)
│ │ ├── AppChrome # UI settings gesture (TabBar, Wordmark long-press & Settings Button)
│ │ ├── AppIcons # Custom app-icon picker logic
│ │ ├── Calls # Incoming Call Blocker (PushKit & CallKit interceptors)
│ │ ├── Confirmations # Opt-in commit-level confirmations (comment, share, post, friend, follow)
│ │ ├── Downloads # Reel & Story media downloaders (save to Photos)
│ │ ├── Feed # Feed-related hooks (suggestions, Reels, Stories removal)
│ │ ├── Fonts # Custom UI font replacement (Core Text registration + picker)
│ │ ├── Language # UI language override hooks
│ │ ├── LikeConfirmation # Confirm likes via the ComponentKit forwarder (feed & Reels)
│ │ ├── Links # Open external links in default browser & inbound link bridge
│ │ ├── OLED # True black dark mode implementation
│ │ ├── Onboarding # Welcome screen controller
│ │ ├── Stories # Story-related hooks (Ghost mode, auto-advance block)
│ │ └── Update # In-app update checker + update screen (GitHub Releases)
│ ├── PluginsInject # Sideload compatibility layer (Keychain / App-Group / CloudKit)
│ ├── Settings # Dedicated full-screen Facebook Plus settings UI
│ └── UI # Shared UI components
│ ├── Sheet # Detent & Presentation controllers
│ └── Toast # HUD / Progress pills
└── test # Input IPA directory and test scripts
Resilient Hooking: Each hook dynamically verifies that its target class and selector exist before installation. If a Facebook update changes a specific class, only that single feature degrades safely without crashing the entire tweak. The settings gesture, for example, hooks both the classic tab bar and the new iOS 26 liquid-glass bars so long-press keeps working across iOS versions.
🗺️ Roadmap & Credits
Planned features and fixes, together with the project’s provenance, third-party
attributions, and credits, are documented in ROADMAP_AND_CREDITS.md.
Contributions and suggestions are welcome — open an issue or a pull request.
🔒 Security & Disclaimer
Please read SECURITY.md for our security policy, account safety guidelines, and disclaimer of warranty/liability. Use Facebook Plus at your own risk.
⚖️ License
This project is open-source and distributed under the terms of the GNU General Public License v3.0 (GPL-3.0).
Please refer to the LICENSE file for more details.
Copyright © 2026 S. SHAJON
评论