• v3.1.1-ekaii.1 8a88a0cb7d

    v3.1.1-ekaii.1 — adds upstream PR #74 vendor-OUI mimicry
    Some checks failed
    CI / Build Packages (push) Failing after 5s
    Stable

    admin_ekaii released this 2026-05-25 17:27:25 +00:00 | 0 commits to ekaii since this release

    Adds vendor-OUI mimicry on top of v3.1.0-ekaii.1.

    New helpers (cherry-picked from upstream PR #74, pasterbele)

    • GENERATE_BSSID_MIMIC picks an OUI from 6 known routers (TP-Link, Cisco, Netgear, Asus, Linksys, D-Link).
    • GENERATE_PHONE_MAC_MIMIC picks an OUI from 12 popular smartphones (Apple, Samsung, Xiaomi, Huawei, LG, Sony, OnePlus, Google, Motorola, Oppo, Vivo, Nokia).
    • UNICAST_MAC_GEN now defaults to phone-vendor mimic; UNICAST_MAC_GEN_RANDOM_LA preserves the P1 RFC 7042 LA-bit-set strategy for callers that want it.

    Trade-off note

    The two MAC strategies are DIFFERENT, not complementary:

    • Vendor-mimic (default in this release): defeat 'this OUI is unknown' filters by claiming a real-vendor prefix.
    • Random-LA (alternate): defeat 'this MAC claims a vendor OUI but doesn't match their pattern' filters by being honest about being randomised.

    SHA-256

    1eb9e9abc7d86539894a68e21d83064a5b4c2a053d10e187b01bc96955882026

    Diff vs v3.1.0-ekaii.1

    2 commits: feat(mac) cherry-pick of PR #74 + build(makefile) version bump.

    Diff vs upstream v3.0

    8 commits: 5 bug fixes (P1-P5) + 1 vendor-mimic feature + 2 Makefile bumps. See git log v3.0..v3.1.1-ekaii.1.

    Downloads
  • v3.1.0-ekaii.1 6cedbd22ef

    v3.1.0-ekaii.1 — Phase-1 patches over upstream v3.0
    Some checks failed
    CI / Build Packages (push) Failing after 22s
    Stable

    admin_ekaii released this 2026-05-25 17:18:21 +00:00 | 3 commits to ekaii since this release

    Personal/Frederic-hardened build of srlabs/blue-merle v3.0 with Phase-1 patches.

    For Mudi (GL-E750) and Mudi V2 (GL-E750V2) on firmware 4.3.x. Not for Mudi 7 (use exo/blue-merle-mudi7 for that).

    Five bug fixes (each a standalone cherry-pickable commit)

    # Commit Closes
    P1 fix(mac): set locally-administered bit on randomised MAC AUDIT bug #1 — random MAC was identifiable as blue-merle output (unicast & LA=0)
    P2 fix(mac): persist glconfig.macclone_addr across reboots AUDIT bug #2uci set glconfig.* set but never committed
    P3 fix(generator): use random.choices for IMEI tail entropy AUDIT bug #3random.sample capped tail at 151k unique values (re-introduces upstream PR #64, accidentally reverted by #70)
    P4 fix(validate_imei): off-by-one in Luhn AUDIT bug #4 — canonical example 490154203237518 returned False
    P5 fix(set_imei): settle delay + retry + body-level compare AUDIT bug #5 — read-back raced the EFS flush; brittle byte-equality

    Install

    MUDI=root@192.168.8.1
    ssh $MUDI 'gl_modem AT AT+GSN' | tee ~/factory-imei.txt   # CRITICAL: keep this
    scp -O blue-merle_3.1.0-ekaii.1-240715.80058_mips_24kc.ipk $MUDI:/tmp/
    ssh $MUDI 'opkg install /tmp/blue-merle_3.1.0-ekaii.1-240715.80058_mips_24kc.ipk'
    ssh $MUDI 'blue-merle'
    

    Built with the OpenWrt 23.05.4 ath79/generic SDK against upstream tag v3.0.

    SHA-256

    3ce97eff2a97a356268d49165746decd2ec61ca3fba6fb65d322881ed4552954

    Diff vs upstream v3.0

    See git log v3.0..v3.1.0-ekaii.1 in this repo. 5 fix commits + 1 Makefile bump.

    What's NOT in this build

    • Mudi 7 (E5800) support → see forgejo.ekaii.fr/exo/blue-merle-mudi7
    • Factory-IMEI runtime restore CLI → philosophical disagreement with upstream (originals.py lives in the Mudi 7 fork only)
    • BSSID vendor-realistic OUI selection → upstream PR #74 (pasterbele) addresses this and we don't want to overlap
    Downloads