The mark is fixed; only the tile behind it changes. Each row is one candidate ground shown at launcher framing (the inner 72dp of the 108dp canvas) and then dropped onto six wallpapers — dark, warm, light, vivid, true black, mid grey. True black is the case that broke `G1`: a near-black tile on an AMOLED black wallpaper has no edge at all, so the icon stops being an icon and becomes a floating bird. The body colour follows the ground automatically: bone on dark grounds, ink on light ones, so contrast is never left to chance.
Because "the app's colour" isn't one colour. The UI runs a three-rung ladder — bg
#0b0c0e, panel #101216, line #22262d — and G1, G2 and G5
are all on it. So lifting the tile doesn't leave the palette; it just picks a different rung.
Contrast ratio against a true-black wallpaper is printed under each: G2 is 1.12:1, which
is the same nothing as G1's 1.07:1. G5 is the first rung that produces an edge, and it's the
app's own hairline colour.
The other half of the answer: a launcher tile isn't an app surface. In the app, panel sits on bg and the contrast is internal and controlled. On a home screen the tile competes with whatever wallpaper is behind it, so matching an in-app value isn't automatically right.
And there is no free rung — the numbers below run opposite ways. Lifting the ground buys
an edge on black and costs one on light and mid-grey wallpapers, where a darker tile is the thing
that separates. G1 is best on grey (5.12:1) and worst on black (1.07:1); G6 reverses it. So this
isn't "how dark can we get away with", it's which wallpaper you'd rather the icon lose on. G5
#22262d is the compromise that is also still a palette token.