☰
Madeira 内存权限配置完全指南:免费给 iPhone 注入 increased-memory-limit 防止游戏被杀
2026/10/22 2:06:18 网站建设 项目流程

Madeira 内存权限配置完全指南:免费给 iPhone 注入 increased-memory-limit 防止游戏被杀

【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira

Madeira 是一个基于 FEX-Emu + Wine + DXMT 的技术方案,让 x86-64 Windows PC 游戏直接运行在未经越狱的 iPhone 上。本文解决的是它落地时最实际的一道坎:iOS 的 Jetsam 机制会在内存吃紧时直接杀掉吃内存的进程,而 Madeira 恰好是个内存大户。跟着本文操作,你可以在 10 分钟内用免费 Apple ID 为它配上increased-memory-limit内核权限,并学会三种验证手段,从此不再担心一局游戏打到一半突然闪退。

先搞懂:iPhone 为什么会杀掉 PC 游戏

iOS 里有一套叫Jetsam的内存保护策略:单个应用占用的物理内存一旦越过阈值,系统不协商、不提示,直接终止进程。普通 App 的阈值并不高,但 Madeira 需要在手机上同时撑起三层开销——

  • FEX-Emu 负责把 x86/x86-64 指令实时翻译成 ARM 指令
  • Wine 把 Win32 API 调用翻译成 iOS 系统调用
  • DXMT 把 DirectX 调用实时转成 Metal 绘制

一个像样的 PC 游戏动辄吃 4GB 以上内存,裸奔状态下的 Madeira 离被杀只差一次大型地图加载。解法不是优化,而是申请内核级权限把阈值抬上去。

Madeira 源码里声明了两个与内存相关的内核 entitlement,它们常被混为一谈,但含义完全不同:

Entitlement 名称管什么免费账号能否拿到
com.apple.developer.kernel.increased-memory-limit提高 Jetsam 判定的物理内存上限——允许你真实占用更多内存可以,本文主角
com.apple.developer.kernel.extended-virtual-addressing扩大虚拟地址空间——按 app/Madeira/EntitlementChecker.swift 中的说明,未授予时用户态地址图止于 63GB,授予后扩展到 512GB不行,免费账号无法配置,需要付费开发者账号

一句话区分:前者决定系统肯分给你多少真内存,后者决定进程能映射多大的地址范围。跑中小体量的游戏,把前者搞到位就够用了。

项目自带的权限声明文件是 app/Madeira/Madeira.entitlements,其中increased-memory-limit已经写死为true。但"声明了"不等于"系统真给了"——最终是否生效,取决于你安装时所用描述文件(provisioning profile)里有没有这一项。这就是为什么侧载之后往往还需要再做一步注入,下面展开。

GetMoreRam 注入:原理与操作

它到底改了什么

GetMoreRam 是一个同样走侧载渠道安装的小工具。它做的事情很单一:用你的 Apple ID 调 Apple 开发者门户的接口,把 "Increased Memory Limit" 能力写进你名下已注册 App ID 的配置里。

关键在于这条链路的顺序:

  1. 侧载工具(如 SideStore、AltStore)首次安装 App 时,会在你的 Apple 开发者账号下自动注册一个 App ID;
  2. GetMoreRam 修改的正是这个 App ID 的能力列表——改的是门户里的持久配置,不是手机上的 App;
  3. 下次你重新安装时,侧载工具会向 Apple 服务器申请新的描述文件,新文件里自然带上了这个能力;
  4. App 二进制的 entitlements 与新描述文件匹配,内核据此正式放行。

所以"注入"是一次性动作,真正让权限落地的是重装那一刻拉取的新描述文件。

操作清单(全程约 10 分钟)

Madeira 应用内的 Setup Guide(app/Madeira/ContentView.swift 中的SetupGuideView)给出的官方顺序就是:装 Madeira → 装 GetMoreRam 注入 → 用同一 IPA 重装。具体拆开:

  • 1. 侧载安装 Madeira。用 SideStore、AltStore 等工具装好,并记下用的是哪个 Apple ID——后续每一步都绑死这个账号。
  • 2. 安装 GetMoreRam。获取它的 Entitlement IPA,用同一个侧载工具、同一个 Apple ID、同一台设备装好。
  • 3. 在 GetMoreRam 中登录。进入 Settings,登录侧载 Madeira 时用的那个 Apple ID。
  • 4. 找到 Madeira 的 App ID。打开 App IDs 页面,点 Refresh 刷新列表,找到 Madeira 对应的条目。它的 bundle ID 是com.madeira.emulator,可在 app/source.json 中核对。
  • 5. 添加能力。选中该 App ID,添加Increased Memory Limit;账号条件允许的话,可顺带尝试Extended Virtual Addressing(免费账号大概率失败,属正常现象)。
  • 6. 卸载并重装 Madeira。用同一个 IPA走一遍侧载。重装是权限生效的扳机,跳过这步前面全白做。

