|
37 | 37 |
|
38 | 38 | ## Features |
39 | 39 |
|
40 | | -- Changes take effect immediately via Atmosphere's IPC reload (no reboot) |
| 40 | +### DNS Hosts Manager |
| 41 | +- Toggle Nintendo server blocks on/off with changes applied immediately (no reboot) |
41 | 42 | - Entries grouped by category: Telemetry, System Updates, Game Content, eShop |
42 | | -- Color-coded status indicators (red/green) |
43 | | -- Atomic file writes (tmp + rename) to prevent corruption |
44 | | -- Auto-detects which hosts file to use (emummc > sysmmc > default) |
45 | | -- Confirmation dialog if you try to quit with unsaved changes |
46 | | -- Quick-apply profiles: block all, allow game updates, telemetry only, allow all |
| 43 | +- Quick-apply profiles: Block All, Allow Game Updates, Telemetry Only, Allow All |
47 | 44 | - Built-in connectivity test that TCP pings each host on port 443 |
48 | | -- Toast notifications for save/reload/error feedback |
49 | | -- Scrollbar, alternating row colors, rounded UI elements |
| 45 | +- Auto-detects which hosts file to use (emummc > sysmmc > default) |
| 46 | +- Atomic file writes to prevent corruption |
| 47 | + |
| 48 | +### Atmosphere Settings Manager |
| 49 | +- Toggle verified `system_settings.ini` overrides from a UI (reboot required to apply) |
| 50 | +- All settings sourced from Atmosphere's `settings_sd_kvs.cpp` -- nothing unverified |
| 51 | +- Categories: Network (DNS MITM controls), Telemetry (error uploads), Homebrew (cheats, debug mode, bluetooth DB) |
| 52 | +- Preserves existing comments and manual edits in your INI file |
| 53 | +- Safe for sysnand online play -- all overrides are local only |
| 54 | + |
| 55 | +### Atmosphere Release Checker |
| 56 | +- Fetches the latest Atmosphere release from GitHub in a background thread |
| 57 | +- Shows your current firmware and Atmosphere versions side by side |
| 58 | +- Compares against the latest release and tells you if an update is available |
| 59 | +- Extracts supported firmware version from release notes |
| 60 | +- Scrollable release notes viewer |
50 | 61 |
|
51 | 62 | ## Controls |
52 | 63 |
|
|
58 | 69 | | X | Open profiles menu | |
59 | 70 | | Y | Save & reload DNS | |
60 | 71 | | L | Run server connectivity test | |
| 72 | +| R | Atmosphere settings | |
61 | 73 | | - | Seed default Nintendo entries | |
62 | 74 | | + | Quit (with unsaved changes check) | |
63 | 75 |
|
| 76 | +**Settings Screen:** A Toggle | Y Save | X Release Checker | B Back |
| 77 | + |
| 78 | +**Release Checker:** A Refresh | B Back | Up/Down scroll notes |
| 79 | + |
64 | 80 | ## Installation |
65 | 81 |
|
66 | 82 | 1. Download `AetherBlock.nro` from the [latest release](https://github.com/hexbyt3/AetherBlock/releases/latest) |
|
69 | 85 |
|
70 | 86 | ## Building |
71 | 87 |
|
72 | | -Requires [devkitPro](https://devkitpro.org/) with `switch-dev`, `switch-sdl2`, `switch-sdl2_ttf`, and `switch-freetype`. |
| 88 | +Requires [devkitPro](https://devkitpro.org/) with the following packages: |
73 | 89 |
|
74 | 90 | ```bash |
75 | | -(dkp-)pacman -S switch-dev switch-sdl2 switch-sdl2_ttf switch-freetype |
| 91 | +(dkp-)pacman -S switch-dev switch-sdl2 switch-sdl2_ttf switch-freetype switch-curl switch-jansson switch-mbedtls switch-zlib |
76 | 92 | make |
77 | 93 | ``` |
78 | 94 |
|
79 | 95 | ## How It Works |
80 | 96 |
|
81 | | -AetherBlock reads and modifies Atmosphere's hosts file at `/atmosphere/hosts/default.txt`. Entries prefixed with `;` are disabled. Active entries redirect hostnames to `127.0.0.1`. |
| 97 | +**DNS Hosts:** Reads and modifies Atmosphere's hosts file at `/atmosphere/hosts/default.txt`. Entries prefixed with `;` are disabled. After saving, it calls Atmosphere's IPC command 65000 on `sfdnsres` to reload the hosts file in memory -- no reboot needed. |
82 | 98 |
|
83 | | -After saving, it calls Atmosphere's IPC command 65000 on `sfdnsres` to reload the hosts file in memory. |
| 99 | +**System Settings:** Reads and modifies `/atmosphere/config/system_settings.ini`. Atmosphere parses this file at boot and overrides the corresponding system settings via its set:sys mitm service. Changes here require a reboot to take effect. |
84 | 100 |
|
85 | | -The connectivity test does non-blocking TCP connects on port 443, one host per frame so the UI stays responsive. |
| 101 | +**Release Checker:** Hits the GitHub API (`/repos/Atmosphere-NX/Atmosphere/releases/latest`) on a background thread and parses the JSON response with jansson. Reads local Atmosphere version via `splGetConfig` with config item 65000. |
86 | 102 |
|
87 | 103 | ## Credits |
88 | 104 |
|
89 | 105 | - DNS reload mechanism via [DNS-MITM_Manager](https://github.com/znxDomain/DNS-MITM_Manager) by znxDomain |
90 | 106 | - Server list from [NintendoClients Wiki](https://github.com/kinnay/NintendoClients/wiki/Server-List) |
91 | | -- Built with [libnx](https://github.com/switchbrew/libnx) and [SDL2](https://www.libsdl.org/) |
| 107 | +- Settings verified against [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere) source (`settings_sd_kvs.cpp`) |
| 108 | +- Built with [libnx](https://github.com/switchbrew/libnx), [SDL2](https://www.libsdl.org/), [libcurl](https://curl.se/libcurl/), and [jansson](https://github.com/akheron/jansson) |
92 | 109 |
|
93 | 110 | ## License |
94 | 111 |
|
|
0 commit comments