devindudeman/nix-android — explained in plain English
Analysis updated 2026-05-18
Declare a list of apps and Android settings in a config file and apply them to a phone over adb.
Preview a read-only plan of exactly what will change before touching a real device.
Reproducibly set up a wiped or factory-reset GrapheneOS phone from a saved configuration.
Check drift between a phone's current state and what was declared since the last apply.
| devindudeman/nix-android | anndreloopez012/campuslands-dev-sql | justingrammens/osn-2026 | |
|---|---|---|---|
| Stars | 21 | 21 | 21 |
| Language | Shell | Shell | Shell |
| Setup difficulty | hard | easy | easy |
| Complexity | 4/5 | 1/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires the Nix package manager installed and a device or emulator reachable over adb, project is still alpha stage.
nix-android brings the idea behind nix-darwin, a tool that manages a Mac's settings from a single configuration file, to an Android phone instead. You write down which apps you want installed and which settings you want turned on in a configuration file, the tool shows you a plan of exactly what it intends to change, and then it makes those changes on the phone by talking to it over adb, the standard Android debugging connection, without needing root access or replacing the phone's operating system. The project can install apps from F-Droid, from GitHub or Gitea release pages, from direct download links, or from local APK files, and it can also record that a Google Play app or another app the user installed by hand should simply be present, even if the tool cannot install it directly. Beyond apps, it can manage things like dark mode, private DNS, which app is the default browser or messaging app, permission grants, per-app language settings, and battery optimization exemptions. By default it only adds things you declare and leaves everything else on the phone alone, and the planning step never actually writes anything to the device, it only figures out what it would do. The README is upfront that the project is at an early, alpha stage. The core loop of installing apps and changing settings has been tested end to end on an Android emulator and has completed a real install plus a reversible settings change on a locked GrapheneOS phone, which the README calls the first fully supported target, alongside the emulator used for testing changes safely. The author explicitly warns not to point the tool's more powerful commands at a phone you use every day without first reviewing what they will do. Setting it up requires the Nix package manager, since the whole configuration is written as a Nix file, along with a connected Android device or emulator reachable over adb. The project includes detailed documentation covering the full list of options, the exact boundary of what it can and cannot manage on a phone, and a development workflow for testing changes on an emulator. It is released under the MIT license.
A tool that lets you declare which apps and settings should be on an Android phone in a Nix config file, then applies that plan over adb without needing root.
Mainly Shell. The stack also includes Nix, Shell, adb.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.