乐于分享
好东西不私藏

iOS无限制直装IPA启动器教程

iOS无限制直装IPA启动器教程

无限制iOS安装运行 IPA启动器介绍: LiveContainer
LiveContainer 是一款应用启动器(非模拟器或虚拟机监控程序),
可让您在其中运行 ipa应用。

LiveContainer 是一个 iOS App 启动器——注意,不是模拟器,也不是虚拟机,是真正在原生 iOS 运行时里执行目标 App。

允许您安装无限数量的应用(解决突破免费开发者账号的 3 个应用/10 个 App ID 限制),且只需一个应用和一个 App ID。

核心能力三句话说清楚:

  • 无限 App 安装:所有 App 装在 LiveContainer 里,只占 1 个 App ID,突破只能安装 3 个应用限制
  • 无需 JIT 即可运行:JIT-Less 模式下,App 用 LiveContainer 自己的证书自动签名,直接启动
  • 多任务:同一个 App ID 可以装多个数据容器,相当于多账号同时在线;还支持画中画和分屏

LiveContainer技术原理:它是怎么实现的?

LiveContainer 没有用到任何越狱漏洞,

而是对 Mach-O 二进制格式、dyld 动态链接器做了精准的”外科手术”。

第一步:把 App 的可执行文件变成动态库

因为单独的 iOS App 的主可执行文件(MH_EXECUTE)都无法被另一个进程直接加载。

因此 LiveContainer 做了两件事:

1. 修改 __PAGEZERO 段:   vmaddr: 0x0  →  0xFFFFC000   vmsize: 0x100000000  →  0x40002. 把文件类型从 MH_EXECUTE 改成 MH_DYLIB

经过这两个补丁,

目标 App 就变成了一个可以被 dlopen() 加载的动态库MH_DYLIB

第二步:欺骗 dyld,让 App 以为自己是主进程

App 启动时会调_NSGetExecutablePath 查询自己的路径。LiveContainer hook 了这个函数进行替换ipa路径:

Hook dyld4::APIs::_NSGetExecutablePath  → 调用原始函数获取真实路径  → 用 builtin_vm_protect / TPRO 解锁内存写权限  → 把路径替换成其他的目标 App 的路径  → 还原原始函数

NSBundle.mainBundle 也被替换成目标 App 的 bundle,

让 App 完全认为自己运行在”自己的”进程里, 其实已经切换到其他ipa

第三步:dlopen 加载,跳到入口点

dlopen(目标App可执行文件路径)  → TweakLoader 注入所有 .dylib tweak  → 找到 App 的 entry point  → 直接跳转执行  → App 调用 UIApplicationMain,正常启动

整个过程不需要越狱,不需要内核漏洞,完全在用户态完成。

LiveContainer下载

LiveContainer 提供独立版本和内置 SideStore 的版本
私信”LiveContainer” 获取
2026年的最佳侧载方案:
用LiveContainer+SideStore合并版,只占一个App ID和App位置,但可以无限安装ipa,普通账号只需要七天重签一次,不用付钱

系统要求

iOS/iPadOS 15及以上版本
AltStore 2.0及以上版本
SideStore 0.6.0及以上版本

功能与指南

安装应用

打开 LiveContainer,点击右上角的加号图标,选择要安装的 IPA 文件。
选择您希望在下次启动时打开的应用。
您可以长按应用进行管理。

添加应用到主屏幕

多个 LiveContainer

使用多个 LiveContainer 可以让您同时运行多个不同的应用,容器之间的数据传输几乎无缝。

多任务处理

现在,您可以在应用内的虚拟窗口中同时启动多个应用。这些窗口可以调整大小、缩放,甚至可以使用原生画中画(PiP)功能显示。在 iPad 上,应用可以以原生窗口模式运行,每个应用在单独的系统窗口中显示。如果您愿意,还可以在设置中将多任务模式设为默认的应用启动方式。
要使用多任务功能,请按住应用横幅并点击“多任务”。您也可以在设置中将多任务设为默认启动模式。

