Based on NFC Reader of mueller-ma, which in turn is based on nfc-reader by nadam.
Compilation requires the Nix package manager (but not NixOS). From a checkout, simply execute:
NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-build
If you don't want to bother with a checkout, use:
NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-build https://github.com/iblech/NFCPlayer/archive/main.tar.gz
The compilation is hermetic (does not access the internet and is independent
from locally installed packages) and bit-for-bit reproducible. The resulting
APK file and booklet PDF will then reside in the result directory. In the
default configuration, as of commit d07b96beaac9d32d48c09404a8374a22536e1fdb
with the nixpkgs collection of NixOS 25.11.1948.c6f52ebd45e5, their sha256 hashes are:
1c26d6d694003af3cac3b0136daa3df92b38c4edc676e386fb77bb9c5bfc3971 booklet.pdf
fb7a3d0d27f5f1636b1b6e519f5c35de5549dba9c3b7aa5bae4711f1ec681140 nfcplayer.apk
Put your favorite songs in assets.nix.
If you want to avoid a Git checkout and still provide your own assets file, use:
NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-build https://github.com/iblech/NFCPlayer/archive/main.tar.gz --arg assets "$(cat ./own-assets.nix)"
This has been tested with the package collection from NixOS 25.11. To force this collection to be used, use:
NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-build -I nixpkgs=https://nixos.org/channels/nixos-25.11/nixexprs.tar.xz
I used the NFC tags from here.