Skip to content

feat: add cipherSuites option and "unsafe" fingerprint to TLS UI settings - #1

Merged
patterniha merged 1 commit into
masterfrom
copilot/add-ciphersuites-and-unsafe-option
Jul 9, 2026
Merged

feat: add cipherSuites option and "unsafe" fingerprint to TLS UI settings#1
patterniha merged 1 commit into
masterfrom
copilot/add-ciphersuites-and-unsafe-option

Conversation

Copilot AI commented Jul 9, 2026

Copy link
Copy Markdown

Adds two missing TLS options from the XTLS TLS spec to the server configuration UI.

Changes

  • arrays.xml — Added unsafe to the streamsecurity_utls fingerprint list
  • ProfileItem.kt — Added cipherSuites: String? field
  • layout_tls.xml — Added EditText for cipher suites (between ALPN and allowInsecure)
  • strings.xml — Added label string server_lab_cipher_suites
  • ServerActivity.kt — Field binding, visibility control (shown for TLS, hidden for REALITY/none), load/save
  • CoreOutboundBuilder.kt — Passes cipherSuites to TlsSettingsBean

The cipherSuites field in TlsSettingsBean already existed but was never wired to the UI or ProfileItem.

@patterniha

Copy link
Copy Markdown
Owner

@copilot

check everything is ok and you haven't missed anything.

Copilot AI commented Jul 9, 2026

Copy link
Copy Markdown
Author

@copilot

check everything is ok and you haven't missed anything.

I've verified the implementation is complete:

  1. ProfileItem.ktcipherSuites: String? field added ✅
  2. layout_tls.xml — EditText with proper focus chain (ALPN → cipherSuites → allowInsecure) ✅
  3. strings.xml — Label string added ✅
  4. ServerActivity.kt — Field binding, load/save, visibility (shown for TLS, hidden for REALITY/none) ✅
  5. CoreOutboundBuilder.kt — Passes value to TlsSettingsBean using .nullIfBlank()
  6. arrays.xmlunsafe fingerprint added ✅

No issues found:

  • No database migration needed — MMKV uses JSON serialization, and the new nullable field deserializes as null for existing entries.
  • No share link format change needed — cipherSuites has no standard URI query parameter in the V2Ray/XTLS share link spec, matching how other local-only TLS fields are handled.
  • The TlsSettingsBean already had the cipherSuites field defined, so it's fully compatible.

@patterniha
patterniha marked this pull request as ready for review July 9, 2026 23:49
@patterniha
patterniha merged commit 48d7984 into master Jul 9, 2026
1 check passed
@patterniha
patterniha deleted the copilot/add-ciphersuites-and-unsafe-option branch July 9, 2026 23:50
patterniha added a commit that referenced this pull request Jul 10, 2026
fix: add missing cipherSuites locale strings and equals comparison (follow-up to #1)
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