From f2847b8549051418fa2a1ec1f4ffef8847f77e02 Mon Sep 17 00:00:00 2001 From: Konrad Kollnig <5175206+kasnder@users.noreply.github.com> Date: Sat, 11 Jul 2026 15:24:55 +0200 Subject: [PATCH] deps: land safe Dependabot bumps (gradle group, android_logger, getrandom) Consolidates the three Dependabot updates that are verified green, and documents (in the PR) the two that need manual work. #633 gradle-minor-patch group: - androidx.core:core-ktx 1.18.0 -> 1.19.0 - com.google.android.material 1.13.0 -> 1.14.0 - androidx.lifecycle 2.10.0 -> 2.11.0 - glide 5.0.7 -> 5.0.9 - okhttp 5.3.2 -> 5.4.0 - AGP 9.0.1 -> 9.2.1, Gradle wrapper 9.2.1 -> 9.6.1 core-ktx 1.19.0 and glide 5.0.9 ship minCompileSdk=37, so bump compileSdk/targetSdk 36 -> 37 (platform 37 is released/installed; no SDK 38 needed). Verified: ./gradlew :app:assembleGithubDebug passes, including the native wgbridge-rs build. #631 android_logger 0.14 -> 0.15: no API change for our call site (with_max_level/with_tag/init_once unchanged). Cargo.toml only. #630 getrandom 0.2 -> 0.3: renamed free fn getrandom() -> fill(); update the single call site in keys.rs. getrandom 0.3.4 was already in the tree via gotatun's rand 0.9 path, so this adds no new version. Verified: cargo build + cargo test (18/18) on host, and cargo ndk arm64 cross-compile of the combined tree. Not included (need manual work, see PR body): - #629 jni 0.21 -> 0.22: compiles only after a full FFI-layer rewrite; needs on-device testing. - #632 gotatun 0.7.2 -> 0.8.0: removes the public AsFd on UdpSocket used for VpnService.protect(); workaround regresses the optimized UDP datapath. Defer / file upstream for a public fd accessor. Co-Authored-By: Claude Opus 4.8 --- app/build.gradle | 14 +++++++------- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- wgbridge-rs/Cargo.lock | 6 +++--- wgbridge-rs/Cargo.toml | 4 ++-- wgbridge-rs/src/keys.rs | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index adfce85e9..f78459324 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -163,12 +163,12 @@ afterEvaluate { } android { - compileSdk = 36 + compileSdk = 37 defaultConfig { applicationId "net.kollnig.missioncontrol" minSdk 23 - targetSdk 36 + targetSdk 37 //noinspection HighAppVersionCode versionCode 2026042701 versionName "2026.04.27" @@ -300,7 +300,7 @@ androidComponents { } dependencies { - implementation 'androidx.core:core-ktx:1.18.0' + implementation 'androidx.core:core-ktx:1.19.0' testImplementation 'junit:junit:4.13.2' testImplementation 'org.robolectric:robolectric:4.16.1' @@ -315,18 +315,18 @@ dependencies { implementation 'androidx.preference:preference:1.2.1' implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:2.2.1' - implementation 'com.google.android.material:material:1.13.0' + implementation 'com.google.android.material:material:1.14.0' implementation 'androidx.work:work-runtime:2.11.2' implementation 'com.google.guava:guava:33.6.0-android' annotationProcessor 'androidx.annotation:annotation:1.10.0' // fix errors with libraries - def lifecycle_version = '2.10.0' + def lifecycle_version = '2.11.0' //implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" // https://bumptech.github.io/glide/ - def glide_version = "5.0.7" + def glide_version = "5.0.9" implementation("com.github.bumptech.glide:glide:$glide_version") { exclude group: "com.android.support" } @@ -349,7 +349,7 @@ dependencies { implementation 'com.caverock:androidsvg-aar:1.4' // OkHttp for DNS-over-HTTPS - implementation 'com.squareup.okhttp3:okhttp:5.3.2' + implementation 'com.squareup.okhttp3:okhttp:5.4.0' } // Fix lint error on release builds diff --git a/build.gradle b/build.gradle index 3f821a087..f26a34100 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { } dependencies { // https://developer.android.com/studio - classpath 'com.android.tools.build:gradle:9.0.1' + classpath 'com.android.tools.build:gradle:9.2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5f2bc3f15..4f551a091 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sun Dec 15 12:41:56 CET 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/wgbridge-rs/Cargo.lock b/wgbridge-rs/Cargo.lock index de7af9501..fc6f943ea 100644 --- a/wgbridge-rs/Cargo.lock +++ b/wgbridge-rs/Cargo.lock @@ -29,9 +29,9 @@ checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" [[package]] name = "android_logger" -version = "0.14.1" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b07e8e73d720a1f2e4b6014766e6039fd2e96a4fa44e2a78d0e1fa2ff49826" +checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" dependencies = [ "android_log-sys", "env_filter", @@ -1018,7 +1018,7 @@ version = "0.1.0" dependencies = [ "android_logger", "base64", - "getrandom 0.2.17", + "getrandom 0.3.4", "gotatun", "hex", "ipnetwork", diff --git a/wgbridge-rs/Cargo.toml b/wgbridge-rs/Cargo.toml index 81cc21799..b442593e3 100644 --- a/wgbridge-rs/Cargo.toml +++ b/wgbridge-rs/Cargo.toml @@ -14,13 +14,13 @@ tokio = { version = "1.43", features = ["rt-multi-thread", "net", "sync", "time" base64 = "0.22" hex = "0.4" ipnetwork = "0.21" -getrandom = "0.2" +getrandom = "0.3" libc = "0.2" log = "0.4" [target.'cfg(target_os = "android")'.dependencies] jni = "0.21" -android_logger = "0.14" +android_logger = "0.15" [profile.release] lto = true diff --git a/wgbridge-rs/src/keys.rs b/wgbridge-rs/src/keys.rs index e75c9ed84..2ce6f0d85 100644 --- a/wgbridge-rs/src/keys.rs +++ b/wgbridge-rs/src/keys.rs @@ -8,7 +8,7 @@ use gotatun::x25519::{PublicKey, StaticSecret}; /// Returns a fresh base64 WireGuard private key. pub fn generate_private_key() -> Result { let mut bytes = [0u8; 32]; - getrandom::getrandom(&mut bytes).map_err(|e| format!("getrandom: {e}"))?; + getrandom::fill(&mut bytes).map_err(|e| format!("getrandom: {e}"))?; // StaticSecret::from clamps the scalar per X25519. let secret = StaticSecret::from(bytes); Ok(BASE64.encode(secret.to_bytes()))