dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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]