link.ra_source answers "who advertises IPv6 here, and which box is it": RA source per network, MAC recovered from the modified-EUI-64 link-local (privacy addresses reported as such, not guessed), vendor via a curated OUI table, UPnP/SSDP M-SEARCH for the gateway's server banner + device description (manufacturer/model/friendly name), and reverse DNS. All SSDP responders are recorded so a rogue RA sender that isn't the gateway can still be matched; the MAC accompanies every identity source as the hook for future LLDP/mDNS cross-matching. UI gains a "Router / IPv6 advertiser" panel. Icons: branding adaptive icon converted to vector drawables (+ PNG mipmaps, monochrome layer). The debug build is now a separate app — applicationIdSuffix .dev, label "Echolot DEV", DEV-badged icon — so it installs alongside a production build and can't be confused with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
18 lines
829 B
XML
18 lines
829 B
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- SPDX-License-Identifier: GPL-3.0-or-later
|
|
Adaptive-icon background: the brand "tile" gradient (assets/branding). -->
|
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:aapt="http://schemas.android.com/aapt"
|
|
android:width="108dp" android:height="108dp"
|
|
android:viewportWidth="108" android:viewportHeight="108">
|
|
<path android:pathData="M0,0h108v108h-108z">
|
|
<aapt:attr name="android:fillColor">
|
|
<gradient android:startX="54" android:startY="0" android:endX="54" android:endY="108"
|
|
android:type="linear">
|
|
<item android:offset="0" android:color="#FF0E2433"/>
|
|
<item android:offset="1" android:color="#FF071522"/>
|
|
</gradient>
|
|
</aapt:attr>
|
|
</path>
|
|
</vector>
|