FilzaSlop README

The project's README from github.com/0xjohnnydev/FilzaSlop. As one markdown file: README.md.

FilzaSlop

FilzaJailedDS fork with:

Not every feature currently works on iOS 18 or iOS 26. Open an issue if you find a problem.

The unsigned IPA is available on the Releases page.

Jailbreak-detection boundary

Release v1.1.0 and later do not register filza:// or another URL scheme. The release build removes CFBundleURLTypes and fails if that key remains. For these versions, there is no separate standard build. Use the IPA from this repository's Releases page.

This change prevents an app from finding FilzaSlop through a canOpenURL: check. It cannot clear a result that another app already saved. A canOpenURL: failure in a system log confirms only that the URL-scheme check returned a negative result.

FilzaSlop does not install a daemon or inject code into other processes. Its MobileContainerManager leases and sandbox extensions belong to the Filza process. The generated links and reports are stored in Filza's data container. Deleting the app removes that container. Files that a user edits through a live container link, including Wallpaper Lab changes, are real target files and are not reverted by uninstalling FilzaSlop.

The bundled Filza app can store its own remote-service credentials in its Keychain access group. iOS can retain Keychain items after an app is deleted, although Apple documents this as an implementation detail. Keychain access groups isolate these items from unrelated apps. The injected FilzaSlop code does not use Keychain item APIs, and it cannot read or delete a banking app's saved state. See Apple's notes about uninstall behavior and Keychain access groups.

If a banking app still reports a jailbreak after its URL-scheme check fails:

  1. Confirm that FilzaSlop was deleted, not offloaded or removed only from the Home Screen. Also remove any older copy or LiveContainer guest.
  2. Ask the banking app's support team to reset any device or account risk state. Reinstalling the banking app might not clear its Keychain or server state.
  3. For a reproducible report, start with a device that the banking app accepts. Record the result before and after installing the current scheme-free IPA.

Sandbox deny messages for jailbreak paths, kern.bootargs, or fork show that the probe was blocked. They do not show that the requested file or capability exists.

Update checks

FilzaSlop checks this repository's latest published, non-prerelease GitHub release when each installed version first launches. It checks again after 24 hours when the app next becomes active. The app shows one alert for each newer release and can open its release page. It does not download or install updates automatically.

The checker stores only the last check date, installed version, and last alerted release tag in the app's local preferences. Its request contains no device identifier or Filza content.

Paths

/private/var/mobile/Containers/Data/Application/
/private/var/mobile/Containers/Shared/AppGroup/
/private/var/mobile/Containers/Data/PluginKitPlugin/
/private/var/mobile/Containers/Data/VPNPlugin/
/private/var/mobile/Containers/Data/InternalDaemon/
/private/var/mobile/Containers/Data/System/
/private/var/mobile/Containers/Shared/SystemGroup/
/private/var/mobile/Containers/Data/Protected/
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.installcoordinationd/Library/InstallCoordination/

Signing

Keep this bundle and CodeDirectory identifier:

com.apple.mobile.MobileHouseArrest

Changing it disables the MobileHouseArrest path.

Free Apple Accounts

A free Apple Account, also called a Personal Team, cannot currently sign the standalone IPA while keeping the identity required by the MobileHouseArrest path.

The app needs the same value for both identifiers:

CFBundleIdentifier:       com.apple.mobile.MobileHouseArrest
CodeDirectory identifier: com.apple.mobile.MobileHouseArrest

Free-account sideloading tools normally register a new App ID. Apple rejects the identifier above with error 9400 or 9401. Allowing the signer to create a unique bundle ID can make the app install, but it disables MobileHouseArrest container access. Giving the app a normal bundle ID while keeping the MobileHouseArrest CodeDirectory identifier also does not work. iOS rejects that combination with MismatchedBundleIDSigningIdentifier before launch.

Do not use automatic bundle ID if you expect standalone MobileHouseArrest access. A successful install with a changed identifier is not a working sandbox escape.

Paid certificate providers

Some users buy device-bound certificate and provisioning files from providers such as ArcticSign. These providers are independent of this project, and Apple can revoke their certificates. For more reputable and current sources, ask in the r/Jailbreak Discord or check r/sideloaded before paying.

Experimental LiveContainer compatibility

Free-account users can try the unsigned IPA as a guest in LiveContainer:

