6步给 Madeira 注入 increased-memory-limit:GetMoreRam 实战手册,告别游戏被系统秒杀
【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira
你正用 Madeira 在 iPhone 上跑 Windows 游戏,玩着玩着系统就把应用直接杀掉了——这是 iOS 的 Jetsam 内存保护在终止超限额进程。用侧载小工具 GetMoreRam 给 Madeira 的 App ID 注入 increased-memory-limit 权限,全程约 10 分钟。
底层原因:为什么进程总被系统杀掉
Madeira 把整套 Windows 游戏栈塞进单个 iOS 进程里跑:FEX-Emu 负责 x86 指令翻译,Wine 提供 Windows API 层,DXMT 把 DirectX 调用转成 Metal。三层同时常驻,PC 游戏动辄吃 4-8GB 内存。
而 iOS 内置Jetsam内存保护机制:单个应用占用的物理内存一旦超过阈值,内核直接终止进程。免费账号侧载的应用拿到的阈值很低,跑大型游戏被杀几乎是必然的。
项目本身已经把需要的内核权限声明在 app/Madeira/Madeira.entitlements 里,缺的是让它在你设备上真正生效:
| 权限 | 作用 | 免费账号可得性 |
|---|---|---|
increased-memory-limit | 提高 Jetsam 物理内存阈值,防游戏被杀 | 可注入 |
extended-virtual-addressing | 把虚拟地址空间扩展到 ~64GB | 无法官方申请,只能靠注入 |
💡 两者最易混淆:前者是"允许你占更多真实内存",后者是"允许你映射更大的地址空间"。x86-64 游戏两者都需要,缺一个内存模型都不完整。
方案概览:GetMoreRam 到底做了什么
GetMoreRam是一个可侧载的小工具,它通过 Apple 开发者门户直接修改你 Apple ID 下已注册 App ID 的capabilities(能力)列表:
- 你用 Apple ID 登录后,GetMoreRam 调用开发者门户 API,把 "Increased Memory Limit" 能力写入 Madeira 的 App ID
- 能力绑定在 Apple 后台的 App ID 上,是持久配置,重装应用不会丢
- 重装 Madeira 时,侧载工具向服务器拉取新的描述文件(provisioning profile),此时它已包含该能力
- 内核核对应用 entitlements 与新描述文件一致后,正式授予权限
前置条件:无需越狱;免费 Apple ID 即可;Madeira 本身要求 iOS 26+;先用任意侧载工具(SideStore、AltStore 等)装过一次 Madeira。
动手操作:6 步完成权限注入
阶段一:同一 Apple ID 安装两个应用
- 用侧载工具把现有 Madeira 装到手机,记住用的哪个 Apple ID
- 获取 GetMoreRam 的 Entitlement IPA,用同一个侧载工具、同一个 Apple ID装到同一台设备
⚠️ 最高频踩坑点:装 Madeira 和登 GetMoreRam 用了不同 Apple ID,App ID 列表对不上,注入必然失败。
阶段二:定位 App ID 并写入能力
- 打开 GetMoreRam →Settings→ 用侧载 Madeira 时那个 Apple ID 登录
- 进入App IDs页面点刷新,找到 Madeira 的条目(形如
com.madeira.emulator.XXXXXX,基础 ID 见 app/source.json) - 点选Add Increased Memory Limit写入;账号条件允许的话,一并添加Extended Virtual Addressing
⚠️ 如果 extended-virtual-addressing 加不上别卡住——内存阈值是刚需优先项,地址空间能力可以之后再补。
阶段三:重装让能力真正落地
- 卸载 Madeira,用同一个 IPA经侧载工具重装。此时工具拉取的新描述文件才带着新能力,权限即刻生效
⚠️ 跳过这步前 5 步全白做——能力不会自动出现在设备上。另外免费账号描述文件 7 天过期,每周重装时能力会随新描述文件自动继承,无需重跑。
验证权限是否生效:3 种自检方式
方式一:应用内权限徽章。启动 Madeira 后看三个权限徽章:绿色对勾 ✅ 表示已授予,橙色叉号表示未授予。检查逻辑在 app/Madeira/EntitlementChecker.swift,运行时读取当前进程实际拿到的 entitlement 值,不看本地声明。
方式二:日志输出。应用启动会打印权限状态,出自 app/Madeira/ContentView.swift 的logEntitlementStatus():
Checking entitlements... increased-memory-limit: true extended-virtual-addressing: falseincreased-memory-limit: true即成功;为false时日志还会附提示 "Tip: Use GetMoreRam to add increased-memory-limit"。
方式三:诊断日志。启动诊断行含profile-increased-memory=1,证明描述文件本身已携带该能力——若这里是 0 而徽章是绿勾,说明只有本地声明、注入并未落进描述文件。
失败时的排查顺序:徽章橙色叉号或日志false→ 先查 Apple ID 是否一致(步骤 2),再查 App ID 是否选对(步骤 4),最后确认真的重装过(步骤 6)。
常见问题
Q1:徽章一直是橙色叉号?依次核对:GetMoreRam 登录的 Apple ID 是否与侧载一致、App ID 列表是否选中了正确条目、添加能力后是否重新安装了 Madeira。第三点最容易被漏掉。
Q2:权限注入了还是被杀进程?不一定是权限问题。PC 游戏可用 4-8GB+,而 iPhone 总共 6-8GB,还要分给系统和其他 App,内存压力极大时 Jetsam 仍会触发——适当降低游戏分辨率与画质是实际解法。
Q3:免费账号描述文件 7 天过期,要重新注入吗?不用。能力写入的是 App ID 的持久配置,重装时新描述文件会继承它。只有换 Apple ID 才需要重跑流程。
Q4:extended-virtual-addressing 为什么加不上?这个能力官方只面向付费开发者账号,GetMoreRam 在部分账号上可注入但不保证成功。大内存游戏若注入失败,可考虑付费账号或改用 PlumeImpactor 等替代注入工具。
Q5:换 iPhone 要重新注入吗?不用,能力绑定在 Apple ID 的 App ID 上,与设备无关。新设备走一遍常规侧载安装即可。
侧载安装 → GetMoreRam 注入 → 同一 IPA 重装 → 应用内验证
| 参考文件 | 用途 |
|---|---|
| app/Madeira/Madeira.entitlements | 应用权限声明清单 |
| app/source.json | 基础 Bundle ID 与权限配置 |
| app/Madeira/EntitlementChecker.swift | 运行时权限检查逻辑 |
| app/Madeira/ContentView.swift | 权限徽章与启动日志输出 |
| docs/BUILDING.md | 构建与侧载打包流程 |
【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考