diff --git a/README.md b/README.md index 7f84d4c..09f1312 100644 --- a/README.md +++ b/README.md @@ -361,8 +361,8 @@ Every `launch()` call sets these automatically. Defaults are **platform-aware** | `--fingerprint` | Random (10000–99999) | Random (10000–99999) | Master seed for canvas, WebGL, audio, fonts, client rects | | `--fingerprint-platform` | `windows` | `macos` | `navigator.platform`, User-Agent OS, GPU pool selection | | `--fingerprint-hardware-concurrency` | `8` | *(not set — uses real value)* | `navigator.hardwareConcurrency` | -| `--fingerprint-gpu-vendor` | `NVIDIA Corporation` | *(not set — native Apple GPU)* | WebGL `UNMASKED_VENDOR_WEBGL` | -| `--fingerprint-gpu-renderer` | `NVIDIA GeForce RTX 3070` | *(not set — native Metal renderer)* | WebGL `UNMASKED_RENDERER_WEBGL` | +| `--fingerprint-gpu-vendor` | `NVIDIA Corporation` | `Google Inc. (Apple)` | WebGL `UNMASKED_VENDOR_WEBGL` | +| `--fingerprint-gpu-renderer` | `NVIDIA GeForce RTX 3070` | `ANGLE (Apple, ANGLE Metal Renderer: Apple M3, Unspecified Version)` | WebGL `UNMASKED_RENDERER_WEBGL` | | `--fingerprint-device-memory` | `8` | *(not set)* | `navigator.deviceMemory` | | `--fingerprint-screen-width` | `1920` | *(not set)* | Screen width reporting | | `--fingerprint-screen-height` | `1080` | *(not set)* | Screen height reporting | @@ -370,6 +370,8 @@ Every `launch()` call sets these automatically. Defaults are **platform-aware** > **Important:** `--fingerprint-platform` should always be set. Without it, platform-specific patches (GPU, UA, screen, taskbar) won't activate. The wrapper handles this automatically. +> **⚠️ Using the binary directly (without the wrapper)?** The binary does not auto-spoof without flags. You must pass `--fingerprint`, `--fingerprint-platform`, and GPU flags explicitly. Without these, real device values pass through unmodified. See the table above for the full list of flags the wrapper sets automatically. + ### Additional Flags Supported by the binary but **not set by default** — pass via `args` to customize: @@ -543,6 +545,13 @@ const browser = await launch({ args: ['--disable-http2'] }); Only use this flag for sites that require it — most sites work fine with HTTP/2. +**Something not working? Make sure you're on the latest wrapper** +Older versions may use outdated stealth args or download an older binary: +```bash +pip install -U cloakbrowser # Python +npm install cloakbrowser@latest # JavaScript +``` + **Binary download fails / timeout** Set a custom download URL or use a local binary: ```bash diff --git a/cloakbrowser/config.py b/cloakbrowser/config.py index c055c52..4c87d58 100644 --- a/cloakbrowser/config.py +++ b/cloakbrowser/config.py @@ -20,8 +20,8 @@ CHROMIUM_VERSION = "145.0.7632.109" PLATFORM_CHROMIUM_VERSIONS: dict[str, str] = { "linux-x64": "145.0.7632.109", - "darwin-arm64": "142.0.7444.175", - "darwin-x64": "142.0.7444.175", + "darwin-arm64": "145.0.7632.109", + "darwin-x64": "145.0.7632.109", } # --------------------------------------------------------------------------- @@ -47,6 +47,8 @@ def get_default_stealth_args() -> list[str]: # Tell the fingerprint patches we're on macOS so GPU/UA match natively return base + [ "--fingerprint-platform=macos", + "--fingerprint-gpu-vendor=Google Inc. (Apple)", + "--fingerprint-gpu-renderer=ANGLE (Apple, ANGLE Metal Renderer: Apple M3, Unspecified Version)", ] # Linux: spoof as Windows diff --git a/examples/stealth_test.py b/examples/stealth_test.py index c5ca2b8..c8e6221 100644 --- a/examples/stealth_test.py +++ b/examples/stealth_test.py @@ -143,7 +143,7 @@ def test_recaptcha(page): """recaptcha-demo.appspot.com — Google's official reCAPTCHA v3 score.""" page.goto( "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php", - wait_until="networkidle", + wait_until="domcontentloaded", timeout=30000, ) # Page auto-submits via grecaptcha.execute() — wait for backend response