[!WARNING] LiveContainer compatibility is experimental. This mode does not provide MobileHouseArrest access. FilzaSlop cannot browse or edit containers for App Store apps or other apps installed by iOS. It can access only guest apps and data stored inside LiveContainer. Use this mode only to manage LiveContainer content.

  1. Install LiveContainer with SideStore or AltStore using its normal automatic bundle ID.
  2. Download the unsigned FilzaSlop IPA from the Releases page.
  3. Open LiveContainer, tap the plus button, and select the IPA.
  4. On iOS 26 or later, configure LiveContainer's JIT-less mode by importing the certificate from SideStore or AltStore.
  5. Refresh LiveContainer before its seven-day Personal Team profile expires.

Apple limits a Personal Team to three installed apps per device, ten registered App IDs, and seven-day provisioning profiles. LiveContainer uses one installed app and one App ID for its guest apps. See Apple's developer account overview, the Sideloadly FAQ, and the LiveContainer documentation for current setup and refresh details.

iOS 26 app discovery

iOS 26 can hide third-party apps from the normal ContainerManager and LaunchServices enumeration APIs. FilzaSlop now reads the device-local LaunchServices store through the accessible com.apple.lsd service container. It extracts bundle identifier candidates and confirms each candidate with a direct class-2 ContainerManager lookup. The release IPA does not need a device catalog.

MCMIdentifiers.plist remains an optional manual fallback. You can generate one with scripts/refresh_device_catalog.sh and pass it as the third release build argument.

Build

export THEOS="$HOME/theos"
make clean
make package FINALPACKAGE=1

Inject FilzaApplySandboxExt.dylib into Filza and sign the app.

To build the unsigned release IPA:

./scripts/build_release_ipa.sh \
  FilzaSlop-v1.0.0-unsigned.ipa \
  FilzaSlop-v1.0.1-unsigned.ipa

Build from the release tag so the script can embed that tag for update comparison. For an untagged test build, set FILZASLOP_VERSION explicitly.

PoCs

Credits

FilzaSlop (0xjohnnydev/FilzaSlop)

Searching Database…

这是什么?FilzaSlop 是 FilzaJailedDS 的一个 fork,它在 iOS 18、iOS 26 和 iOS 27 beta 1-4 上为 Filza 文件管理器添加了沙盒逃逸漏洞利用和应用容器访问能力,并附带一个 PosterBoard Wallpaper Lab。
这是越狱,还是我侧载的一个应用?它本身不是越狱——它是一个修改版的 Filza 文件管理器应用,以未签名 IPA 的形式分发,利用一个沙盒漏洞获得 MobileHouseArrest 级别的容器访问权限。
我需要付费开发者证书来给它签名吗?免费 Apple 账户(Personal Team)无法在保留 MobileHouseArrest 所需标识符的情况下给独立 IPA 签名——Apple 会以错误 9400 或 9401 拒绝——所以你需要绑定设备的付费证书,或者退而求其次,把它作为未签名的 guest 在 LiveContainer 里运行。
现在在 iOS 18 和 iOS 26 上所有功能都能用吗?不能,目前并非所有功能都能在 iOS 18 或 iOS 26 上工作,而且实验性的 LiveContainer 回退模式会完全放弃 MobileHouseArrest 访问,只让你浏览 LiveContainer 内存储的 guest 应用和数据。
它能躲开银行应用这类检测越狱的应用吗?从 v1.1.0 开始,它不再注册 filza:// URL scheme,让 canOpenURL: 检查落空,但这无法抹掉应用已经保存在服务器端的越狱标记,而且这个应用不安装守护进程,也不向其他进程注入代码。
除了文件管理器漏洞利用,还附带了什么?一个 PosterBoard Wallpaper Lab,外加几个概念验证演示:MobileHouseArrest、Geod MCM、InstallCoordination,以及一个 CFPrefs 零文件漏洞利用。
删除这个应用能撤销它做过的改动吗?不能——通过活动容器链接编辑的文件(包括 Wallpaper Lab 的编辑)都是真实的目标文件,即使 FilzaSlop 本身被删除,这些改动仍然保留。
在 iOS 26 上,如果应用被隐藏,它是怎么找到它们的?它通过 com.apple.lsd 服务读取设备本地的 LaunchServices 存储来收集 bundle 标识符候选,再用直接的 ContainerManager 查询逐一确认,因为 iOS 26 能让第三方应用对常规枚举 API 隐身。
这个应用会回传信息或收集设备数据吗?它的更新检查器只会访问 GitHub 获取最新发布版本,并在本地保存上次检查日期、已安装版本和上次提醒过的标签——它的请求不包含任何设备标识符或 Filza 内容。
Size
1.2 MB
Stars
451
Age
2mo
Commits · 90 Days