mirror of
https://github.com/daijro/camoufox.git
synced 2026-09-08 08:00:53 +00:00
* feat: update timezone, geolocation, and locale spoofing patches - timezone-spoofing.patch: per-context timezone via per-realm DateTimeInfo - geolocation-spoofing.patch: CAMOU_CONFIG backwards compatibility for geolocation - locale-spoofing.patch: add camoucfg LOCAL_INCLUDES - anti-font-fingerprinting.patch: add RoverfoxStorageManager exports to moz.build * feat: per-context audio fingerprinting and screen spoofing patches - audio-fingerprint-manager.patch: per-context audio fingerprinting (all 6 API methods) - screen-spoofing.patch: per-context screen dimensions with global MaskConfig fallback - Disable webrtc-ip-spoofing.patch (will re-enable after fixing) - Remove screen-hijacker.patch (superseded by screen-spoofing.patch) * fix: add global MaskConfig hooks for navigator.platform, hardwareConcurrency, and timezone (#443) Fixes issue where global CAMOU_CONFIG settings for navigator.platform, navigator.hardwareConcurrency, and timezone were not applied in the main window Navigator (only WorkerNavigator was patched via fingerprint-injection.patch). * fix: run nsJSUtils::SetTimeZoneOverride() after SpiderMonkey has Initialized to prevent SIGSEGV * Add fingerprint improvements for PR #3 - navigator-spoofing.patch: Global config fixes for platform/hardwareConcurrency/timezone - timezone-spoofing.patch: Persistence across page navigation via SetNewDocument hook - audio-fingerprint-manager.patch: Full 6-method coverage with self-destruct pattern - screen-spoofing.patch: Per-context dimensions with self-destruct pattern - webrtc-ip-spoofing.patch: Re-enabled with getStats() sanitization + comprehensive IPv6 regex * fix: simplify userContextId to BrowsingContext + add per-context docs * feat(navigator): Add per-context spoofing (platform, oscpu, hardwareConcurrency) with global fallback + docs update. * fix(navigator): use 2-arg GetUint(key, value) for RoverfoxStorageManager * fix(navigator): header line count build error * fix(navigator): move NavigatorManager.cpp into SOURCES for leakage error * fix(navigator): more line count build errors * fix(navigator): include nsTHashMap and nsHashKeys.h before RoverfoxStorageManager * feat(webgl): per-context spoofing patch * fix(webgl): changed GetCanvasElement() to mCanvasElement() for firefox version * fix(webgl): remove coupled self-destruct * feat(canvas): per-context spoofing * feat(font-list): per-context spoofing * fix(font-list): use GetOwnerWindow() instead of GetOwner() * feat(speech): per-context spoofing * fix(speech): add /dom/base inside local_includes * fix(speech): changed context to avoid conflicts * feat(navigator): add WorkerNavigator hooks for per-context platform and hardwareConcurrency in workers * feat(timezone): add per-context timezone override to workers * fix(canvas): add OffscreenCanvas userContextId support and skip zero pixels in canvas noise * fix(screen): hook nsMediaFeatures GetDeviceSize for per-context matchMedia device-width/height * fix(webgl): add OffscreenCanvas userContextId fallback in WebGL GetUserContextId * fix(canvas): make canvas noise use proper format for BGRA toDataURL path * fix(canvas): line count fixes * docs: updated hardware per-context documentation * Final Per-Context Hardware Fingerprint Spoofing (#9) * feat(navigator): Add per-context spoofing (platform, oscpu, hardwareConcurrency) with global fallback + docs update. * fix(navigator): use 2-arg GetUint(key, value) for RoverfoxStorageManager * fix(navigator): header line count build error * fix(navigator): move NavigatorManager.cpp into SOURCES for leakage error * fix(navigator): more line count build errors * fix(navigator): include nsTHashMap and nsHashKeys.h before RoverfoxStorageManager * feat(webgl): per-context spoofing patch * fix(webgl): changed GetCanvasElement() to mCanvasElement() for firefox version * fix(webgl): remove coupled self-destruct * feat(canvas): per-context spoofing * feat(font-list): per-context spoofing * fix(font-list): use GetOwnerWindow() instead of GetOwner() * feat(speech): per-context spoofing * fix(speech): add /dom/base inside local_includes * fix(speech): changed context to avoid conflicts * feat(navigator): add WorkerNavigator hooks for per-context platform and hardwareConcurrency in workers * feat(timezone): add per-context timezone override to workers * fix(canvas): add OffscreenCanvas userContextId support and skip zero pixels in canvas noise * fix(screen): hook nsMediaFeatures GetDeviceSize for per-context matchMedia device-width/height * fix(webgl): add OffscreenCanvas userContextId fallback in WebGL GetUserContextId * fix(canvas): make canvas noise use proper format for BGRA toDataURL path * fix(canvas): line count fixes * docs: updated hardware per-context documentation * feat(screen): screen avail per context * fix(font): align userContextId resolution to BrowsingContext * fix(audio): align userContextId resolution to BrowsingContext * Avoid macos caching (#11) * the property to undefined before deleting * undo webrtc undefined * feat: userContextId added to WordCacheKey * fix: hunk line counts for macos cache changes * fix: add WorkerPrivate fallback in OffscreenCanvas * fix(audio): transformation added to mSharedChannels path to ensure consistency * fix(webgl): added WorkerPrivate to ucid * fix(timezone): add ucid=0 fallback for worker timezone resolution * fix(audio): move seed lookup outside window guard for all 6 hooks * fix(canvas): add ucid=0 fallback and WorkerPrivate resolution for workers * fix(navigator): add setNavigatorUserAgent and ucid=0 fallback and WorkerNavigator for UA spoofing fix * fix(webgl): add ucid=0 fallback and WorkerPrivate resolution * fix(webgl): decouple vendor/renderer self-destruct * fix(navigator): add main-thread navigator.userAgent getter hook * fix(navigator): add MaskConfig hook for navigator.appVersion in main window * feat: Add Chakra Petch font for macOS to solidify detection on CreepJS * fix(fontconfig): rename to match Go launcher, add TTC aliases and update .gitignore * fix(navigator): oscpu missing MaskConfig global fallback * feat: add real fingerprint presets (65 firefox profiles) - mainly to test with, more will come when tested. * feat: use real fingerprint presets as default with BrowserForge as fallback * feat: add audio:seed and canvas:seed to property schema and validation * feat: add MaskConfig fallback to seed managers for cross-process worker consistency - don't need to disable fission * fix(font): moved mUserContextId declaration before mRounding in WordCacheKey so init order matches * fix(audio): line count correction * fix(canvas): line count fix * feat: add per-context fingerprinting API (NewContext/AsyncNewContext) + merge upstream - fix seed range - add oscpu derivation from platform, and timezone mapping in from_preset() - new real fingerprints preset support * feat: new presets + en-US only, stripped fonts/language, clamp DPR * feat: random 30-78% font subset generation for NewBrowser and NewContext * fix: add fission.autostart=true to camoufox.cfg - will be changing this soon with new update so processCount is not 1, so it will be undetectable * fix: update macos fonts.conf rendering settings * feat: cross-process fingerprint storage via Firefox Preferences API Replace RoverfoxStorageManager's per-process static HashMap with Firefox's built-in Preferences system. Values stored as CString prefs under "roverfox.s." namespace, auto-synced to all content processes by Firefox. Content processes can't set prefs directly (ENSURE_PARENT_PROCESS), so a single IPDL message (RoverfoxStoragePut) routes writes through the parent. Same public API — all 10 dependent patches require zero changes. Removes dom.ipc.processCount=1 from camoufox.cfg. Firefox now uses Playwright's default multi-process model (fresh process per page) with fission enabled, while fingerprint values remain accessible everywhere. * fix(cross-process): hunk headers and build fixes * fix(storage): add local write-through cache to RoverfoxStorageManager * fix(storage): add sync IPC read fallback for cross-process fingerprint propagation * fix(storage): add NS_IsMainThread guard to sync IPC fallback - prevent crashes * fix(storage): sync IPC + pref whitelist for cross-process fingerprint sync * feat: full documentation update, speech voices generated per context and BrowserForge primary fingerprint generation method for global and per context. * fix: Direct3D NVIDIA GTX 980 renderers incorrectly appearing on mac because of duplicates * Update .gitignore --------- Co-authored-by: PopcornDev1 <e.coiley@icloud.com> Co-authored-by: Build <build@local> Co-authored-by: Elliot Coiley <153072396+PopcornDev1@users.noreply.github.com>
251 lines
9.8 KiB
JSON
251 lines
9.8 KiB
JSON
{
|
|
"mac": [
|
|
"Albert:en-US:local",
|
|
"Alex:en-US:local",
|
|
"Alice:it-IT:local",
|
|
"Alva:sv-SE:local",
|
|
"Aman:en-IN:local",
|
|
"Amira:ms-MY:local",
|
|
"Anna:de-DE:local",
|
|
"Aru:kk-KZ:local",
|
|
"Bad News:en-US:local",
|
|
"Bahh:en-US:local",
|
|
"Bells:en-US:local",
|
|
"Boing:en-US:local",
|
|
"Bubbles:en-US:local",
|
|
"Carmit:he-IL:local",
|
|
"Cellos:en-US:local",
|
|
"Damayanti:id-ID:local",
|
|
"Daniel:en-GB:local",
|
|
"Daria:bg-BG:local",
|
|
"Diego:es-AR:local",
|
|
"Eddy (English (UK)):en-GB:local",
|
|
"Eddy (English (US)):en-US:local",
|
|
"Eddy (Finnish (Finland)):fi-FI:local",
|
|
"Eddy (French (Canada)):fr-CA:local",
|
|
"Eddy (French (France)):fr-FR:local",
|
|
"Eddy (German (Germany)):de-DE:local",
|
|
"Eddy (Italian (Italy)):it-IT:local",
|
|
"Eddy (Portuguese (Brazil)):pt-BR:local",
|
|
"Eddy (Spanish (Mexico)):es-MX:local",
|
|
"Eddy (Spanish (Spain)):es-ES:local",
|
|
"Eddy (Chinese (China mainland)):zh-CN:local",
|
|
"Eddy (Chinese (Taiwan)):zh-TW:local",
|
|
"Eddy (Japanese (Japan)):ja-JP:local",
|
|
"Eddy (Korean (South Korea)):ko-KR:local",
|
|
"Ellen:nl-BE:local",
|
|
"Fiona:en-scotland:local",
|
|
"Flo (English (UK)):en-GB:local",
|
|
"Flo (English (US)):en-US:local",
|
|
"Flo (Finnish (Finland)):fi-FI:local",
|
|
"Flo (French (Canada)):fr-CA:local",
|
|
"Flo (French (France)):fr-FR:local",
|
|
"Flo (German (Germany)):de-DE:local",
|
|
"Flo (Italian (Italy)):it-IT:local",
|
|
"Flo (Portuguese (Brazil)):pt-BR:local",
|
|
"Flo (Spanish (Mexico)):es-MX:local",
|
|
"Flo (Spanish (Spain)):es-ES:local",
|
|
"Flo (Chinese (China mainland)):zh-CN:local",
|
|
"Flo (Chinese (Taiwan)):zh-TW:local",
|
|
"Flo (Japanese (Japan)):ja-JP:local",
|
|
"Flo (Korean (South Korea)):ko-KR:local",
|
|
"Fred:en-US:local",
|
|
"Geeta:te-IN:local",
|
|
"Good News:en-US:local",
|
|
"Grandma (English (UK)):en-GB:local",
|
|
"Grandma (English (US)):en-US:local",
|
|
"Grandma (Finnish (Finland)):fi-FI:local",
|
|
"Grandma (French (Canada)):fr-CA:local",
|
|
"Grandma (French (France)):fr-FR:local",
|
|
"Grandma (German (Germany)):de-DE:local",
|
|
"Grandma (Italian (Italy)):it-IT:local",
|
|
"Grandma (Portuguese (Brazil)):pt-BR:local",
|
|
"Grandma (Spanish (Mexico)):es-MX:local",
|
|
"Grandma (Spanish (Spain)):es-ES:local",
|
|
"Grandma (Chinese (China mainland)):zh-CN:local",
|
|
"Grandma (Chinese (Taiwan)):zh-TW:local",
|
|
"Grandma (Japanese (Japan)):ja-JP:local",
|
|
"Grandma (Korean (South Korea)):ko-KR:local",
|
|
"Grandpa (English (UK)):en-GB:local",
|
|
"Grandpa (English (US)):en-US:local",
|
|
"Grandpa (Finnish (Finland)):fi-FI:local",
|
|
"Grandpa (French (Canada)):fr-CA:local",
|
|
"Grandpa (French (France)):fr-FR:local",
|
|
"Grandpa (German (Germany)):de-DE:local",
|
|
"Grandpa (Italian (Italy)):it-IT:local",
|
|
"Grandpa (Portuguese (Brazil)):pt-BR:local",
|
|
"Grandpa (Spanish (Mexico)):es-MX:local",
|
|
"Grandpa (Spanish (Spain)):es-ES:local",
|
|
"Grandpa (Chinese (China mainland)):zh-CN:local",
|
|
"Grandpa (Chinese (Taiwan)):zh-TW:local",
|
|
"Grandpa (Japanese (Japan)):ja-JP:local",
|
|
"Grandpa (Korean (South Korea)):ko-KR:local",
|
|
"Ioana:ro-RO:local",
|
|
"Jacques:fr-FR:local",
|
|
"Jester:en-US:local",
|
|
"Joana:pt-PT:local",
|
|
"Jorge:es-ES:local",
|
|
"Juan:es-MX:local",
|
|
"Junior:en-US:local",
|
|
"Kanya:th-TH:local",
|
|
"Karen:en-AU:local",
|
|
"Kathy:en-US:local",
|
|
"Kyoko:ja-JP:local",
|
|
"Lana:hr-HR:local",
|
|
"Laura:sk-SK:local",
|
|
"Lekha:hi-IN:local",
|
|
"Lesya:uk-UA:local",
|
|
"Linh:vi-VN:local",
|
|
"Luca:it-IT:local",
|
|
"Luciana:pt-BR:local",
|
|
"Majed:ar-001:local",
|
|
"Meijia:zh-TW:local",
|
|
"Melina:el-GR:local",
|
|
"Milena:ru-RU:local",
|
|
"Moira:en-IE:local",
|
|
"Montse:ca-ES:local",
|
|
"Nora:nb-NO:local",
|
|
"Ona:lt-LT:local",
|
|
"Organ:en-US:local",
|
|
"Paulina:es-MX:local",
|
|
"Piya:bn-IN:local",
|
|
"Ralph:en-US:local",
|
|
"Reed (English (UK)):en-GB:local",
|
|
"Reed (English (US)):en-US:local",
|
|
"Reed (Finnish (Finland)):fi-FI:local",
|
|
"Reed (French (Canada)):fr-CA:local",
|
|
"Reed (German (Germany)):de-DE:local",
|
|
"Reed (Italian (Italy)):it-IT:local",
|
|
"Reed (Portuguese (Brazil)):pt-BR:local",
|
|
"Reed (Spanish (Mexico)):es-MX:local",
|
|
"Reed (Spanish (Spain)):es-ES:local",
|
|
"Reed (Chinese (China mainland)):zh-CN:local",
|
|
"Reed (Chinese (Taiwan)):zh-TW:local",
|
|
"Reed (Japanese (Japan)):ja-JP:local",
|
|
"Reed (Korean (South Korea)):ko-KR:local",
|
|
"Rishi:en-IN:local",
|
|
"Rocko (English (UK)):en-GB:local",
|
|
"Rocko (English (US)):en-US:local",
|
|
"Rocko (Finnish (Finland)):fi-FI:local",
|
|
"Rocko (French (Canada)):fr-CA:local",
|
|
"Rocko (French (France)):fr-FR:local",
|
|
"Rocko (German (Germany)):de-DE:local",
|
|
"Rocko (Italian (Italy)):it-IT:local",
|
|
"Rocko (Portuguese (Brazil)):pt-BR:local",
|
|
"Rocko (Spanish (Mexico)):es-MX:local",
|
|
"Rocko (Spanish (Spain)):es-ES:local",
|
|
"Rocko (Chinese (China mainland)):zh-CN:local",
|
|
"Rocko (Chinese (Taiwan)):zh-TW:local",
|
|
"Rocko (Japanese (Japan)):ja-JP:local",
|
|
"Rocko (Korean (South Korea)):ko-KR:local",
|
|
"Samantha:en-US:local",
|
|
"Sandy (English (UK)):en-GB:local",
|
|
"Sandy (English (US)):en-US:local",
|
|
"Sandy (Finnish (Finland)):fi-FI:local",
|
|
"Sandy (French (Canada)):fr-CA:local",
|
|
"Sandy (French (France)):fr-FR:local",
|
|
"Sandy (German (Germany)):de-DE:local",
|
|
"Sandy (Italian (Italy)):it-IT:local",
|
|
"Sandy (Portuguese (Brazil)):pt-BR:local",
|
|
"Sandy (Spanish (Mexico)):es-MX:local",
|
|
"Sandy (Spanish (Spain)):es-ES:local",
|
|
"Sandy (Chinese (China mainland)):zh-CN:local",
|
|
"Sandy (Chinese (Taiwan)):zh-TW:local",
|
|
"Sandy (Japanese (Japan)):ja-JP:local",
|
|
"Sandy (Korean (South Korea)):ko-KR:local",
|
|
"Sara:da-DK:local",
|
|
"Satu:fi-FI:local",
|
|
"Shelley (English (UK)):en-GB:local",
|
|
"Shelley (English (US)):en-US:local",
|
|
"Shelley (Finnish (Finland)):fi-FI:local",
|
|
"Shelley (French (Canada)):fr-CA:local",
|
|
"Shelley (French (France)):fr-FR:local",
|
|
"Shelley (German (Germany)):de-DE:local",
|
|
"Shelley (Italian (Italy)):it-IT:local",
|
|
"Shelley (Portuguese (Brazil)):pt-BR:local",
|
|
"Shelley (Spanish (Mexico)):es-MX:local",
|
|
"Shelley (Spanish (Spain)):es-ES:local",
|
|
"Shelley (Chinese (China mainland)):zh-CN:local",
|
|
"Shelley (Chinese (Taiwan)):zh-TW:local",
|
|
"Shelley (Japanese (Japan)):ja-JP:local",
|
|
"Shelley (Korean (South Korea)):ko-KR:local",
|
|
"Sinji:zh-HK:local",
|
|
"Soumya:kn-IN:local",
|
|
"Superstar:en-US:local",
|
|
"Tara:en-IN:local",
|
|
"Tessa:en-ZA:local",
|
|
"Thomas:fr-FR:local",
|
|
"Tina:sl-SI:local",
|
|
"Tingting:zh-CN:local",
|
|
"Trinoids:en-US:local",
|
|
"Vani:ta-IN:local",
|
|
"Veena:en-IN:local",
|
|
"Victoria:en-US:local",
|
|
"Whisper:en-US:local",
|
|
"Wobble:en-US:local",
|
|
"Xander:nl-NL:local",
|
|
"Yelda:tr-TR:local",
|
|
"Yuna:ko-KR:local",
|
|
"Yuri:ru-RU:local",
|
|
"Zarvox:en-US:local",
|
|
"Zosia:pl-PL:local",
|
|
"Zuzana:cs-CZ:local"
|
|
],
|
|
"win": [
|
|
"Microsoft David - English (United States):en-US:local",
|
|
"Microsoft Mark - English (United States):en-US:local",
|
|
"Microsoft Zira - English (United States):en-US:local",
|
|
"Microsoft David Desktop - English (United States):en-US:local",
|
|
"Microsoft Zira Desktop - English (United States):en-US:local",
|
|
"Microsoft Hazel - English (United Kingdom):en-GB:local",
|
|
"Microsoft Hazel Desktop - English (Great Britain):en-GB:local",
|
|
"Microsoft George - English (United Kingdom):en-GB:local",
|
|
"Microsoft Susan - English (United Kingdom):en-GB:local",
|
|
"Microsoft Catherine - English (Australia):en-AU:local",
|
|
"Microsoft James - English (Australia):en-AU:local",
|
|
"Microsoft Linda - English (Canada):en-CA:local",
|
|
"Microsoft Richard - English (Canada):en-CA:local",
|
|
"Microsoft Sean - English (Ireland):en-IE:local",
|
|
"Microsoft Heera - English (India):en-IN:local",
|
|
"Microsoft Ravi - English (India):en-IN:local",
|
|
"Microsoft Hedda - German (Germany):de-DE:local",
|
|
"Microsoft Hedda Desktop - German:de-DE:local",
|
|
"Microsoft Katja - German (Germany):de-DE:local",
|
|
"Microsoft Stefan - German (Germany):de-DE:local",
|
|
"Microsoft Hortense - French (France):fr-FR:local",
|
|
"Microsoft Hortense Desktop - French:fr-FR:local",
|
|
"Microsoft Julie - French (France):fr-FR:local",
|
|
"Microsoft Paul - French (France):fr-FR:local",
|
|
"Microsoft Helena - Spanish (Spain):es-ES:local",
|
|
"Microsoft Helena Desktop - Spanish (Spain):es-ES:local",
|
|
"Microsoft Laura - Spanish (Spain):es-ES:local",
|
|
"Microsoft Pablo - Spanish (Spain):es-ES:local",
|
|
"Microsoft Sabina - Spanish (Mexico):es-MX:local",
|
|
"Microsoft Sabina Desktop - Spanish (Mexico):es-MX:local",
|
|
"Microsoft Raul - Spanish (Mexico):es-MX:local",
|
|
"Microsoft Cosimo - Italian (Italy):it-IT:local",
|
|
"Microsoft Elsa - Italian (Italy):it-IT:local",
|
|
"Microsoft Elsa Desktop - Italian (Italy):it-IT:local",
|
|
"Microsoft Daniel - Portuguese (Brazil):pt-BR:local",
|
|
"Microsoft Maria - Portuguese (Brazil):pt-BR:local",
|
|
"Microsoft Maria Desktop - Portuguese(Brazil):pt-BR:local",
|
|
"Microsoft Helia - Portuguese (Portugal):pt-PT:local",
|
|
"Microsoft Huihui - Chinese (Simplified, PRC):zh-CN:local",
|
|
"Microsoft Huihui Desktop - Chinese (Simplified):zh-CN:local",
|
|
"Microsoft Kangkang - Chinese (Simplified, PRC):zh-CN:local",
|
|
"Microsoft Yaoyao - Chinese (Simplified, PRC):zh-CN:local",
|
|
"Microsoft Anna - English (United States):en-US:local",
|
|
"Microsoft Frank - Dutch (Netherlands):nl-NL:local",
|
|
"Microsoft Adam - Polish (Poland):pl-PL:local",
|
|
"Microsoft Paulina - Polish (Poland):pl-PL:local",
|
|
"Microsoft Paulina Desktop - Polish:pl-PL:local",
|
|
"Microsoft Jakub - Czech (Czech Republic):cs-CZ:local",
|
|
"Microsoft Stefanos - Greek (Greece):el-GR:local",
|
|
"Microsoft Asaf - Hebrew (Israel):he-IL:local",
|
|
"Microsoft Naayf - Arabic (Saudi):ar-SA:local",
|
|
"Microsoft Tolga - Turkish (Turkey):tr-TR:local",
|
|
"Microsoft Sarah Mobile - English (Great Britain):en-GB:local"
|
|
],
|
|
"lin": []
|
|
}
|