Skip to content

fix: add missing cipherSuites locale strings and equals comparison (follow-up to #1) - #2

Merged
patterniha merged 1 commit into
masterfrom
fix/cipher-suites-followup
Jul 10, 2026
Merged

fix: add missing cipherSuites locale strings and equals comparison (follow-up to #1)#2
patterniha merged 1 commit into
masterfrom
fix/cipher-suites-followup

Conversation

@patterniha

@patterniha patterniha commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Follow-up to #1, which added the cipherSuites TLS option and the unsafe fingerprint but left some gaps.

What changed

  • Locale strings: server_lab_cipher_suites was only added to the default values/strings.xml. This adds it to all 8 locale files (ar, bn, bqi-rIR, fa, ru, vi, zh-rCN, zh-rTW), placed after server_lab_stream_alpn and styled to match each file's existing conventions.
  • ProfileItem.equals: now compares cipherSuites. This method drives "remove duplicate servers" in MainViewModel, so two profiles differing only in cipher suites were treated as duplicates and one was silently deleted. alpn and fingerPrint are already compared there.
  • Share-link round-trip: the fork already round-trips its custom TLS fields (ech, vcn, pcs, pqv) through share-link query parameters and the VMess QR-code JSON, but cipherSuites was missing, so sharing a profile silently dropped it. Adds a cs query parameter to FmtBase import/export and a cs field to VmessQRCode, mapped in VmessFmt, emitted only when non-blank.

Notes for reviewers

  • The unsafe fingerprint entry needed no locale work: arrays.xml exists only in values/ and is translatable="false"; the spinner and uTlsItems both read R.array.streamsecurity_utls directly.
  • Pre-existing (unchanged): equals also omits insecure, echConfigList, verifyPeerCertByName, spiderX, and mldsa65Verify; and per Xray docs unsafe is a TLSObject-only fingerprint, but the spinner is shared with REALITY and the UI doesn't validate that combination today.
  • The matching cs key is not yet supported by the v2rayN fork's BaseFmt.cs, so links carrying cs= interop with v2rayN only once the same key is added there.

🤖 Generated with Claude Code

Add the server_lab_cipher_suites label to all 8 locale strings.xml
files (ar, bn, bqi-rIR, fa, ru, vi, zh-rCN, zh-rTW), which #1 only
added to the default values/strings.xml.

Also compare cipherSuites in ProfileItem.equals so profiles differing
only in cipher suites are not treated as duplicates and deleted by
"remove duplicate servers".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

1 participant