| 2 Jan 2025 |
atemu12 | (I think you'd know more about embedding gapps into AOSP than I do given you've worked in the industry :) ) | 17:22:09 |
oak 🏳️🌈♥️ | Yeah they did it in one project in the past but I don't have access to the project's Android tree anymore so I could check how it was done | 17:22:54 |
oak 🏳️🌈♥️ | It looks like you just need to unzip the GApps bundle, and copy some files to right places during the build | 17:25:42 |
oak 🏳️🌈♥️ | and remove few apps from the build if you don't want to have two Contacts, Calendar, etc. apps | 17:27:13 |
atemu12 | I'm sure there's a pre-made vendor/gapps module somewhere | 17:27:36 |
countoren | do we have way right now to change init.rc on the device? | 18:50:42 |
countoren | from a module in robotnix? | 18:50:58 |
atemu12 | I'm sure there is | 19:02:16 |
atemu12 | But not from robotnix itself | 19:02:32 |
oak 🏳️🌈♥️ | You could patch how the init.rc is being built from the source files | 20:25:30 |
oak 🏳️🌈♥️ | IIRC init.rc or at least some of those configuration files are generated by combining mulitple source files from Android source tree | 20:27:32 |
atemu12 | Generally with most of this stuff the answer is yes because all we really do is wrap the AOSP build process in a Nix drv | 20:28:11 |
atemu12 | You first gotta figure out how to do it with AOSP and then just inject that declaratively via robotnix | 20:28:31 |
countoren | yes that will be one way, but if you would like to add custom configurations/services we might want something like robotnix.rc that will be written from the expression directly | 20:30:13 |
atemu12 | Sure, feel free | 20:30:34 |
atemu12 | to build that | 20:30:39 |
countoren | I might go to this direction | 20:30:59 |
atemu12 | There's precedent for stuff like this in e.g. the webviews | 20:31:01 |
countoren | not 100% sure | 20:31:05 |
atemu12 | Or system APK handling | 20:31:10 |
atemu12 | I'd recommend you try to do it via a Magisk overlay first though for quicker iteration | 20:31:35 |
countoren | the cool thing about that you will be able to cross compile you own services if you want and just run them from robotnix.rc | 20:32:21 |
oak 🏳️🌈♥️ | Usually with Android it's not that easy, or I mean you need to provide build scripts on how to build the thing as part of the Android tree | 20:33:29 |
countoren | at work for me it was as straightforward as that | 20:34:13 |
countoren | and I am able to access wifi, serial from the service without any other config | 20:34:58 |
countoren | using crossPkgs, pkgsStatic | 20:36:03 |
oak 🏳️🌈♥️ | Properly packaging a native low-level Linux-daemon for Android is a process which involves multiple kinds of steps, for example you need to provide the necessary SELinux policy in addition to other things | 20:36:26 |
countoren | yes we had to do that too | 20:37:13 |
oak 🏳️🌈♥️ | Builds done with pkgsStatic won't use the Android's bionic libc, but instead something that is provided by nixpkgs, statically built into the binary | 20:37:52 |
atemu12 | nix-daemon when? | 20:38:23 |