mirror of
https://github.com/CloakHQ/CloakBrowser.git
synced 2026-06-23 11:41:46 +02:00
feat: macOS v145 wrapper prep — GPU flags, version bump, README update
- Add explicit Mac GPU flags (Apple M3 Metal renderer) to stealth args - Bump macOS platform versions to 145.0.7632.109 - Update README fingerprint table to reflect actual Mac GPU defaults - Add warning about binary requiring explicit flags without wrapper - Fix stealth_test.py wait_until for reCAPTCHA page
This commit is contained in:
@@ -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` | 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-platform` | `windows` | `macos` | `navigator.platform`, User-Agent OS, GPU pool selection |
|
||||||
| `--fingerprint-hardware-concurrency` | `8` | *(not set — uses real value)* | `navigator.hardwareConcurrency` |
|
| `--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-vendor` | `NVIDIA Corporation` | `Google Inc. (Apple)` | WebGL `UNMASKED_VENDOR_WEBGL` |
|
||||||
| `--fingerprint-gpu-renderer` | `NVIDIA GeForce RTX 3070` | *(not set — native Metal renderer)* | WebGL `UNMASKED_RENDERER_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-device-memory` | `8` | *(not set)* | `navigator.deviceMemory` |
|
||||||
| `--fingerprint-screen-width` | `1920` | *(not set)* | Screen width reporting |
|
| `--fingerprint-screen-width` | `1920` | *(not set)* | Screen width reporting |
|
||||||
| `--fingerprint-screen-height` | `1080` | *(not set)* | Screen height 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.
|
> **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
|
### Additional Flags
|
||||||
|
|
||||||
Supported by the binary but **not set by default** — pass via `args` to customize:
|
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.
|
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**
|
**Binary download fails / timeout**
|
||||||
Set a custom download URL or use a local binary:
|
Set a custom download URL or use a local binary:
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ CHROMIUM_VERSION = "145.0.7632.109"
|
|||||||
|
|
||||||
PLATFORM_CHROMIUM_VERSIONS: dict[str, str] = {
|
PLATFORM_CHROMIUM_VERSIONS: dict[str, str] = {
|
||||||
"linux-x64": "145.0.7632.109",
|
"linux-x64": "145.0.7632.109",
|
||||||
"darwin-arm64": "142.0.7444.175",
|
"darwin-arm64": "145.0.7632.109",
|
||||||
"darwin-x64": "142.0.7444.175",
|
"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
|
# Tell the fingerprint patches we're on macOS so GPU/UA match natively
|
||||||
return base + [
|
return base + [
|
||||||
"--fingerprint-platform=macos",
|
"--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
|
# Linux: spoof as Windows
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ def test_recaptcha(page):
|
|||||||
"""recaptcha-demo.appspot.com — Google's official reCAPTCHA v3 score."""
|
"""recaptcha-demo.appspot.com — Google's official reCAPTCHA v3 score."""
|
||||||
page.goto(
|
page.goto(
|
||||||
"https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
|
"https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
|
||||||
wait_until="networkidle",
|
wait_until="domcontentloaded",
|
||||||
timeout=30000,
|
timeout=30000,
|
||||||
)
|
)
|
||||||
# Page auto-submits via grecaptcha.execute() — wait for backend response
|
# Page auto-submits via grecaptcha.execute() — wait for backend response
|
||||||
|
|||||||
Reference in New Issue
Block a user