# On Ubuntu/Debian sudo apt install opengrok universal-ctags OpenGrok needs a configuration.xml . Generate it via:
mkdir -p /var/opengrok/data,etc,logs,src # Link your AOSP source (avoid copying 100GB) ln -s /path/to/aosp /var/opengrok/src/aosp This step parses every symbol. For AOSP, this takes 1–2 hours and requires 32GB+ of RAM. xref aosp
java -Xmx32g -jar /opt/opengrok/lib/opengrok.jar \ -c /usr/bin/ctags \ -s /var/opengrok/src \ -d /var/opengrok/data \ -H -P -S -G \ -W /var/opengrok/etc/configuration.xml # On Ubuntu/Debian sudo apt install opengrok universal-ctags
For developers, finding the definition of a specific function—say, AudioFlinger::openOutput() —by manually grepping through a local repo can take minutes. For reviewers trying to understand a patch's impact across subsystems, it’s a nightmare. it’s a nightmare.