• 2.0-32 c9f6349bb3

    amnesia released this 2026-07-15 23:11:42 +02:00 | 11 commits to main since this release

    lainos-utils-2.0-32 ~ 2026-07-15

    Added

    • tor-tunnel ~ new binary providing tor1/tor2/tor3/tor4:
      four dedicated, isolated Tor circuits, matching the wg-vpn/wg1-wg4
      WireGuard tunnel model exactly (tor-tunnel installed once, symlinked
      as tor1-tor4, dispatching on its own invoked name the same way
      wg-vpn does). torrc now defines SocksPort 9050 (default,
      IsolateDestAddr IsolateDestPort added) plus four additional
      isolated ports (9052-9055), each paired with its own
      torsocks-torN.conf. One command works identically across every
      application type:
      • Plain CLI tools and GTK apps (curl, Gajim, Dino) ~ routed via torsocks.
      • Electron/Chromium apps (Signal, Element) ~ auto-detected (via
        app.asar/resources bundle detection, following exec targets
        inside wrapper scripts, or an Electron/x.y.z binary marker) and
        routed instead via Chromium's own --proxy-server flag, since
        torsocks's LD_PRELOAD interception never reaches Electron's
        sandboxed renderer-process networking.
      • Detected Electron apps also get LD_PRELOAD stripped automatically
        (alacritty's forced hardened_malloc wrapper otherwise gets inherited
        and crashes some Electron apps -- confirmed with Signal, which
        aborted with fatal allocator error: invalid uninitialized allocator usage until this was added) and XDG_CURRENT_DESKTOP overridden to
        GNOME (Chromium's keyring/safeStorage backend detection doesn't
        recognize sway, incorrectly reporting "no supported keyring
        backend" even when gnome-keyring-daemon's Secret Service is
        genuinely available -- confirmed and fixed with Element).
      • Firefox-based browsers (LibreWolf) are a confirmed, documented
        exception -- torsocks is unreliable for Firefox's multi-process
        networking; native proxy configuration is the correct approach
        instead, documented in the user guide.
    • ram-wipe ~ new toggle command for the shutdown-time RAM wipe
      (ram-wipe enable|disable|status), controlling the wiperam=skip
      kernel cmdline flag via GRUB. Continuous protection (init_on_alloc=1/
      init_on_free=1) is unaffected by this toggle -- it's always on. The
      actual dracut module this toggles lives in the separate
      lainos-ram-wipe package, ported from Kicksecure/Whonix's ram-wipe.
      Not yet visually confirmed working -- correctly installed and
      baked into the initramfs, multiple reboots completed cleanly with it
      active, but the actual on-screen shutdown message could not be
      confirmed visible on Sway/wlroots hardware during testing (see the
      user guide for details).
    • LESME's connect instructions updated to tor1 profanity -a ...,
      isolating it from any other Tor traffic by default.

    Verified

    • Exit-IP comparison (curl through 9050 vs. 9052) confirmed genuinely
      different circuits/exit relays between ports -- isolation is real, not
      just correctly configured.
    • Live-tested against Signal, Element, Gajim, Dino, and LESME/Profanity;
      all four confirmed working end-to-end.

    Fixed

    • SocksPort bug caught during testing: adding an isolated SocksPort
      line without also explicitly listing the default port removes the
      default entirely (Tor only opens the implicit default when no
      SocksPort lines are present at all) -- silently breaking any existing
      default-port usage. Both the default and all isolated ports are now
      listed explicitly in torrc.
    Downloads
  • 2.0-18 46618bd0e4

    amnesia released this 2026-07-11 17:53:48 +02:00 | 20 commits to main since this release

    lainos-utils ~ Changelog (2.0-10 through 2.0-18)

    New Tools

    • snowflake (renamed from lainos-snowflake) ~ toggle to enable/disable the Snowflake pluggable transport bridge, disguising Tor traffic. Writes a working bridge configuration on first use, toggles it on subsequent runs.
    • obfs4 (renamed from lainos-obfs4) ~ same pattern, for the obfs4 pluggable transport.
    • wifi-toggle ~ full on/off control of WiFi: stops/starts iwd and blocks/unblocks the radio at the hardware level via rfkill, so "off" means the radio is actually inactive, not just disconnected.
    • wifi-autostart (renamed from lainos-wifi-autostart) ~ controls whether iwd starts automatically at boot.
    • lainos-sdwdate (renamed from lainos-sdwdate-toggle) ~ toggle between chrony (default) and sdwdate (Tor-based time sync).
    • lainos-privacy-help ~ opens a new, dedicated privacy guide for sensitive work sessions, installed to /usr/share/lainos/lainos-privacy-guide.md.

    Behavior Changes

    • lainos-secure-messaging (LESME) no longer writes obfs4 bridge configuration. Previously appended bridge lines to /etc/tor/torrc unconditionally on every run, with no duplicate-check, and no coordination with the new obfs4/snowflake toggles. Bridge configuration is now handled exclusively by obfs4/snowflake, avoiding two independent mechanisms managing overlapping torrc state. LESME still disables Tor from starting at boot and stops it, as before.

    Bug Fixes

    • snowflake: fixed hardcoded binary path (/usr/bin/snowflake-client, which doesn't exist) to the correct /usr/bin/snowflake-pt-client, found via a live crash loop visible in nyx (Tor repeatedly failing to launch the managed proxy).
    • snowflake/obfs4: fixed a sed logic bug in both scripts' enable/disable toggling that stripped the # from the block's START/END marker lines themselves, not just the configuration lines between them. This corrupted torrc into an invalid state (Unknown option '---') and prevented Tor from starting at all. Fixed and verified through full enable/disable/enable cycles on both scripts.
    • lainos-sdwdate: removed set -e, which caused the script to exit early whenever rc-service status returned a non-zero exit code for a stopped service (normal, expected behavior).
    • kloak: fixed the wrapper script self-referencing itself via a bare doas kloak PATH lookup instead of calling /usr/bin/kloak directly.

    Documentation

    • User guide updated: new "Pluggable Transports ~ Bridges," "Time Sync ~ sdwdate," and "Privacy Guide for Sensitive Work" sections; WiFi section updated with wifi-toggle/wifi-autostart; stale note about LESME auto-configuring obfs4 removed.
    • New dedicated Privacy Guide for Sensitive Work, with a visual diagram and a specific command sequence (start Tor/bridge → sdwdate → WiFi radio on → connect) ordered so time sync and Tor are both already running before the network interface ever comes up.
    • Integrated the main user guide into the package (previously referenced by lainos-help but the file didn't exist).
    • Documented lainos-hardened-malloc, lainos-help, and lainos-sdwdate in the README's utility table.
    Downloads
  • v2.0-10 a9811e04f5

    v2.0-10 Stable

    amnesia released this 2026-07-10 18:12:21 +02:00 | 24 commits to main since this release

    lainos-utils ~ Changelog

    New Features

    • Added lainos-sdwdate ~ toggle script to switch between chrony (plaintext NTP, always available) and sdwdate (Tor-based, fingerprint-resistant time sync; requires Tor to be running, no fallback if Tor is unreachable). chrony remains the default; sdwdate is an explicit, deliberate opt-in.
      lainos-sdwdate enable    # switch to Tor-based sync
      lainos-sdwdate disable   # switch back to chrony (default)
      lainos-sdwdate status    # show which is active + current time
      

    Bug Fixes

    • lainos-sdwdate: removed set -e, which caused the script to exit early whenever rc-service status returned a non-zero exit code for a stopped service (normal, expected behavior) instead of continuing through all status checks.
    • kloak: fixed the wrapper script self-referencing itself via a bare doas kloak PATH lookup instead of calling /usr/bin/kloak directly, causing repeated re-invocation and a doas: Operation not permitted failure.

    Documentation

    • Integrated the LainOS Layer 02 user guide into the package, installed to /usr/share/lainos/lainos-layer02-user-guide.md, matching the path lainos-help already expected.
    Downloads
  • v2.0-8 aa1d6e27fa

    v2.0-8 Stable

    amnesia released this 2026-07-09 20:52:35 +02:00 | 28 commits to main since this release

    lainos-utils ~ 2.0-8 Changelog

    Bug Fixes

    • Fixed kloak wrapper script self-referencing itself. The wrapper at lainos-utils/kloak called doas kloak -d 123 -r "$KEYBOARD", which resolved to itself via PATH lookup instead of the real kloak-git binary at /usr/bin/kloak, causing repeated re-invocation and a doas: Operation not permitted failure. Fixed to call /usr/bin/kloak explicitly by full path.
    Downloads
  • v2.0-5 7664538fc1

    v2.0-5 Stable

    amnesia released this 2026-07-07 17:02:11 +02:00 | 30 commits to main since this release

    lainos-utils 2.0-5

    wifi-scan

    • Added [d] Disconnect option to network selection menu
    • Runs iwctl station <iface> disconnect and exits cleanly
    Downloads
  • v2.0-3 72cc699022

    v2.0-3 Stable

    amnesia released this 2026-07-02 20:54:58 +02:00 | 31 commits to main since this release

    lainos-utils Changelog

    2.0-3 (2026-07-02)

    wg-vpn

    • Added WireGuard VPN tunnel manager script
    • Symlinked to wg1, wg2, wg3, wg4 (up) and wg1d, wg2d, wg3d, wg4d (down)
    • Supports up to 4 simultaneous tunnel configurations
    • Requires WireGuard configs at /etc/wireguard/wgX.conf

    2.0-2 (2026-07-01)

    wifi-scan

    • Replaced free-text SSID prompt with numbered network selection menu
    • Fixed SSID parsing to correctly strip the > active-network marker and trailing security/signal columns from iwctl output
    • Added ANSI color code stripping for reliable column parsing

    2.0-1 (initial)

    • Initial release
    • Includes: torctl, kloak, wifi-scan, ani-cli, brightness, virtman
    Downloads
  • v2.0.1 d0d7ce93f0

    v2.0 Stable

    amnesia released this 2026-06-30 20:33:27 +02:00 | 34 commits to main since this release

    lainos-utils Changelog

    2.0-2 (2026-06-30)

    wifi-scan

    • Replaced free-text SSID prompt with numbered network selection menu
    • Fixed SSID parsing to correctly strip the > active-network marker and trailing security/signal columns from iwctl output
    • Added ANSI color code stripping for reliable column parsing
  • v2.0 d0d7ce93f0

    v2.0 Stable

    amnesia released this 2026-06-30 00:38:14 +02:00 | 34 commits to main since this release

    lainos-utils 2.0 (2026-06-29)

    kloak:

    • Auto-detects keyboard device — no longer hardcoded to PS/2 path
    • Automatically loads uinput kernel module before starting
    • Now works on all systems regardless of keyboard type (PS/2 or USB)

    wifi:

    • New and improved hardware auto-detecting wifi script
    • Open a terminal and type wifi to scan available networks
    • Type the first 3 letters of your network, press tab, hit enter
    • Enter your password to connect
    Downloads