◒ daybreak

Three execution paths, three different contracts

Daybreak is not a single translation layer. Its source port, Mach-O loader, and operating-system guest cross different boundaries. Knowing which one is running is the first useful diagnostic.

Where compatibility lives

Consider one button. In the source path, its Swift code is compiled for Android and the compatibility surface supplies the implementation. In the loader path, an existing Mach-O image enters a host process and expects its imported symbols and ABI behavior to exist. In the guest path, the app executes within a separately provisioned OS; a bridge must make its result visible and interactive on Android. These paths can contribute to the same product without being consecutive stages of one pipeline. [map], [playground], [checkpoint]

Figure 1. Select an execution path; compare the address-space boundaries.

ShimKit

Swift app → Android binarySource is rebuilt
ShimKit + Swift runtimeHost process APIs
Android host / JNIUI + platform services
Android Linux kernelHost system calls

Backstep

Mach-O fixtureForeign executable format
Mapped image + ABI stubsInside the host process
Host libc / runtimeResolved imports
Android Linux kernelNo guest XNU in this path

Darwin / iOS guest

Guest app + frameworksGuest virtual address space
Guest XNUGuest kernel boundary
Virtual platform + bridgeExecution backend / host process
Android Linux kernelHost device access
Project-owned adaptationForeign image / guestHost kernel
Architectural categories. The binary column describes supported fixtures, not a complete framework runtime. Hardware rendering can coexist with software CPU emulation.

The contract is larger than an instruction set

“Both machines use ARM” describes only part of execution. A program also assumes a binary format, relocation rules, parameter passing, thread-local storage, exception unwinding, framework behavior, and system services. A successful jump into a two-line program tests a small intersection of those requirements. It cannot establish that an app’s object runtime, event loop, or persistence works.

The inspected resolver makes that limitation concrete: it accepts libSystem names, resolves a small explicit symbol table, and treats variadic calls specially on non-Darwin hosts. It does not synthesize the Objective-C runtime or UIKit. Its execution function rejects arm64e and requires an LC_MAIN entry. Those are operational boundaries, not merely cautious wording. [bind], [map]

QuestionArtifact that answers itWhat it does not establish
Can the binary be inventoried?Validated load plan, segment and import inventoryInstructions can execute
Can a fixture enter and return?Entry result, stdout, bounded exitComplete process or framework behavior
Can a guest boot?Guest identity and boot logInteractive app compatibility
Does an app work?Launch, UI, input, lifecycle, storage and service testsOther apps or devices behave the same

What Cider and Proton actually contribute

The original Columbia Cider architecture modified Android’s kernel to support foreign ABI behavior. Per-thread personas selected the relevant execution conventions; duct tape adapted available foreign kernel code; diplomatic functions crossed into domestic libraries for facilities such as graphics. It reused foreign userspace components. That is a historical design, not a drop-in modern iOS runtime and not evidence that Daybreak includes its implementation. [cider]

Proton uses Wine and additional components to run Windows games on Linux. Its lesson for Daybreak is that compatibility requires a maintained implementation plus testing against real workloads. The Steam Deck comparison is useful as a product ambition; it should not replace a diagram of Daybreak’s actual paths or imply equal maturity. [proton]

Backstep is also called Cider in this workspace, which makes the terminology easy to blur. Here “Backstep” means the inspected project loader and ABI work; “Columbia Cider” means the 2014 paper. No kernel-persona implementation is established by inspecting Backstep’s current Swift loader. [map], [bind]

CPU execution and graphics are separate axes

A virtual machine description needs an execution backend as well as a virtual board and devices. QEMU distinguishes these configuration choices; TCG is software emulation, while hardware virtualization requires an appropriate accelerator. The availability of one on a host does not establish support for a particular guest platform. [qemu]

Similarly, drawing guest-derived resources through Android’s accelerated Canvas does not imply that the guest has an Apple GPU. CPU execution, graphics command compatibility, resource transport, host composition, and display are separate engineering problems. A report should name both the execution backend and rendering path rather than use “native” for all of them. [view], [checkpoint]

The current evidence boundary

The dated runtime checkpoint describes an instrumented UIKit fixture: its capture and input support are compiled into the app. It also records progress with stock scroll and slider controls, alongside rendering discrepancies. That is stronger than “a shell boots,” but still differs from a reusable system-wide app bridge. The separate-app gate asks for independent identity, natural lifecycle, and bridge attachment. [checkpoint]

Newer reports may extend that boundary. A claim that the latest iOS loads should carry its exact build, target, launch path, and interaction evidence before the website turns it into a general-purpose compatibility statement. The Pixel and BlueBerry roster identifies testing targets; it is not a per-device certification.

References and evidence

Implementation references describe a working-tree snapshot. They are not all present in a public repository. The source inventory records file hashes; historical notes are not new device tests.

  1. [map] Daybreak, SegmentMapper.swift / ApplyLinkEdit.swift / Execute.swift. Inspected working tree, 2026-09-10; machparse/Sources/MachParse/. Mapping, relocation, protection and host-stack entry. Private workspace source; collaborator access required.
  2. [bind] Daybreak, LibSystemStubs.swift. Inspected working tree, 2026-09-10; libSystem-only resolver and explicit variadic ABI handling. Private workspace source; collaborator access required.
  3. [playground] Daybreak, tools/playground.sh and Swift playground source. Inspected working tree, 2026-09-10. Mac compilation, ADB library delivery and polled current-file selection. Private workspace source; collaborator access required.
  4. [checkpoint] Daybreak, iOS Runtime Checkpoint and Next Gate. docs/research/ios-runtime-next.md, updated September 8–9, 2026. Dated evidence, remaining fixture boundary and rendering discrepancies. Private workspace source; collaborator access required.
  5. [cider] Andrus et al., Cider: Native Execution of iOS Apps on Android. ASPLOS 2014, §§3–4. Historical architecture; not modern iOS compatibility evidence.
  6. [proton] ValveSoftware, Proton README. Primary project documentation, accessed 2026-09-10.
  7. [qemu] QEMU, System emulation introduction. Rolling manual, accessed 2026-09-10; machine, accelerator, devices and backends.
  8. [view] Daybreak, GuestFrameActivity.kt / GuestSocketClient.kt. Inspected working tree, 2026-09-10; same Android directory. UI scheduling, Canvas operations, reliable/unframed selection, paced input. Private workspace source; collaborator access required.

Full source inventory and provenance →

← Research index · Daybreak Terminal proposal →