ITADN

Implement group-level uTLS fingerprint selection

#443Pull Requestakellavk 创建于 2026-07-07
A
akellavkcommented
## Summary Adds ability to set a group-level uTLS fingerprint that overrides individual profile configurations. This feature allows centralized uTLS management for all profiles within a group. ## Changes ### 1. Database (ProxyGroup.kt) - Added `groupUtlsFingerprint: String` field to `ProxyGroup` data class - Updated serialization/deserialization to persist the value ### 2. UI (group_preferences.xml, GroupSettingsActivity.kt) - Added `ListPreference` for uTLS fingerprint selection in group settings - Uses existing `utls_entry` and `utls_value` arrays from `arrays.xml` - Added `GROUP_UTLS_FINGERPRINT` constant to `Constants.kt` - Added `groupUtlsFingerprint` variable to `DataStore.kt` - Updated `init()` and `serialize()` methods in `GroupSettingsActivity` - Setting name: "Force uTLS" (EN), "Принудительный uTLS" (RU) - Added summary display showing currently selected value ### 3. Logic (ConfigBuilder.kt) - In `buildChain()` function, added group retrieval for each profile - Applied group uTLS fingerprint in 5 locations: - StandardV2RayBean with TLS (2 locations) - StandardV2RayBean with Reality (2 locations) - TrustTunnelBean with HTTPS (1 location) ## Priority Logic When building configuration, fingerprint is selected in this order: 1. Experimental override from settings (`overrideUTLSFingerprintForREALITY`/`TLS`) 2. **Group uTLS fingerprint** (if set in group settings) 3. Profile-specific fingerprint (`bean.realityFingerprint` or `bean.utlsFingerprint`) ## Benefits - Centralized uTLS management for all profiles in a group - Especially useful for circumventing blocks - No need to manually edit each profile's uTLS settings - Easy to test different fingerprints across multiple profiles
合并状态:未合并 3 条评论