fingerprint-chromium Documentation

repository·main·Indexed 25 days ago

https://github.com/adryfish/fingerprint-chromium

A fingerprinting-resistant browser based on Ungoogled Chromium designed for enhanced privacy and automation. It provides features to spoof fingerprinting vectors including User-Agent, hardware, media, and environment via command-line arguments such as --fingerprint. It includes automation support to avoid CDP detection, hide navigator.webdriver, and provide fake Shadow DOM support.

Tokens
1.5K
Snippets
4
Records
11
Agent score
34%

What's inside fingerprint-chromium

  1. Automation Support Features

    main

    The browser is optimized for automation scenarios with the following built-in features:

    1. Fake Shadow DOM Support: Adds the fakeShadowRoot property (equivalent to shadowRoot) to allow access to Closed Shadow Roots.
    2. Avoid CDP Detection: Prevents detection of the Chrome DevTools Protocol (CDP) when invoking Runtime.enable.
    3. Webdriver: Automatically sets navigator.webdriver to false to avoid automation detection.
    4. Headless: Modifies the User-Agent from HeadlessChrome to Chrome to improve stealth in headless mode (note: other headless characteristics remain unchanged).
  2. Fingerprint Support Overview

    main

    The browser supports spoofing/modifying a wide range of fingerprinting vectors, including:

    • User-Agent: navigator.userAgent, navigator.platform, navigator.userAgentData, and Client Hints.
    • Hardware: CPU Cores, Memory, and WebGL Metadata (GPU vendor/model - Linux only).
    • Media/Graphics: Audio, Canvas (Image and Text), WebGL Image, and WebRTC.
    • Environment: Operating System, Fonts, Language, Timezone, and ClientRects.
  3. Download fingerprint-chromium binaries

    main

    You can download pre-compiled versions of fingerprint-chromium for Windows, Linux, and MacOS from the GitHub Releases page. Each major Chromium version has its own corresponding release.

    Available formats include:

    • Windows: .exe installers and .zip archives.
    • Linux: .AppImage and .tar.xz archives.
    • MacOS: .dmg files.

    For users in China, a Quark cloud storage link is also provided: https://pan.quark.cn/s/9bb65af874fb.

  4. Enable and customize fingerprinting with command line arguments

    main

    You can enable fingerprint spoofing and customize various browser characteristics by passing specific command line arguments when launching the browser. The core argument is --fingerprint, which accepts a 32-bit integer as a seed. When this seed is provided, most fingerprinting features (like OS, Audio, Canvas, etc.) are activated and generated based on that seed.

    Commonly used arguments include:

    • --fingerprint: Sets the fingerprint seed (32-bit integer).
    • --fingerprint-platform: Sets the OS type (windows, linux, macos).
    • --fingerprint-platform-version: Sets the OS version.
    • --fingerprint-brand: Sets the browser brand (Chrome, Edge, Opera, Vivaldi).
    • --fingerprint-brand-version: Sets the browser version.
    • --fingerprint-hardware-concurrency: Sets the number of CPU cores.
    • --lang / --accept-lang: Sets browser language codes.
    • --timezone: Sets the timezone (e.g., Asia/Shanghai).
    • --proxy-server: Sets the proxy server (http or socks).
    ./chrome --fingerprint=1000 --user-data-dir=/tmp/chromium/1000 --timezone="America/Los_Angeles" --proxy-server="your_proxy_server_address"
  5. Build fingerprint-chromium from source

    main

    The source code for fingerprint-chromium is located in the GitHub repository's TAGS, not the main branch.

    Note on Source Availability: The project uses a delayed release strategy for source code. While binaries are available immediately, patch files (source code) are typically released with the subsequent version (approximately one month later) to prevent unauthorized commercial redistribution.

    Build Instructions: Once the source code is released, you can follow the ungoogled-chromium building documentation. To adapt it for this project, replace the ungoogled-chromium submodule URL with the fingerprint-browser repository URL.

  6. Customize User-Agent and Brand identity

    main

    For advanced identity simulation (available since Chrome 131), use --fingerprint-brand and --fingerprint-brand-version to modify both navigator.userAgent and navigator.userAgentData.

    chrome.exe --fingerprint=2023 --fingerprint-platform=macos --fingerprint-platform-version="15.2.0" --fingerprint-brand="Edge" --user-data-dir=%TEMP%\chromium
  7. Customize User-Agent and Browser Brand

    main

    Starting from Chrome 131, you can customize the User-Agent and User-Agent Data using the following arguments:

    • --fingerprint-brand: Specifies the browser brand. Supported values: Chrome, Edge, Opera, Vivaldi. If not specified, it defaults to Chromium.
    • --fingerprint-brand-version: Specifies the version number for the chosen brand. If not specified, a default version for that brand is used.
    chrome.exe --fingerprint=2023 --fingerprint-platform=macos --fingerprint-platform-version="15.2.0" --fingerprint-brand="Edge" --user-data-dir=%TEMP%\chromium
  8. Selectively disable fingerprint spoofing

    main

    In Chrome 144+, you can selectively disable specific fingerprint spoofing features using the --disable-spoofing argument. This is useful if a specific spoofing method (like GPU or Canvas) is causing issues with a target website.

    Supported values (comma-separated):

    • font
    • audio
    • canvas
    • clientrects
    • gpu
    --disable-spoofing=font,gpu
  9. Configure fingerprinting via command line arguments

    main
    You can enable and customize fingerprinting and privacy protection features by passing specific flags when starting the browser. The --fingerprint flag is required to enable most fingerprinting features, taking a 32-bit integer as a seed.