Nano Banana Pro
Agent skill for nano-banana-pro
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This repository builds custom GrapheneOS images using Nix via the robotnix framework. It contains:
robotnix/ - Git submodule containing the robotnix build systemcustom-build/ - Custom GrapheneOS configuration with Firefox (Fenix) preinstalledBuild the image (from
custom-build/ directory):
nix build .#img # Bootable image zip for fastboot update nix build .#factoryImg # Factory image with radio/bootloader nix build .#ota # OTA zip for adb sideload
Build with signed keys (requires sandbox exception):
nix-build --arg configuration ./configuration.nix -A img \ --option extra-sandbox-paths /keys=$(pwd)/keys
Generate signing keys:
nix-build --arg configuration ./configuration.nix -A generateKeysScript -o generate-keys ./generate-keys ./keys
Robotnix Module System: Uses NixOS-style modules to compose Android builds. Key components:
flavors/ - Android distribution flavors (grapheneos, lineageos)modules/ - Feature modules (signing, apps, kernel, etc.)apks/ - Nix expressions for building/fetching APKsConfiguration Flow:
flake.nix calls robotnix.lib.robotnixSystem with configurationdefault.nix which loads all modulesCustom Build Structure (
custom-build/):
flake.nix - Defines robotnix configuration and exposes build outputsconfiguration.nix - Device/flavor settings and prebuilt appsapks/fenix/ - Nix expression to fetch Firefox APK{ device = "caiman"; # Pixel device codename flavor = "grapheneos"; # grapheneos or lineageos signing.enable = true; # Enable for production builds signing.keyStorePath = "/path/to/keys"; ccache.enable = true; # Faster rebuilds (needs sandbox config) apps.prebuilt.<name> = { apk, privileged, packageName, ... }; }
Supported GrapheneOS devices: akita, barbet, bluejay, bramble, caiman, cheetah, comet, coral, felix, flame, husky, komodo, lynx, oriole, panther, raven, redfin, shiba, sunfish, tangorpro, tegu, tokay
apps.prebuilt.MyApp = { enable = true; apk = pkgs.fetchurl { url = "..."; sha256 = "..."; }; certificate = "PRESIGNED"; # Or path to signing cert packageName = "com.example.app"; privileged = false; # true for system privileges partition = "product"; # product, system, or vendor };
/tmp must NOT be tmpfs (intermediate builds are huge)CONFIG_USER_NS)/var/cache/ccache to nix.settings.sandbox-pathscachix use robotnix # Provides pre-built kernels and browser builds