⚠️ 最常见的失败点:第 3 步登录了和侧载不同的 Apple ID。App ID 是挂在账号名下的,账号对不上,列表里就找不到 Madeira,注入无从谈起。

🔁 免费账号的描述文件有效期是 7 天。每周常规重装时,新描述文件会自动继承 App ID 上的能力配置,一般无需重新注入;只有当你换了 Apple ID 或换了设备,才需要从头再走一遍上面的清单。

权限是否生效:三种验证方式

Madeira 内置了运行时自检,不需要借助任何第三方工具。

方式一:看主界面徽章。启动后界面上有三个权限徽章,绿色对勾表示已授予,橙色叉号表示未授予,对应allow-jit、increased-memory-limit、extended-virtual-addressing三项。徽章的渲染逻辑在 app/Madeira/ContentView.swift 的entitlementBadge里。

方式二:看启动日志。应用每次启动都会调用logEntitlementStatus()(同文件)打印权限状态,格式大致如下:

Checking entitlements... allow-jit: true increased-memory-limit: true extended-virtual-addressing: false Tip: Use GetMoreRam to add increased-memory-limit

increased-memory-limit: true即注入成功。日志里出现那条 Tip,说明这一项还没拿到,回操作清单第 3、6 步复查。

方式三:对照 Setup Guide。应用内的 Setup Guide 页面对每项要求都有说明,其中 Increased Memory Limit 一栏的原文是:"Raises the Jetsam memory threshold. Included in the app entitlements. If not detected, use GetMoreRam to inject it."——与本文流程完全一致。

底层检测走的是 app/Madeira/EntitlementChecker.swift 里的SecTaskCopyValueForEntitlement:系统按当前进程的真实签名与描述文件作答,所以徽章状态是可信的,不会被 App 自己"骗"过去。

徽章是橙色?一张表速查常见故障

现象原因处理
increased-memory-limit一直是橙色叉GetMoreRam 登录的账号与侧载账号不一致;App ID 选错条目;添加能力后没有重装按操作清单逐条对照,重点查账号一致性与"是否重装过"
GetMoreRam 用不了了这类工具依赖的接口偶有变动架构文档提到的备选是PlumeImpactor;或者保持 StikDebug 连接,用其process_control_disable_memory_limit在运行时绕过限额(需 StikDebug 全程挂着)
extended-virtual-addressing加不上该能力免费账号无法配置,GetMoreRam 也不保证能注正常现象。想跑超大型游戏且必须依赖它,考虑付费开发者账号或放弃该选项
权限已生效,游戏仍偶发被杀Jetsam 在系统内存压力极高时依然可能出手——iPhone 总共 6~8GB 内存还要供系统和后台 App不是权限问题。降分辨率、降画质,或关闭后台占用大的 App

最后一点值得强调:increased-memory-limit是把阈值抬高,不是取消限额。PC 游戏可申请的内存上限(4-8GB+)依然可能逼近手机物理内存的天花板,阈值再高也架不住总量不够。把画质调到设备吃得消的范围,才是长期稳定的关键。

小结与参考资料

整条路径可以浓缩为一句话:侧载安装 → GetMoreRam 修改 App ID 能力 → 同一 IPA 重装 → 应用内徽章/日志验证。一次配好,长期有效,免费账号全程够用。

参考文件内容
app/Madeira/Madeira.entitlements应用的 entitlement 声明清单
app/source.jsonApp ID(com.madeira.emulator)与权限配置
app/Madeira/EntitlementChecker.swift运行时权限检测实现
app/Madeira/ContentView.swift权限徽章、启动日志与 Setup Guide 文案
docs/BUILDING.md构建文档,含签名与 Apple ID 要求说明

【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询