Skip to content

NEXTERM 1.0

Latest

Choose a tag to compare

@Dreamucxe Dreamucxe released this 12 Aug 19:03

NEXTERM 1.0 — first public release.

Install

⬇ NEXTERM.apk — signed, install directly.

Android 7.0 or newer (API 24+)
CPU 64-bit ARM (arm64-v8a) for Linux environments
Root Not required
Size 13.3 MB

Open the APK and allow installation from your browser or file manager when prompted. The build is signed but not distributed through Play, so Android will ask.

Verify what you downloaded:

sha256  84af4ffc4bc085d18666ec2c5eb4a455dc323244a4b5f51ccef5df67f8ab5d02

The signing certificate is CN=NEXTERM, OU=Terminal, O=NEXTERM with SHA-256 fingerprint 2b:81:bc:12:ae:27:6f:4d:2a:2b:d7:87:83:a5:d4:db:5e:fc:32:dc:e5:b3:5a:55:75:2e:78:b0:ba:c0:91:bc. Every future release will be signed with the same key, which is what lets Android accept it as an update.

What's in it

  • Local shell — a real PTY on Android's own shell, with a full VT/xterm-256color emulator, scrollback, text selection and a programmable key row.
  • Linux environments — Alpine, Debian, Ubuntu, Arch and others from the proot-distro catalogue: downloaded, checksum-verified and extracted on device, then entered through proot. apt install works. So does gcc.
  • SSH — key or password auth, with credentials held in the Android Keystore.
  • Files — a browser over app storage, shared storage via SAF, and the guest filesystems, with privilege reported from a live probe rather than assumed.
  • Sessions — tabs, groups, split view, snippets with placeholders, quick commands.

Notes on this build

Two proot builds ship inside the APK under lib/arm64-v8a/. Since API 29 app-writable storage is mounted W^X, so the install-time native library directory is the only place an app may execute a binary from — which is why they are named lib*.so whatever they actually are. The Termux fork is tried first, with upstream's static build as a fallback, each paired only with the loader it was compiled against.

Which build and which syscall-interception mode a device tolerates is measured, not assumed: on the first session per environment the app runs sh -c 'exit 0' through the real command line in each combination and keeps whichever exits 0. If none does, it reports what proot printed, the signal that killed it, and the ELF details of every binary involved.

Shizuku, where used, runs commands as the shell user (uid 2000) — not as root, and the app does not claim otherwise.

Third-party notices, per-file checksums and the written offers of source code for the bundled GPL/LGPL components are in app/src/main/assets/licenses/NOTICE.txt, and readable in the app under Settings → Licences.