Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Z-Warp Native Core: Zero-Java EGL Monolith

Абсолютная архитектура терминала для Android 16 (16KB Page Size)

Z-Warp — это эталонный пример того, как полностью исключить виртуальную машину Java (Dalvik/ART) из графического конвейера Android. Проект реализует прямой перехват аппаратного слоя дисплея через NativeActivity, обеспечивая экстремально низкие задержки для графических систем на базе WGPU, SPIR-V, GLSLANG и MLIR IR.

Разработано на производственной линии в Цюрихе (Z-Console Environment).


1. Требования к оборудованию и ОС

  • Операционная система: Android 16+ (Обязательная поддержка 16KB Memory Page Alignment).
  • Целевая архитектура: ARM64 (aarch64).
  • Протестированное оборудование (Target): Samsung Galaxy Z Flip 7 (Exynos 2500 / GPU Xclipse 950 RDNA 3.5).
  • Требования к дисплею: Поддержка аппаратного буферизованного рендеринга (Eco² OLED Plus, 120Hz).
  • Инструментарий сборки: Bare-metal Clang, Rust (Cargo), Zig, aapt, apksigner, Shizuku (для Rootless-установки через IPC Binder). Никаких Android Studio или Gradle.

2. Техническое описание результата

Приложение загружается системой Android без единого байта Java-кода.

  • Монолитная статическая линковка: Ядро логики на Rust (libzwarp_core.a) аппаратно вшито внутрь C-моста (libzwarp_native.so).
  • Bypass SELinux & Userland: Сборка напрямую ссылается на физические драйверы /system/lib64/libEGL.so и libGLESv2.so, игнорируя конфликтующие X11-драйверы среды Termux.
  • Выравнивание памяти (Memory Mapped I/O): Флаг -Wl,-z,max-page-size=16384 гарантирует, что страницы памяти ELF-библиотеки ложатся ровно в 16-килобайтную сетку ядра Android 16, исключая сбои SIGSEGV в SurfaceFlinger.
  • ABI Type Casting: Жесткое приведение типов указателей окна (EGLNativeWindowType)(uintptr_t) гарантирует совместимость 64-битных регистров дисплея между стандартами Mesa (X11) и SurfaceFlinger (Android).

3. Описание шагов конвейера (Pipeline)

  1. Rust Core Compilation: Сборка статической библиотеки libzwarp_core.a через cargo под таргет aarch64-linux-android.
  2. Native Glue Injection: Интеграция сырых C-исходников графического моста (android_native_app_glue.c).
  3. Clang Linkage: Сборка монолита .so с выравниванием страниц 16KB и абсолютными путями к системным драйверам.
  4. Manifest Generation: Создание AndroidManifest.xml с директивой android:extractNativeLibs="true" (критично для Android 16).
  5. Zero-SDK Packaging: Упаковка через aapt, используя системный framework-res.apk самого устройства вместо тяжеловесного android.jar.
  6. Crypto Signing & IPC Install: Подпись apksigner с кастомным ключом монополиста и прямая инсталляция в системный раздел через демона Shizuku (rish).

4. Использование на другом оборудовании и сценарии применения

Хотя код откалиброван под Exynos 2500, архитектура является портативной.

Сценарии применения:

  • XR/AR Гарнитуры (Snapdragon AR2 / Adreno): Виртуальная и дополненная реальность критически чувствительны к задержкам. Сборка мусора (Garbage Collection) в Java вызывает микро-фризы (stutters). Данный C/Rust монолит позволяет рендерить SPIR-V шейдеры напрямую, удерживая стабильные 90-120 FPS без просадок.
  • Встраиваемые системы (Embedded IoT & Kiosks): На кастомных AOSP-сборках для умных дисплеев или индустриальных панелей можно вырезать весь SystemUI и запускать Z-Warp как единственное приложение поверх графического буфера.
  • Мобильный ML и вычисления (MLIR / OpenCL): Исключение JVM позволяет передавать тензоры из оперативной памяти напрямую в регистры GPU (Zero-Copy Transfer), что критично для запуска локальных LLM на мобильных устройствах.

Использование кода

Любой инженер может использовать этот каркас как основу для портирования движков (например, Bevy, WGPU, кастомных физических симуляторов на Zig/Odin/Forth). Достаточно заменить тело функции draw_frame() в android_main.c на инициализацию собственного графического конвейера.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages