diff --git a/.changeset/ten-ants-try.md b/.changeset/ten-ants-try.md new file mode 100644 index 000000000..7c5e925cb --- /dev/null +++ b/.changeset/ten-ants-try.md @@ -0,0 +1,5 @@ +--- +"client-sdk-android": minor +--- + +Update libwebrtc to m144 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3501a8d7f..8b75391f1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -webrtc = "137.7151.05" +webrtc = "144.7559.01" androidJainSipRi = "1.3.0-91" androidx-activity = "1.9.0" diff --git a/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/E2EEOptions.kt b/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/E2EEOptions.kt index 020fc0cbe..85ac6133d 100644 --- a/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/E2EEOptions.kt +++ b/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/E2EEOptions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 LiveKit, Inc. + * Copyright 2023-2026 LiveKit, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package io.livekit.android.e2ee import livekit.LivekitModels.Encryption +import livekit.org.webrtc.FrameCryptorKeyDerivationAlgorithm internal const val defaultRatchetSalt = "LKFrameEncryptionKey" internal const val defaultMagicBytes = "LK-ROCKS" @@ -24,6 +25,7 @@ internal const val defaultRatchetWindowSize = 16 internal const val defaultFailureTolerance = -1 internal const val defaultKeyRingSize = 16 internal const val defaultDiscardFrameWhenCryptorNotReady = false +internal val defaultKeyDerivationAlgorithm = FrameCryptorKeyDerivationAlgorithm.PBKDF2 class E2EEOptions( var keyProvider: KeyProvider = BaseKeyProvider( @@ -34,6 +36,7 @@ class E2EEOptions( defaultFailureTolerance, defaultKeyRingSize, defaultDiscardFrameWhenCryptorNotReady, + defaultKeyDerivationAlgorithm, ), encryptionType: Encryption.Type = Encryption.Type.GCM, ) { diff --git a/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/KeyProvider.kt b/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/KeyProvider.kt index a30828f4a..55dc57abd 100644 --- a/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/KeyProvider.kt +++ b/livekit-android-sdk/src/main/java/io/livekit/android/e2ee/KeyProvider.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 LiveKit, Inc. + * Copyright 2023-2026 LiveKit, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package io.livekit.android.e2ee import io.livekit.android.util.LKLog import livekit.org.webrtc.FrameCryptorFactory +import livekit.org.webrtc.FrameCryptorKeyDerivationAlgorithm import livekit.org.webrtc.FrameCryptorKeyProvider internal class KeyInfo(var participantId: String, var keyIndex: Int, var key: String) { @@ -49,6 +50,7 @@ class BaseKeyProvider( failureTolerance: Int = defaultFailureTolerance, keyRingSize: Int = defaultKeyRingSize, discardFrameWhenCryptorNotReady: Boolean = defaultDiscardFrameWhenCryptorNotReady, + keyDerivationAlgorithm: FrameCryptorKeyDerivationAlgorithm = defaultKeyDerivationAlgorithm, ) : KeyProvider { private val latestSetIndex = mutableMapOf() @@ -61,6 +63,7 @@ class BaseKeyProvider( failureTolerance, keyRingSize, discardFrameWhenCryptorNotReady, + keyDerivationAlgorithm, ) override fun setSharedKey(key: String, keyIndex: Int?): Boolean { diff --git a/livekit-android-sdk/src/main/java/io/livekit/android/webrtc/PeerConnectionExt.kt b/livekit-android-sdk/src/main/java/io/livekit/android/webrtc/PeerConnectionExt.kt index ea4297ea0..c0beb5574 100644 --- a/livekit-android-sdk/src/main/java/io/livekit/android/webrtc/PeerConnectionExt.kt +++ b/livekit-android-sdk/src/main/java/io/livekit/android/webrtc/PeerConnectionExt.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 LiveKit, Inc. + * Copyright 2023-2026 LiveKit, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,7 +52,7 @@ fun RTCConfiguration.copy(): RTCConfiguration { } fun RTCConfiguration.copyFrom(config: RTCConfiguration) { - activeResetSrtpParams = config.activeResetSrtpParams + // activeResetSrtpParams = config.activeResetSrtpParams audioJitterBufferFastAccelerate = config.audioJitterBufferFastAccelerate audioJitterBufferMaxPackets = config.audioJitterBufferMaxPackets bundlePolicy = config.bundlePolicy diff --git a/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockAudioDeviceModule.kt b/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockAudioDeviceModule.kt index b754e6be9..7263654a7 100644 --- a/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockAudioDeviceModule.kt +++ b/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockAudioDeviceModule.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024 LiveKit, Inc. + * Copyright 2024-2026 LiveKit, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ package io.livekit.android.test.mock import livekit.org.webrtc.audio.AudioDeviceModule class MockAudioDeviceModule : AudioDeviceModule { - override fun getNativeAudioDeviceModulePointer(): Long { + override fun getNative(webrtcEnvRef: Long): Long { return 1 } diff --git a/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockLKObjects.kt b/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockLKObjects.kt index a1b9de30c..fd2e1f14a 100644 --- a/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockLKObjects.kt +++ b/livekit-android-test/src/main/java/io/livekit/android/test/mock/MockLKObjects.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024 LiveKit, Inc. + * Copyright 2024-2026 LiveKit, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,9 @@ object MockLKObjects { eglBaseProvider = { MockEglBase() }, audioDeviceModuleProvider = { object : AudioDeviceModule { - override fun getNativeAudioDeviceModulePointer(): Long = 1 + override fun getNative(webrtcEnvRef: Long): Long { + return 1 + } override fun release() {} diff --git a/livekit-android-test/src/test/java/io/livekit/android/webrtc/RTCConfigurationTest.kt b/livekit-android-test/src/test/java/io/livekit/android/webrtc/RTCConfigurationTest.kt index f08a9058d..22b5a63c7 100644 --- a/livekit-android-test/src/test/java/io/livekit/android/webrtc/RTCConfigurationTest.kt +++ b/livekit-android-test/src/test/java/io/livekit/android/webrtc/RTCConfigurationTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 LiveKit, Inc. + * Copyright 2023-2026 LiveKit, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,7 +52,7 @@ class RTCConfigurationTest : BaseTest() { fillWithMockData(originalConfig) val newConfig = originalConfig.copy() - newConfig.activeResetSrtpParams = false + newConfig.iceCheckMinInterval = 5 var caughtError = false try {