Sync Android Logo Task
Propagates the FG/BG layer PNGs to a complete Android launcher-icon resource tree. Source PNGs are treated as the icon as designed (fills the canvas like an iOS marketing icon). Non-square sources are aspect-fit, never stretched: the FG is contained (letterboxed) inside the safe zone, the BG covers the canvas (center-cropped).
Adaptive FG: source FG fit inside safeZoneRatio of the canvas.
Adaptive BG: source BG covers the 108dp canvas (parallax bleed).
Legacy fallback: BG cover + FG contain, at the legacy launcher size.
This is an installer into a user-owned Android source tree, so it is deliberately non-cacheable and always performs its validation. A checksum ownership manifest prevents overwriting or deleting user-authored files at generated paths.
Safety rails on every source-writing task
| Rail | Behaviour |
|---|---|
| Explicit only | never runs as part of an ordinary build; you invoke it by name |
| Authorized | the matching DSL block must be configured, or the task is skipped |
-Pkiteconfig.dryRun=true | reports what it would write and remove, changes nothing |
-Pkiteconfig.backups=true | keeps a recovery copy before replacing anything (default) |
| Ownership | refuses to overwrite or delete a file it does not own |
| Atomic | staged then swapped, so an interrupted run leaves the tree intact |
Both -P switches accept exactly true or false; anything else fails the build rather than being read as false.
Properties
Validated explicitly so configured-but-missing files receive actionable plugin diagnostics.
Compatibility surface for diagnostics/wiring; source-tree files are not Gradle task outputs.
False when no Android application module was selected or detected.