# AppsManager iOS 27 Source **中文:** 这是 **Apps Manager** 的 iOS 27 非官方分支的源码部分。应用名仍为 **AppsManager**,仓库名为 **AppsManager27**。 **English:** This is the source portion of the unofficial iOS 27 fork of **Apps Manager**. The app name remains **AppsManager**; the repository is named **AppsManager27**. > 本目录只包含 iOS 27 兼容 Hook、内置文件浏览器集成和构建脚本。原版 Apps Manager 的应用本体源码是闭源的,不在此仓库中;构建时需要你自己提供原始 IPA 中解包出的 `ADManager.app`,以及签名证书和描述文件。 > This directory contains only the iOS 27 compatibility hook, the built-in file browser integration, and build scripts. The original Apps Manager app source is proprietary and is not included. You must provide the extracted `ADManager.app` from the original IPA, plus your own signing certificate and provisioning profile. ## 目录结构 / Layout ```text source/ ├── hook/src/ │ ├── WBHook.m # AppsManager iOS 27 hook and feature fixes │ ├── main.m # WQ Files browser UI, modified for AppsManager │ └── WQ*.m / WQ*.h # WQ Files file browser, editors, media, ZIP, etc. ├── build_dylib.sh # Compile AppsManagerHook.dylib ├── build_app.sh # Inject the dylib, sign the app bundle ├── LICENSE # GPL-3.0 (WQ Files-derived source) └── README.md ``` ## 主要修改 / Main changes - Hook `LSApplicationWorkspace` and `LSApplicationProxy` to expose app containers. - Parse the LaunchServices CSStore database for bundle/container/name mapping. - Grant per-container access through `worse_query`. - Real app data sizes, pull-to-refresh full size scan. - Backup / restore with fallback for the keychain nil-array failure. - Wipe user data using `worse_query`-backed recursive deletion. - Recalculate the affected app size after backup, restore and wipe. - Detail page version/path/date/app-group support. - Replace the `filza://` prompt with the built-in WQ Files browser. - Present media through the native `AVPlayerViewController`. ## 构建要求 / Build requirements - macOS with Xcode command line tools and an iPhoneOS SDK. - `insert_dylib` / `idylib` available in `PATH`, or set `INSERT_DYLIB`. - An original `ADManager.app` extracted from the IPA you are allowed to modify. - A code signing identity and a `.mobileprovision` for your target device(s). - An entitlements plist that includes the App Group used by `worse_query`. ## 构建 / Build ### 1. Compile the dylib ```sh cd source ./build_dylib.sh ``` Output: `source/hook/AppsManagerHook.dylib` ### 2. Build and sign the app ```sh export APP_SOURCE="/path/to/Payload/ADManager.app" export PROVISION="/path/to/your.mobileprovision" export SIGN_IDENTITY="Apple Distribution: Your Name (TEAMID)" export ENTITLEMENTS="/path/to/entitlements.plist" export KEYCHAIN="/path/to/signing.keychain" # optional export INSERT_DYLIB="/path/to/idylib" # optional if already in PATH ./build_app.sh ``` Output: `source/out/AppsManager.app` The script: 1. Copies the original app bundle. 2. Injects `AppsManagerHook.dylib` into `ADManager`. 3. Sets `CFBundleIdentifier` to `com.jbjf.appsmanager` by default. 4. Embeds your provisioning profile. 5. Signs the dylib and the app with your identity. You can override `BUNDLE_ID` and `OUT_DIR` if needed. ## 签名与权限 / Signing and entitlements The published IPA is signed for a personal certificate and is not installable on arbitrary devices. Re-sign with your own certificate. For `worse_query` and App Group access, the app needs the relevant entitlements from your provisioning profile, including an App Group. The original build used an App Group such as: ```text group...01 ``` The exact value must match your own profile. Do not reuse someone else's certificate, profile, or App Group. ## 第三方代码 / Third-party code This source includes and links code from: - **WQ Files** by kolbicz — — GPL-3.0-or-later. - **worse_query** by Taj C (forcequit) — — GPL-3.0-or-later. The WQ Files-derived files retain their copyright headers. See `LICENSE` for the full GPL-3.0 text. The AppsManager hook source in this directory is distributed under the same GPL-3.0-or-later terms to the extent required by the combined work. ## 测试 / Tested - iPhone 18 Pro Max (iPhone19,7) - iOS 27.0.1 (24A446) ## 说明 / Notes - Activation remains trial; no activation bypass is included. - Keychain data cannot be wiped due to sandbox/permission restrictions. - Some third-party bundles cannot be read; version/icon may be `null` or a placeholder. - Use this source only for personal testing and data migration. Respect the original apps' licenses and applicable laws.