Skip to content

Update database and various fix#2

Open
AnCry1596 wants to merge 43 commits intocharxhit:masterfrom
AnCry1596:master
Open

Update database and various fix#2
AnCry1596 wants to merge 43 commits intocharxhit:masterfrom
AnCry1596:master

Conversation

@AnCry1596
Copy link

I update database up-to-data and various fix for keep it working

@charxhit
Copy link
Owner

charxhit commented Oct 8, 2025

Thank you for the pull request, I'll review this soon. Does this work with base tlslite?

@AnCry1596
Copy link
Author

Base tlslite always automatically adds 255 handshake at the first of ja3, so I use a modified on my GitHub account, with handshake reorder fix

@AnCry1596
Copy link
Author

AnCry1596 commented Oct 11, 2025

As I tested, on my phone, Chrome on IOS using Safari/Webkit instead of Chromium, I think I will remove user_agents and bring a better way to parse the ua

@AnCry1596
Copy link
Author

I just found Firefox iOS is using Safari/Webkit too

@AnCry1596
Copy link
Author

I just removed the user_agents library required, and now it support mostly every user agent

@AnCry1596
Copy link
Author

AnCry1596 commented Oct 11, 2025

And I fix the wrong Firefox Mobile 143 akamai string

@charxhit
Copy link
Owner

Building our own UA Parser is a rough job, let's leave it as a dependency for now. Have you checked that all extensions required by the ja3 strings you have added are supported?

@AnCry1596
Copy link
Author

I checked which extension are supported, others like Client Hello Encrypt,… I added to ignore list. And I created a minimal UAparser using re just for parsing ua core, version and device, now it supports most available UA strings

@AnCry1596
Copy link
Author

As I tested, it work better than user_agents.
Like Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1 Ddg/26.0 is stand for DuckDuckGo iOS 26, it use same ja3 and akamai string with Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0.1 Mobile/15E148 Safari/604.1 (This is my Safari Header from my phone). But on Android and Windows it use Chromium core, and same as Chrome.

@AnCry1596
Copy link
Author

And if we use user_agents, we need to add each possible agent, like edge, Vivaldi, Yandex, DuckDuckGo,… and what I add is make all will return Chromium for windows and android and macos, iOS will return Safari,…

@AnCry1596
Copy link
Author

I idk why akamai string on my own PC is difference with other one, so I use VMware to get fresh device, and I just updated what I get from VM

@AnCry1596
Copy link
Author

Okay I found the Problem here, on my PC I have bypass DPI Blocking with Adguard windows, so it akamai string is difference than what original.

@AnCry1596
Copy link
Author

I just add ignore for SETTINGS_NO_RFC7540_PRIORITIES (0x9) because tlslite-ng not support

@AnCry1596
Copy link
Author

AnCry1596 commented Oct 30, 2025

I just added Random TLS extension order for better impersonate

Copilot AI review requested due to automatic review settings January 29, 2026 09:34
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the project’s fingerprint databases and adds a new “random TLS extension order” capability, alongside packaging/dependency and documentation updates.

Changes:

  • Updated browser JA3/Akamai fingerprint data and simplified UA parsing logic.
  • Added TLS extension-order randomization controls across TLSProfile and AsyncTLSClient.
  • Updated packaging metadata/dependencies and expanded documentation + added an example script.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
setup.py Bumps version, updates repo URL, expands Python classifiers, switches tlslite-ng dependency source.
requirements.txt Adds git-based tlslite-ng dependency for installs/dev.
httpx_tls/profiles.py Adds extension-order randomization option and propagates it through profile constructors.
httpx_tls/mocks.py Updates wrap_bio signature to accept session for stdlib compatibility.
httpx_tls/database.py Refreshes fingerprint ranges and replaces user_agents parsing with a simplified UA parser.
httpx_tls/constants.py Extends HTTP/2 settings mapping and TLS extension constants for newer fingerprints.
httpx_tls/client.py Adds randomize_tls_extensions option and attempts to apply it to provided TLS profiles.
example_randomization.py New example demonstrating extension-order randomization usage.
README.md Major documentation refresh including randomization feature and updated usage notes.
RANDOM_EXTENSION_ORDER.md New doc detailing the random extension order feature and usage.
.gitignore Adds additional ignore patterns (including tests, examples, and tlslite-ng directory).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants