Files
AppsManager27/source/README.md
T

113 lines
4.9 KiB
Markdown

# 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.<your-team-id>.<your-app-id>.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 — <https://github.com/kolbicz/WQFiles> — GPL-3.0-or-later.
- **worse_query** by Taj C (forcequit) — <https://github.com/forcequitOS/worse_query> — 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.