Releases: johnpatrickroach/better-anonymity
v1.0.4 - Clean Setup (No Stderr Noise)
🎉 v1.0.4 - Silent Setup
Fixed
- Setup
bin/better-anonymity setupnow runs cleanly - no "weird outputs"- sysadminctl auth errors (interactive mode)
- defaults NAT/basename parsing fails
- launchctl "usage"/unload errors (mediaremoted)
- NFS
/etc/exports not found - AssetCache "already deactivated"
Changes
- All hardening commands idempotent (
|| true, checks) - Direct
execute_sudofor edge cases bypassing parsing bugs
Install
brew install better-anonymity/tap/better-anonymity
OR
pip install better-anonymity --upgrade
v1.0.3 - The Ironclad Network Update
What's New in v1.0.3
The Ironclad Network Update brings three highly anticipated legacy security features into the modern modular codebase, greatly expanding device anonymity and network-level defense natively on macOS.
This update introduces zero new dependencies, relying entirely on native macOS kernel tools and daemons for maximum performance and security.
🛡️ Hardware IP Firewall Blocklisting (pfctl)
- Native Threat Blocking: Added the
b-a firewall blocklistcommand which aggregates and injects threat intelligence IP lists (FireHOL, EmergingThreats, BinaryDefense) directly into the macOS Packet Filter (pfctl) kernel layer. - Dynamic Rule Mapping: Injects a persistent
<blocklist>table without polluting existing configurations. Completely reversible via dynamicpf.confflushing during uninstallation.
🌐 Aggressive Browser Hardening
- Automated Anti-Fingerprinting: Added the
b-a harden browsercommand to discover installed Firefox and LibreWolf profiles automatically. - Static
user.jsInjection: Surgically injects a highly restrictiveuser.jspayload designed to disable WebRTC, telemetry, safe browsing remote lookups, and fingerprinting vectors. - Resilient Backups: Automatically creates stamped
.oldbackups of your existinguser.jsandprefs.jsfiles for safe and clean restorations.
👻 Persistent MAC Address Spoofing
- Event-Driven Rotation: Redesigned the
b-a wifi auto-spoofLaunchDaemon to utilize native macOSWatchPaths. - Dynamic Triggers: The system now automatically rotates and cryptographically scrambles your Wi-Fi interface MAC address not just at boot, but securely upon sleep wakes and network state changes.
⚙️ Automation & Test Suite Fixes
- 100% Logic Test Pass Rate: Addressed deep execution traps and Mock-leakage within the headless bash testing framework. The tests/unit_logic.sh suite now runs cleanly end-to-end without hanging.
- Python Shim: Bumped the PyPI distribution to
1.0.3for universal package availability.
v1.0.2 – Installation Documentation Update
v1.0.2 – Installation Documentation Update
This patch updates the project documentation to clarify and simplify the installation process for end users.
📝 Documentation Updates
- Streamlined Installation Instructions: Updated the README.md to explicitly highlight that cloning the repository is no longer required for installation via package managers.
- Clearer Options: Separated installation paths into distinct, easy-to-read sections for Homebrew, PyPI (Pip), and Source Code.
To update via Python:
pip install --upgrade better-anonymity
To update via Homebrew:
brew upgrade better-anonymity
v1.0.1 – Production Distribution & Uninstallation Fixes
v1.0.1 – Production Distribution & Uninstallation Fixes
This patch release solidifies the CLI for production use via PyPI and Homebrew by ensuring that all components (including bash script assets) are bundled correctly across environments.
🐛 Bug Fixes
- Python Shim Pathing: Fixed an isolated environment issue where
pip install better-anonymitywould fail due to missing bash scripts. The.whlbundle now dynamically includes thebin/,lib/, andconfig/assets natively inside the Python package! - Homebrew Uninstallation: Fixed a bug where
better-anonymity uninstallwould fail to recognize a Homebrew installation. The CLI now gracefully detects standard Homebrew cellars and cleanly invokesbrew uninstall better-anonymityinternally. - PyPI Uninstallation:
better-anonymity uninstallnow recognizes standardpipinstallations and securely invokespip uninstall -y better-anonymityto remove its own CLI shims. - Defaults Read Noise: Silenced terminal noise generated by restore_default when resetting configuration variables without values.
🚀 Enhancements
- Global Package Manager Skip: Running
better-anonymity install clion a package manager installation (Homebrew/Pip) will now intelligently skip writing redundant wrapper scripts to/usr/local/binwhile continuing to append necessary.bashrc/.zshrcprofile aliases (torify,stay-connected, etc).
To update via Python:
pip install --upgrade better-anonymity
To update via Homebrew:
brew upgrade better-anonymity
v1.0.0 – Production‑Ready Better‑Anonymity CLI
v1.0.0 – Production‑Ready Better‑Anonymity CLI
Core Refactor
- Added native JSON configuration (
config/settings.json) with a newconfig_gethelper (Python 3 based) for fine‑grained module toggling. - Refactored
macos_hardening.shto respect the JSON flags, allowing users to enable/disable individual hardening actions.
Dependency Stability
- Pin‑locked the Arkenfox Firefox
user.jsinstaller to the128.0release tag, preventing breakage from upstream master changes.
Sudo Keep‑Alive
- Implemented a robust background sudo‑keepalive loop, eliminating password prompts during long‑running tasks.
Comprehensive Uninstaller
- Restores DNS, firewall, hostname, removes installed dependencies, scrubs alias blocks from
~/.zshrc/~/.bashrc, and wipes the~/.better-anonymitycache.
Documentation Updates
- Updated README and OS_HARDENING.md with a Configuration section, usage examples (
b-a harden), and clear install/update/uninstall instructions.
Live docs: https://github.com/johnpatrickroach/better-anonymity/blob/main/README.md and https://github.com/johnpatrickroach/better-anonymity/blob/main/docs/OS_HARDENING.md.
Test Coverage
- Added extensive unit tests for the new configuration parser covering missing files, missing keys, valid values, malformed JSON, and case‑insensitive output handling.
- All existing Bash unit tests (430+) continue to pass.
Quality Assurance
- Full test suite passes with 0 failures, confirming stability across the toolset.