113 lines
4.9 KiB
Markdown
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.
|