| 24 Dec 2025 |
matthewcroughan - nix.zone | BTW, can you run graphical stuff in the AVF framework? | 19:19:03 |
matthewcroughan - nix.zone | * BTW, can you run graphical stuff in the AVF setup? | 19:19:06 |
pentane (DECT CYPT/2978) | yes - it's in the command lunch <device> cur user | 19:30:18 |
pentane (DECT CYPT/2978) | I think so yeah, havent tried it so far tho | 19:30:48 |
crstl | pentane ⭔ Are you both actually coming to the congress in Hamburg? I'm just asking because after following matthewcroughan activities on QCM6490 and getting a Fairphone 5 as a second device for NixOS testing, but using GraphenOS as my daily driver on my Pixel, I thought I'd build it with Robotnix as well. After a few days with my Robotnix setup, it would be great to exchange a few thoughts. | 19:46:47 |
pentane (DECT CYPT/2978) | Yep, I'm arriving in Hamburg on the 26th | 19:47:32 |
pentane (DECT CYPT/2978) | would be really cool to meet up :) | 19:47:43 |
crstl | Nice. Is there going to be a Matrix Nix Channel for the congress again? That would definitely be good, so we don't get lost in the hustle and bustle. | 19:55:20 |
matthewcroughan - nix.zone | pentane ⭔: can you lock the device with your own nixos setup? | 20:24:50 |
matthewcroughan - nix.zone | oh yeah I'll be at 39c3 too, so maybe we can meetup and you can do a quick FAQ? :D | 20:25:10 |
matthewcroughan - nix.zone | I'll document such a setup too if you help me figure it out | 20:25:27 |
crstl | Sound great, let's do that. | 20:28:39 |
pentane (DECT CYPT/2978) | yep, you just need to flash the avb_pkmd.bin generated by generateKeysScript instead of the one provided by upstream grapheneos | 20:45:00 |
pentane (DECT CYPT/2978) | yeah i need to rewrite all the docs at some point, theyre horribly outdated xc | 20:45:21 |
matthewcroughan - nix.zone | ah, and then you need to keep those keys safe? | 20:46:31 |
pentane (DECT CYPT/2978) | exactly | 20:46:38 |
pentane (DECT CYPT/2978) | and pass them to the releaseScript to sign your target files with them | 20:46:58 |
matthewcroughan - nix.zone | can you embed those keys into a yubikey? | 20:47:21 |
matthewcroughan - nix.zone | or perhaps derive them rom one | 20:47:29 |
matthewcroughan - nix.zone | * or perhaps derive them from one | 20:47:31 |
pentane (DECT CYPT/2978) | hmm, youd have to take a look at build/tools/releasetools/sign_target_files_apks.py to see what it supports | 20:49:19 |
pentane (DECT CYPT/2978) | afaik CalyxOS is doing something with HSMs in that direction? | 20:49:52 |
| crstl changed their profile picture. | 21:33:23 |
| crstl changed their display name from sebastian to crstl. | 21:33:36 |
| 25 Dec 2025 |
| pentane (DECT CYPT/2978) changed their display name from pentane ⭔ to pentane (DECT CYPT/2978). | 11:23:25 |
Benedikt | How is the support for unofficial lineage os devices (e.g. fp6)? The mdbook documentation mentions a (non existing) flavors/lineageos/supported_devices.toml and the readme in flavors/linageos points me to a repo-tool command that seems to always re-lock the official devices, but not my specified unofficial one (which I did via --lineage-device-file <my devices.json with just the fp6 unofficial repo>) | 16:03:58 |
crstl | Here is some context of my thoughts so that they are visible to others even without a meeting at the ccc congress.
My ultimate goal is, as one would expect from a Nix/NixOS lover, to turn my mobile device into a nice reproducible nix environment. I want to use NixOS primarily on the go, but because the day‑to‑day requirements and the still‑unrefined mobile optimizations are unlikely to be practical in the near future, I believe it makes sense to invest my time in robotnix instead.
My first attempts with robotnix are already satisfying thanks to your work, though a few essential components are still missing, which makes it less usable at present. Please excuse any incorrect assumptions I may be making because I haven’t fully understand robotnix yet—feel free to correct me.
I’ve also noticed that the current Flake structure, while providing a clearer separation between library functions, modules, and packages, suffers from one major issue: everything is built in a single large derivation. This makes it difficult to leverage binary caches, which in turn keeps build times high.
I read the documentation at https://github.com/nix-community/robotnix/blob/master/docs/src/building.md#binary-cache, but quickly realized that the components required for that, listed in https://github.com/nix-community/robotnix/blob/master/release.nix#L53, appear to be missing.
I tried to trace the implementation in the repository (https://github.com/nix-community/robotnix/blob/master/modules/base.nix) based on your talks and took a closer look at Android’s Soong build architecture at https://source.android.com/docs/setup/build. Unfortunately, I couldn’t find the solutions you suggested in your talk in the repo, which makes me think there are reasons why they haven’t been pursued further.
My first idea was to abstract the components listed in https://github.com/nix-community/robotnix/blob/master/components.json into individual packages via a lib function for mkAndroid and mkAndroidComponent, so they could be made available as a binary cache. If this hasn’t been implemented yet only due to time or support constraints, it would be great to discuss it before I invest unnecessary effort and test my ideas—so I don’t fall into the same problems again.
If anyone here already has thoughts on these topics, feel free to share them. I’ll try to document and transfer them to a new docs page. During a ccc congress meetup we can then dive into the details together. | 16:29:05 |
atemu12 | Ah damn, that's still a leftover. All devices are supported | 19:18:06 |
atemu12 | As for building an unsupported device: just use build.dirs to add the required dirs | 19:18:42 |
atemu12 | The repo tooling is for automatically fetching them for all devices that are officially supported | 19:19:33 |