Skip to content
emexlabPublic

About

IDE to develop native code iOS apps and utilities on stock iOS it self just via a certificate and a custom micro kernel for those apps.

Topics

Resources

Contributing

Stars

1.4k stars

Watchers

18 watching

Forks

Latest commit

 

History

3,900 Commits

Folders and files

Repository files navigation

Nyxian

A full native IDE and a userspace microkernel for building and running iOS apps entirely on-device. offline, unjailbroken, iOS 18.0 all the way through iOS 27.2 Beta 2

Fluxer invite

What is it?

Nyxian is an iOS app that empowers developers with a full toolchain they can use while even being offline for iOS development on iPhone. It supports Swift, C, Objective-C, C++ and Objective-C++. It provides a native on-device build environment, a userspace microkernel, and the tooling to compile, run, and manage app packages without needing a desktop or a jailbroken device.

Core focus: ProcEnvironment/Surface

Everything I care about is located at Nyxian/LindChain/ProcEnvironment/Surface.

This is the core process-environment and runtime surface of Nyxian: the low-level layer where the microkernel, process abstraction, filesystem and tty plumbing, trust/key handling, memory mapping, and syscall-facing behavior are assembled. In practical terms, it is the foundation that connects Nyxian's userspace environment to the host iOS runtime and exposes the machinery needed for native app execution, process isolation, and system-like services.

Installation

To start using Nyxian view the Installation Guide.

Limitations

The only current limitation is that we cannot intercept a arm64 supervisor call, but that is not so much of a problem, because remember we are on iOS, processes have nearly no priveleges, so by by not intercepting a supervisor call we can still do most things we need to do.

Todo

  • IDE
    • Compiling code
      • C support
      • Objective-C support
      • C++ support
      • Objective-C++ support
      • Swift support
    • Typechecking
      • C support
      • Objective-C support
      • C++ support (limited without indexing)
      • Objective-C++ support (limited without indexing)
      • Swift support
    • Linking objects to MachO
    • Indexing
  • Offline Code Execution
    • Code execution (via NSExtension)
    • Micro Kernel (ksurface)
      • radix trees
      • object API
      • process object
      • privelege model
      • custom entitlement blob (translated from AppleCS to NXT2 as well!)
      • Kext Link Editor (kxld)
        • validate code signature of kext
        • validate it's nyxian trust blob
        • load kext executable into nyxian address space
        • find it's kmod
        • apply fixups for kext
        • fix ObjC
        • fix thread local storage
        • handle it's exports
        • reseal constant data section
        • run it's initializers
        • act upon kmod_info_t
      • Syscall handling
        • Mach IPC syscall server
        • Task port handoff (usually they are guarded we bypass that by moving a receive right after the send right has been set as exception port to the host and then executing a brk instruction to move the task to a new address space that respects our init and their rest of data)
        • Memory copy in/out of guests (yep out of the iOS processes and into them without assistance, this is not a typo lol)
      • Subprocess Patches
        • posix_spawn/posix_spawnp fix
        • vfork fix
        • sysctl fix
        • tty support on iPhone and the necessary ioctl fix (tho not entirely yet, it only works when NXWindowSessionTerminal creates it, but it is already progress)
        • libproc fix
        • task_for_pid/task_name_for_pid fix (you heard right, that is not a typo)
        • patches to credential syscalls like setuid or setgid
    • Signing executables
    • NSBundle think it is loaded as a binary
    • Actually make iOS apps and binaries use the version as DYLD version they have been made for
    • Find NSExtension spawn limit
    • File permissions in guest file system (using sandbox file extensions and clever self-written fs sandbox APIs)

About

IDE to develop native code iOS apps and utilities on stock iOS it self just via a certificate and a custom micro kernel for those apps.

Topics

Resources

Contributing

Stars

1.4k stars

Watchers

18 watching

Forks

Releases

Sponsor this project

Contributors

Languages