And in **both**, the ground. This one is not a name or a byte but a
resolution: `<background>` is a reference, so the check asks `aapt2 dump
resources` what `mipmap/ic_launcher` is at `anydpi`, reads that file's
`<background>` id, maps the id back through the table, and requires
`drawable/ic_launcher_ground`; then it follows the two `fillColor` references
the `aapt:attr` blocks became and requires concept 04's six stops in them.
That is the check that catches a **stale APK** as well as a lost overlay —
`build.sh` pipes Gradle through `| tail -20 || true` and then runs
`ls -la "$APK"`, so a Gradle run that failed leaves the previous build's file
exactly where the next step looks for it, with every PNG in it still the
falcon's. Without aapt2 on the machine this half says `NOT CHECKED` and the
rest of the script still runs.

Both `build.sh` and `dev.sh` call it, so no APK this repo makes can quietly go
back to the old artwork. It cost about a second and a half on the 107 MB debug
APK before the ground was added; the ground is one `dump resources` and three
`dump xmltree` calls on top of that, measured at 0.3 s against that same real
APK — aapt2 reads `resources.arsc` and the entries it names, never the whole
file, so the cost does not grow with the APK. The release branch reuses the
same table rather than asking aapt2 for it twice.
