dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Browser-based network diagnostics: DNS security (8 resolvers probed over RFC 8484 wire format, ECS leak + DNSSEC checks), speed/bufferbloat test, ad blocker analysis, security header scanning. No installs, no accounts — Cloudflare Workers + TypeScript + Vite.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Browser-based network diagnostics toolkit — DNS security, speed test, ad blocker analysis, and HTTP security header scanning. No installs, no accounts; every check runs client-side against Cloudflare's edge network.README 전문 보기 ↗
Browser-based network diagnostics toolkit — DNS security, speed test, ad blocker analysis, and HTTP security header scanning. No installs, no accounts; every check runs client-side against Cloudflare's edge network.
Live: netcheck.oilygold.xyz
speed.cloudflare.com, Netflix's fast.com, or Ookla Speedtest servers (nearest found via your city — proxies only the tiny discovery call; speed traffic goes browser → server direct)ReadableStreamwrangler devOff by default, and off on netcheck.oilygold.xyz. This is the one check that needs a server outside Cloudflare, because Workers cannot serve UDP/53.
probe-server/ is an authoritative nameserver for a zone you delegate to it. The browser resolves <label>.<your-zone>, which forces every recursive resolver in the visitor's real path to query that nameserver directly — so it sees their actual resolver IPs, and any EDNS Client Subnet forwarded. A DoH-only page can never learn this about its visitor, because it only ever talks to the one resolver it picked.
The label is the SHA-256 of a read key the visitor's tab keeps to itself. Every resolver in the path sees the label, and so do the nameserver's own logs, so observing a query must not be enough to read the result back: only the key names the session, and it never travels in a DNS query. The Worker presents the key over TLS to fetch the result.
Enable it by setting all three on the Worker:
| Variable | Where | Example |
|---|---|---|
PROBE_SERVER_URL | wrangler.toml [vars] | https://ns-probe.example.com:8443 |
PROBE_ZONE | wrangler.toml [vars] | p.example.com |
PROBE_SECRET | wrangler secret put | — |
The URL must be https:// (localhost excepted): PROBE_SECRET travels in a request header, so a plaintext URL is refused and reported as unconfigured rather than sent in the clear.
With any of them missing, the client is told the probe does not exist here: it skips the lookup entirely, and the DNS card drops both the encrypted-DNS row and the "your recursive resolver" block rather than showing a check it cannot answer.
Running the nameserver — GCP always-free VM, zone delegation, systemd unit, and the reflection-hardening notes — is documented in probe-server/README.md.
@cloudflare/vite-plugin — Workers runtime integrated directly into Vite dev/build#08090a canvas, indigo-violet accentssrc/shared/dns-wire.ts; interactive lookups via Cloudflare DNS-over-HTTPSnetcheck-site/
├── wrangler.toml # Cloudflare Worker config
├── vite.config.ts # Vite build configuration (Cloudflare plugin)
├── tsconfig.json # TypeScript configuration
├── index.html # Single-page app shell
├── probe-server/ # Authoritative nameserver for recursion-path probing
├── src/
│ ├── client/ # Frontend logic (TypeScript)
│ │ ├── app.ts # Entry point — tab routing, UI orchestration
│ │ ├── i18n.ts # Bilingual (en/zh-TW) translation strings
│ │ └── ... # Domain-specific logic (dns-check, speed-test, adblock-test, etc.)
│ ├── shared/ # Code shared between client, worker and probe server
│ │ ├── dns-wire.ts # RFC 8484 wire-format encoder/decoder
│ │ └── resolvers.ts # Public DNS resolver list
│ └── worker/ # Backend logic (TypeScript)
│ └── index.ts # Worker — API routes
└── public/
├── icon.svg, manifest.json, sw.js
└── css/styles.css # Linear design system implementation
npm install
npm run dev # Vite dev server with the Cloudflare Workers runtime
npm run typecheck # tsc --noEmit
npm test # node --test — no framework, no browser, no network
To exercise the recursion probe locally, put the three variables in a gitignored
.dev.vars and run the nameserver alongside the dev server — see
probe-server/README.md for the local port to use
(5354; mDNS holds 5353 on macOS).
npm run deploy # vite build && wrangler deploy
MIT