System Requirements & Compatibility

Here is the detailed requirement & compatibility specification for WRTune. We designed the app to be β€œplug-and-play” compatible with standard OpenWRT environments.

1. Official Firmware Only πŸ”—

For maximum stability and feature compatibility, we highly recommend using official OpenWrt releases.

  • Recommended Source: OpenWrt Firmware Selector
  • Supported Versions: OpenWrt 24.10.x.
  • Why Official? Community-built or vendor-modified β€œOpenWrt-based” firmwares often change internal API paths that WRTune relies on to give you accurate data.

2. Login Philosophy: One Account, Zero Friction πŸ”—

WRTune follows the official OpenWrt administrative standard.

  • Username: Must be root (Default).
  • Our Design Choice: You will notice there is no β€œUsername” field on our login screen. This is intentional. In line with our philosophy of Simple & Standard, we follow the default OpenWrt setup where root is the master administrator. This removes unnecessary configuration steps and gets you into your dashboard faster.

3. Service Dependencies πŸ”—

WRTune communicates with your router using the high-performance ubus (Micro Bus Architecture).

  • uhttpd / rpcd: These services must be running (they are enabled by default on 99% of OpenWrt installations).
  • Network Access: Your phone must be able to reach the router’s IP address. This works perfectly over Local Wi-Fi

Pro-Tip: Preparing your Router πŸ”—

Before connecting WRTune for the first time, ensure you have set a strong password for your root account via the LuCI web interface or SSH.


Optional: Advanced Features (Statistics & Management IP) πŸ”—

To unlock the full potential of WRTune (Traffic Statistics, Static IP management & Block Schedule, Hostname editing, and detailed System Health), you need to install a monitoring tool and grant permissions.

1. Access Your Router πŸ”—

Log in to your router via SSH (e.g., ssh root@192.168.1.1). This is the most secure way to manage your device directly.

2. Install & Configure Statistics Tools πŸ”—

We use nlbwmon & vnstat, a lightweight, industry-standard tool for bandwidth monitoring.

# Update package list and install nlbwmon & vnstat
opkg update
opkg install nlbwmon luci-app-nlbwmon vnstat2 vnstati2 luci-app-vnstat2

# --- CONFIGURE NLBWMON (PERSISTENT) ---
/etc/init.d/nlbwmon stop
mkdir -p /usr/lib/nlbwmon
uci set nlbwmon.@nlbwmon[0].database_directory='/usr/lib/nlbwmon'
uci set nlbwmon.@nlbwmon[0].commit_interval='24h'
uci set nlbwmon.@nlbwmon[0].generations='3'
uci commit nlbwmon
rm -rf /var/lib/nlbwmon /tmp/lib/nlbwmon
/etc/init.d/nlbwmon enable
/etc/init.d/nlbwmon start

# --- CONFIGURE VNSTAT (PERSISTENT) ---
/etc/init.d/vnstat stop
mkdir -p /usr/lib/vnstat
sed -i 's|;DatabaseDir "/var/lib/vnstat"|DatabaseDir "/usr/lib/vnstat"|' /etc/vnstat.conf
sed -i 's/;SaveInterval 60/SaveInterval 60/' /etc/vnstat.conf
[ -d "/var/lib/vnstat" ] && cp -r /var/lib/vnstat/* /usr/lib/vnstat/ 2>/dev/null
/etc/init.d/vnstat enable
/etc/init.d/vnstat start

verify vnstat select correct WAN interface via OpenWRT dashboard (Status > Traffic monitor > Configuration > Monitor Interface)

3. Grant Permissions πŸ”—

Create a comprehensive security rule (ACL) to allow WRTune to visualize stats and manage settings. This script grants permissions for:

  • /usr/sbin/nlbw & /usr/bin/vnstat: Bandwidth Monitoring (allows fetch data from nlbwmon and vnstat).
  • /sys/class/thermal/*/temp: Device Temperature (allows reading CPU heat levels).
  • /proc/loadavg: System Load (allows reading CPU usage metrics).
  • /proc/meminfo: Memory Usage (allows reading RAM availability).
  • write -> uci & ubus: Configuration Management (allows creating Static IPs, editing Hostnames, and saving settings).
# copy this script to your router via SSH
cat <<EOF > /usr/share/rpcd/acl.d/ubus_access.json
{
    "ubus_access": {
        "description": "WRTune permissions for stats and management",
        "read": {
            "file": { 
                "/usr/sbin/nlbw": [ "exec" ],
                "/usr/bin/vnstat": [ "exec" ],
                "/sys/class/thermal/*/temp": [ "read" ],
                "/proc/loadavg": [ "read" ],
                "/proc/meminfo": [ "read" ]
            },
            "uci": [ "*" ],
            "ubus": { "*" : [ "*" ] }
        },
        "write": {
            "uci": [ "*" ],
            "ubus": { "*" : [ "*" ] }
        }
    }
}
EOF

# Apply the new permissions
/etc/init.d/rpcd restart

Note: Minimum Permissions for Internet Blocking

If you do not need the advanced statistics mentioned above and only want the blocking internet feature to work flawlessly, you can skip the statistics tools installation and apply this minimum permission script instead:

# copy this script to your router via SSH
cat <<EOF > /usr/share/rpcd/acl.d/ubus_access.json
{
    "ubus_access": {
        "description": "WRTune blocking internet feature",
        "read": {
            "uci": [ "*" ],
            "ubus": { "*" : [ "*" ] }
        },
        "write": {
            "uci": [ "*" ],
            "ubus": { "*" : [ "*" ] }
        }
    }
}
EOF

# Apply the new permissions
/etc/init.d/rpcd restart

4. Re-Login Required πŸ”—

After applying these changes, Log Out and Log In again in the WRTune app to refresh your permissions. if found any feature still disable, do try re-login again.


Optional: AdGuard Home Integration πŸ”—

Connect your AdGuard Home instance to manage DNS filtering directly from WRTune.

Prerequisites πŸ”—

  • Active Instance: AdGuard Home running on your network (OpenWRT/Pi). Need help setting this up? Read our guide on Installing AdGuard Home on OpenWrt.
  • Credentials: Server URL, Username, and Password.

Setup πŸ”—

Navigate to Settings > DNS Control > AdGuard Home Server, enter your credentials, and enable the feature.

Features πŸ”—

  • Quick Control: Toggle protection or disable temporarily.
  • Insights: View real-time stats, top queried/blocked domains.
  • Management: Manage clients, filtering rules, and view query logs.

Note on Service Blocking πŸ”—

WRTune does not block services itself; it sends requests to your AdGuard Home instance.

If blocking fails, please:

  1. Inspect your AdGuard Home settings dashboard.
  2. Test blocking manually in Settings > Client Settings on the AdGuard Home dashboard.

Privacy & Security Guarantee πŸ”—

  • Local Processing: WRTune reads the data generated by your router. All analysis and visualization happen locally on your phone.
  • No Cloud: Your traffic data is never sent to external servers or developers.
  • Open Source Roots: This feature is built on the official nlbwmon package and vnStat, trusted by the global OpenWrt community.