Sobre o projeto

Este projeto fornece uma compilação modificada do Bun (https://bun.sh) que roda nativamente no Android/Termux (aarch64) usando Bionic libc. Sem proot, sem glibc-runner, sem LD_PRELOAD, sem termux-exec — todas as correções são compiladas diretamente no binário por meio de ramos Rust #[cfg(target_os = "android")]. O que resolve A compilação Android do Bun 1.4 upstream apresenta três problemas restantes no Termux: - bun install trava com SIGSYS porque o perfil seccomp do zygote do Android intercepta fchmodat2 e openat2 em vez de retornar ENOSYS, impedindo que os fallbacks de runtime upstream sejam executados. - bunx pacote falha com ENOENT porque os shims do npm carregam shebangs #!/usr/bin/env node e o Android não tem /usr/bin. - bun:ffi cc() reporta TinyCC desabilitado porque o upstream desativa o recurso no Android. Este fork aplica sete patches no nível do código-fonte sobre o Bun v1.4.0 para corrigir cada problema. Recursos - Suporte total a FFI: dlopen, cc() e JSCallback funcionam. - TinyCC habilitado no Android: memória JIT segura para SELinux via memfd_create + veneers de chamada longa ARM64 para chamadas BL fora de alcance. - Bypass de interceptação seccomp: lchmod usa fchmodat(AT_SYMLINK_NOFOLLOW) em vez de fchmodat2 interceptado; caminhadas do resolvedor usam openat simples em vez de openat2 interceptado. - Remapeamento de shebang: Scripts com interpretadores ausentes remapeiam caminhos como /usr/bin para $PREFIX/bin. - bunx funciona: O launcher define argv[0] corretamente para a criação de scripts. Compatibilidade Item | Status --- | --- Arquitetura | aarch64 (arm64) Android | 10+ (API 29+, SELinux untrusted_app_27+) Versão do Bun | 1.4.0 bun install | Funciona (bypass de seccomp) bun run / bunx | Funciona bun build --compile | Funciona (corrigido no upstream) bun:ffi dlopen / cc() / JSCallback | Funcionam opentui TUI | Funciona Instalação curl -fsSL https://raw.githubusercontent.com/bd-loser/bun-termux/main/scripts/install.sh | bash Instala bun e bunx em $PREFIX/bin. Compilar do código-fonte Requer Rust, NDK r27c, clang 18, CMake, Ninja e Bun para bootstrap. Veja docs/BUILD.md para instruções completas. Licenciamento MIT para os patches do fork; componentes do TinyCC sob LGPL-2.1; Bun upstream sob MIT.