Home

Awesome

LiveContainer

Run iOS app without actually installing it!

Compatibility

Unfortunately, not all apps work in LiveContainer, so we have a compatibility list to tell if there is apps that have issues. If they aren't on this list, then it's likely going run. However, if it doesn't work, please make an issue about it.

Usage

Requires AltStore or SideStore

Without JIT

Without JIT, guest apps need to be codesigned, which requires retrieving the certificate and password from SideStore or AltStore. This process involves applying a tweak to SideStore/AltStore, allowing it to expose the certificate to LiveContainer.

Note: If you update or reinstall SideStore/AltStore, you'll need to reapply the patch.

With JIT (requires SideStore)

Add to Home Screen

Long press the app and you will see 2 ways to add your app to home screen:

  1. Launch URL: Copy the provided URL, create a shortcut that opens the app, and add it to your home screen. You’ll need to create a separate shortcut for each app.
  2. Create App Clip: Install an App Clip MDM profile, which adds the app to your home screen. Note that launching the app includes an extra jump, and the App Clip will remain in the app switcher.

Multiple LiveContainers

Using two LiveContainers allows you to run two different apps simultaneously, with almost seamless data transfer between the LiveContainers.

To install a second LiveContainer, go to Settings and tap "Install Another LiveContainer."

The first LiveContainer (blue icon) always launches by default. If an app is already running in the first container, you'll be prompted to either open it in the second LiveContainer (gray icon) or terminate the current app and relaunch it in the first. If the app is already running in the second container, it will switch automatically.

Fix File Picker

Some apps may experience issues with their file pickers in LiveContainer. To resolve this, enable "Fix File Picker" in the app-specific settings.

"Open In App" Support

JIT Support

To enable JIT for a guest app:

Installing external tweaks

LiveContainer comes with its own TweakLoader, which automatically load CydiaSubstrate and tweaks. TweakLoader is injected to every app you install. You can override TweakLoader.dylib symlink with your own implementation if you wish.

.dylib files in Tweaks folder are global, they are loaded to all apps. You can create app-specific tweaks folder and switch between them instantly.

To install tweaks, you can use the built-in tweak manager in LiveContainer, which will automatically sign tweaks as you import. Otherwise, you can manually add them and then use the tweak manager to sign them.

Hiding Apps

LiveContainer offers three levels of app hiding:

Building

export THEOS=/path/to/theos
git submodule update --init --recursive
make package

Project structure

Main executable

LiveContainerSwiftUI

TweakLoader

AltStoreTweak

How does it work?

Patching guest executable

Patching @executable_path

Patching NSBundle.mainBundle

Bypassing Library Validation

dlopening the executable

Limitations

TODO

License

Apache License 2.0

Credits