注意点

若要使用多任务功能,请确保在通过 SideStore/AltStore 安装时选择“保留应用扩展”
如果您想为多任务应用启用 JIT,需要一个支持通过 PID 附加的 JIT 启用工具。(如 StikDebug)
部分应用在 LiveContainer 中可能会出现文件选择器异常或无法申请通知权限的问题。若要解决此问题,请在应用专属设置中相应启用“修复文件选择器”和“修复本地通知”选项。

“在应用中打开”支持

点击“应用”标签右上角的链接图标并输入 URL。LiveContainer 将检测合适的应用,并询问您是否要启动它。
此外,您可以使用此快捷指令将网页分享至 LiveContainer。请确保将此快捷指令添加到分享面板操作的“收藏夹”中。

兼容性

遗憾的是,并非所有应用都能在 LiveContainer 中正常运行,因此我们提供了一个兼容性列表,用于说明存在问题的应用。如果某应用未在该列表中,则它很可能可以正常运行。但如果无法运行,请就此提交 issue。

构建

打开 Xcode,在 xcconfigs/Global.xcconfig 中编辑 DEVELOPMENT_TEAM[config=Debug] 为您的团队 ID,然后进行编译。

项目结构

主可执行文件

LiveContainer 的核心
包含设置来宾环境和加载来宾应用的逻辑。
若未选择应用,则加载 LiveContainerSwiftUI。

LiveContainerSwiftUI

LiveContainerUI 的 SwiftUI 重写版本(由 @hugeBlack 开发)
多语言支持的语言文件 Localizable.xcstrings 位于此处。如需帮助我们翻译 LiveContainer,请访问我们的 Crowdin 项目。

多任务支持

包含多任务功能的实现。
基于 FrontBoardAppLauncher

SideStore

用于 SideStore 应用刷新集成的支持代码

TweakLoader

一个简单的插件注入器,用于加载 CydiaSubstrate 和插件。
会注入到你在 LiveContainer 中安装的每个应用。

ZSign

LiveContainer 附带的应用签名工具。
最初由 zhlynn 开发。
LiveContainer 使用由 khcrysalis 修改的 Feather 版本的 ZSign。
已根据 LiveContainer 的需求进行了修改。

工作原理

修补来宾可执行文件

修补 __PAGEZERO 段:
将 MH_EXECUTE 更改为 MH_DYLIB。
注入加载命令以加载 TweakLoader.dylib
修补 @executable_path
挂钩 dyld4::APIs::_NSGetExecutablePath
调用 _NSGetExecutablePath
替换 config.process.mainExecutablePath
恢复原始的 dyld4::APIs::_NSGetExecutablePath

旧方法

  • 使用无效的缓冲区指针输入调用 _NSGetExecutablePath -> SIGSEGV
  • 执行一些魔法操作来覆盖 executable_path 的内容。

修补 NSBundle.mainBundle

此属性被覆盖为来宾应用的 bundle。

绕过库验证

JIT 是绕过代码签名的可选方式。在无 JIT 模式下,所有可执行文件都经过签名,因此此条不适用。
源自 Restoring Dyld Memory Loading

动态打开可执行文件

使用来宾应用的可执行文件调用 dlopen
TweakLoader 加载所选文件夹中的所有插件

找到入口点

跳转到入口点
来宾应用的入口点调用 UIApplicationMain 并像其他任何 iOS 应用一样启动。

多账户支持与钥匙串半隔离

系统会创建128个钥匙串访问组,LiveContainer 会为同一应用的每个容器随机分配这些访问组。因此,您可以创建128个具有不同钥匙串访问组的容器。

限制

访客应用的权限不会应用到宿主应用。不过这影响不大,因为侧载应用通常只需要基本权限。
应用权限为全局应用。
访客应用容器未进行沙盒隔离。这意味着一个访客应用可以访问其他访客应用的数据。