Nix-enabled environment for your Android device. [maintainers=@t184256,@Gerschtli] https://nix-on-droid.unboiled.info
Find a file
Alexander Sosedkin debd51f76b Set LOCALE_ARCHIVE
2019-09-28 18:40:25 +00:00
src Set LOCALE_ARCHIVE 2019-09-28 18:40:25 +00:00
.editorconfig Add editorconfig file 2019-09-21 15:34:04 +02:00
.gitignore Ignore result-* 2019-09-21 15:34:04 +02:00
.travis.yml Add support for travis+cachix (Gerschtli) 2019-09-21 17:32:10 +02:00
AUTHORS Add AUTHORS file 2019-09-21 15:34:04 +02:00
ci.nix Filter derivation with preferLocalBuild 2019-09-22 18:24:56 +02:00
COPYING Initial commit 2019-03-07 02:27:37 +07:00
README.md Fix typo in README 2019-09-21 15:34:04 +02:00

Nix-on-Droid

Nix on Android, in a single-click installable package. It's a bit of a mess for now, but hey, it works!

This script installs Nix package manager on Android. It does not require root, user namespaces support or disabling SELinux, but it relies on proot and numerous other hacks instead. It uses a fork of Termux-the-terminal-emulator app, but has no relation to Termux-the-distro. Please do not pester Termux folks about my stuff.

Will only work with aarch64. It should be easy to support x86 devices, but I don't own one. Sorry, it would not work on 32-bit ARM devices and it's probably not an easy feat to pull off.

This repository contains the script that is responsible for the initial bootstrap zipball generation.

Try it out

Prebuilt stuff resides at https://nix-on-droid.unboiled.info

Building stuff on your own

The terminal emulator part is probably not interesting for you, just download and use a prebuilt one. If you really want to rebuild it, you can just use Android Studio for that.

The zipball generation is probably what you are after. Get an x86_64 computer with Nix. Run one of the following:

nix build -f ./src --argstr arch aarch64 bootstrapZip
nix build -f ./src --argstr arch i686 bootstrapZip

Put the zip file from result on some HTTP server and specify the parent directory URL during the installation. To re-trigger the installation, use 'clear data' on the Android app (after backing stuff up, obviously).

Tips

  • Run nix-on-droid-install. Otherwise it's just Nix and that's too barebones.
  • If you don't want to, read the tips that are displayed at the beginning of each new session.
  • To grant the app access to the storage, use the toggle in the app settings (reacheable from Android settings).
  • If the terminal freezes, use 'Acquire wakelock' button in the notification or tone down your aggressive power saving stuff.
  • If you have name resolution issues, start with specifying your nameservers in /etc/resolv.conf.

Credits

Copyright (c) 2019 Alexander Sosedkin monk@unboiled.info

Based off the official Nix install script (https://nixos.org/nix/install), presumably written by Eelco Dolstra.

Is deployed and used with a fork of Termux-the-terminal-emulator app, but has no relation to Termux-the-distro.

Previous project that did use Termux-the-distro: https://github.com/t184256/nix-in-termux