github MakrSas/Inferno-iOS v0.3
Inferno for iPhone 0.3

latest release: v0.3.1
16 days ago

A package manager and an app catalogue, Cydia that works, the phone's battery and network in the guest — and an agent that keeps all of it off the console.

Unofficial — not affiliated with or endorsed by ChefKiss. Inferno is by Visual Ehrmanntraut and the Inferno team.

What's new

A package manager on the phone. Menu → Patches → Package manager. Cydia repositories — bingner's, BigBoss, Chariz, Havoc and Filza's own to start with — are read, searched and downloaded on the phone, where the network is real and nothing times out; only the finished .deb goes into the guest. It knows what is installed, and can reinstall or remove it. A .deb you already have installs from the same menu, and Restart SpringBoard is what Cydia calls a respring.

Cydia works. Every operation used to end in cydo returned an error code (2), because a restored image breaks it three ways at once: the root is read-only, dpkg looks for its database where there is none, and nothing in the guest can be setuid, so cydo never becomes root. The app now gives Cydia a root helper in cydo's place and repairs what a guest reboot undoes on every start. Repair the package manager does the slow half, once per image.

An app catalogue. Menu → Patches → App catalogue: DolphiniOS, Taurine, iSH and Provenance to start with, and any AltStore source you add, installed the same way as an .ipa. App Store apps are not there and cannot be: their binaries are encrypted with FairPlay, which only the device that bought them can undo.

The phone's battery in the guest. Settings → The guest's battery: the charge — in steps of five, which is all iOS tells an app — and the bolt while it charges, or a figure of your own. The guest's SMC answers with it, so its status bar, Settings and apps all agree.

A network in the guest's status bar. Settings → The guest's status bar: Wi-Fi or cellular as the phone has it, or whatever you set. Only a picture — the machine has no modem and no Wi-Fi, and the guest's apps still see none.

The phone's time zone in the guest. The guest's clock was always right, but the image comes with a zone of its own — US/Pacific on images built by the guide — so its screen was hours away from the phone's. The app now gives the guest the phone's zone as soon as it can reach it, and follows the phone when that changes. Settings → The phone's time zone turns it off, if you would rather pick a zone in the guest's own Settings.

An agent in the guest. Everything automatic used to share the one console the bootstrap's bash sits on, and one command that never came back stalled the lot. The first time the machine starts, the app now installs a small agent into the guest and adds it to launchd, so it starts on every boot; the app reaches it over the NVMe namespace instead of the console. If it cannot be installed, everything goes through the console as before.

The shell waits for the guest. The shell opens over the console as the machine starts and waits for the bootstrap's bash, instead of giving up on a guest that is minutes from one.

Credits. Settings → Credits: whose work this stands on, and what each of them did. Opening it fetches the avatars from GitHub; nothing else leaves the phone.

Fixed

  • Starting the machine no longer crashes on anything older than iOS 27: the emulator called pipe2, which iOS only has from 27.
  • A machine whose NVRAM was left at auto-boot=false no longer heads for recovery and quits with RAM Disk required for recovery.
  • A folder or an empty file where a disk image belongs no longer takes the app down at Start. The reason is in the log, and emulator.prev.log keeps the run before, for when you restarted the app to find out.
  • Settings the guest cannot boot on are gone: TCG always runs multi-threaded, and there are at least 4 cores. A saved 2 or 3 becomes 4.
  • The emulator log is in English when the interface is.
  • The console pane shows the guest's output as it arrives.
  • In full screen, the first edge swipe goes to the guest and the second to the phone.
  • The app reports its own version. Every earlier build said 0.1.

Sound is still experimental. With the switch on, the guest now sees the sound hardware and builds its speaker, but the output route never comes up, so nothing plays yet. With it off, the machine carries none of those drivers.

Before you install

  • You need a jailbroken guest image, built by ChefKiss's guide with the jailbreak bootstrap. None is included.
  • The app needs JIT: always launch it through StikDebug. Before launching, long-press Inferno in StikDebug, choose Assign Script and pick legacy.js.
  • About 9 GB free for the guest image.

Step by step: Installing. What does and does not work: README.

On a Mac

Inferno-macOS.dmg is the same app for a Mac with Apple silicon, built from the same sources. The guest runs under Hypervisor.framework, straight on the Mac's cores, so there is no JIT to arrange. The window is laid out like iPhone Mirroring: at rest it is only the guest's screen, and at its top edge a blurred frame comes up with the window buttons, the menu and the settings.

  • macOS 15 or later, on Apple silicon.
  • Open the disk image and drag Inferno into Applications.
  • The app is signed ad hoc, not notarized, so macOS will not open it the first time. Try once, then System Settings → Privacy & Security → Open Anyway.
  • The same guest image as on the phone: put InfernoData and AppleSEPROM-Cebu-B1 into Documents → Inferno, and let the app use Documents when macOS asks.

Source

Inferno.ipa SHA-256: a031949f46693979661e7421293fb436c5caed58755c0d32ea7f181cb57db90d

Inferno-macOS.dmg SHA-256: 3b585a999a5ace8780930f8724d37c2dbb8ab86d0e05ee69835f0cdefa74a48b

Found a problem, or have an idea?

Open an issue, in English or Russian.

Don't miss a new Inferno-iOS release

NewReleases is sending notifications on new releases.