mobile-nixos
mobile-nixos copied to clipboard
Explore using halium as source for device information
- https://halium.org/
(I have local notes I need to file)
They have manifests with repositories:
- https://github.com/Halium/android/blob/halium-5.1/default.xml
- https://github.com/Halium/halium-devices/blob/halium-7.1/manifests/asus_flo.xml
They are for repo AFAIUI, the android tool to manage repositories. With some massaging and/or scripting, it may be possible to automate something with nix/nixpkgs and those XML files.
Their website seems to indicate they want to standardize some useful hardware. Though, there is a scary "android chroot" thing. I'm not sure whether it means full apps or only the minimal services to make the hardware work.
I'm interested in this, and decided to look into it. It seems like the idea with Halium is that you give it a rootfs tarball with systemd and lxc, pass it into Halium's build system, and it'll give you a complete image. I'm not sure how this should be properly integrated with NixOS, but reusing some of their code seems like a valid strategy at the very least.
Though, there is a scary "android chroot" thing. I'm not sure whether it means full apps or only the minimal services to make the hardware work.
I'm not 100% clear, but I think Halium works by having a heavily patched fork of Android with the sole goal of being able to run in an LXC container and provide binary drivers the environment they expect.
With hindsight, this (really early) issue conflates two goals:
- Source of absolute truths about devices (e.g. name, SoC, vendor kernel source)
- Using Halium to allow more complete use of vendor kernels
The former (source of absolute truths) is kind of not needed anymore. There isn't that much value we can't have in lots of other ways.
The latter might be helpful to better democratize access to non-android Linux userspaces.
Which of the goals were you interested in about this issue?
I was interested mainly in the latter.
Ah, then the current state for using Halium (or any other scheme) to allow usage of vendor kernel has not been explored at all yet.
It might be worthwhile to take a look at robotnix and see if it can be of any help in producing the containers.
It's been decided this is definitely a dead-end, as of now.
Though nothing stops an enterprising individual (or few) to try and make it work out, but it would still be quite the work, for a YMMV system :/.