dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A Clash/meow Android client with a native Jetpack Compose UI, powered by meow-rs and lwip-based tun2socks.
An iOS port is in public beta — see madeye/meow-ios.
Untested builds of the latest main (arm64-v8a) are attached as the meow-arm64-v8a-apk artifact of each APK workflow run. Each one is signed with a throwaway key, so uninstall any other Meow build before installing it.查看完整 README ↗A Clash/meow Android client with a native Jetpack Compose UI, powered by meow-rs and lwip-based tun2socks.
An iOS port is in public beta — see madeye/meow-ios.
Untested builds of the latest main (arm64-v8a) are attached as the meow-arm64-v8a-apk artifact of each APK workflow run. Each one is signed with a throwaway key, so uninstall any other Meow build before installing it.
Compose UI (Kotlin)
| ViewModels over StateFlow; OkHttp to the engine's loopback API
v
Android Native (Kotlin)
| VpnService + AIDL IPC
| JNI (System.loadLibrary)
v
Rust FFI (libmeow_android_ffi.so)
| lwip netstack tun2socks
| Per-socket VpnService.protect() via JNI
v
meow-rs (Cargo dependency)
| Tunnel, Config, Proxy, API
v
Network
simple-obfs (HTTP/TLS) and v2ray-plugin
(WebSocket, optional TLS) — no external SIP003 binary requiredlwip crate)119.29.29.29 and 223.5.5.5
over TCP. To use the profile's DNS settings (including supported DoT/DoH
upstreams), turn off Settings > Network > Built-in DNS; a running VPN
switches over without reconnecting, keeping its fake IPs.
An explicitly saved choice is preserved, and every query type (A/AAAA,
HTTPS, TXT, MX, PTR, …) uses the chosen upstreams. Profile mode falls
back to the built-in pool on configuration-load failure, not on later
query timeouts.VpnService.protect(fd) via JNI callback127.0.0.1:9090) drives the
live connections, logs, rules, DNS cache, and traffic views. It requires a
secret, random per VPN start unless the profile sets secret:, so other
apps on the device cannot read it; set secret: to use an on-device
dashboardrule-providers:) on demand while connected.
Subscription configs are read-only, as on Surge (every update replaces
them): create a copy to edit onendkVersion)rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
# Build debug APK (arm64 only, release Rust)
export JAVA_HOME=/path/to/jdk
./gradlew :mobile:assembleDebug -PTARGET_ABI=arm64 -PCARGO_PROFILE=release
The APK is at mobile/build/outputs/apk/debug/mobile-debug.apk.
# Requires: ssserver, Android emulator, adb
./test-e2e.sh
core/ Android library module
src/main/java/ Kotlin: VPN service, AIDL, Room DB
src/main/rust/
meow-android-ffi/ Rust FFI crate (JNI + tun2socks)
src/main/java/.../api/ Engine controller client (REST + websocket)
src/main/java/.../repo/ Profiles, per-app proxy, traffic history
mobile/ Android app module (Compose UI host)
src/main/java/.../ui/theme/ Brand tokens shared with the iOS app
src/main/java/.../ui/screens/ Home, Subscribe, Utility, Settings,
Traffic, Statistics, Connections, Logs, DNS, Rules,
Per-app proxy, YAML editor
src/main/res/values{,-zh-rCN,-ru,-fa,-ar,-vi,-tr,-my}
Localization (en, zh_CN, ru, fa)
test-e2e.sh End-to-end test script (Shadowsocks)
test-e2e-http.sh End-to-end test script (HTTP proxy)
MIT - Max Lv [email protected]