feat: update dependencies, improve build

- New zip-android version fixes an issue on Android 7/8 devices
- Enable Gradle configuration cache
This commit is contained in:
rushiiMachine 2025-07-07 22:37:43 -07:00
parent 04260ddfd6
commit 464835754e
No known key found for this signature in database
GPG key ID: DCBE5952BB3B6420
10 changed files with 41 additions and 51 deletions

View file

@ -5,5 +5,5 @@
- Better UI for conflicting package names - Better UI for conflicting package names
- Auto-rename package names when adding new installs...? - Auto-rename package names when adding new installs...?
- `IconOptionsScreen` - `IconOptionsScreen`
- https://discord.com/channels/811255666990907402/1373756392892272691/1380726498725593220 - https://discord.com/channels/811255666990907402/1373756392892272691/1380726498725593220
- Reset button on PatchOptionsScreen? - Reset button on PatchOptionsScreen?

View file

@ -1,5 +1,8 @@
@file:Suppress("UnstableApiUsage") @file:Suppress("UnstableApiUsage")
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins { plugins {
alias(libs.plugins.android.application) alias(libs.plugins.android.application)
alias(libs.plugins.compose.compiler) alias(libs.plugins.compose.compiler)
@ -121,20 +124,6 @@ android {
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
} }
kotlinOptions {
val reportsDir = layout.buildDirectory.asFile.get()
.resolve("reports").absolutePath
jvmTarget = "1.8"
freeCompilerArgs += listOf(
"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api",
"-opt-in=androidx.compose.animation.ExperimentalAnimationApi",
"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi",
"-opt-in=androidx.compose.foundation.layout.ExperimentalLayoutApi",
"-P", "plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=${reportsDir}",
)
}
buildFeatures { buildFeatures {
buildConfig = true buildConfig = true
compose = true compose = true
@ -148,7 +137,21 @@ android {
kotlin { kotlin {
sourceSets.all { sourceSets.all {
languageSettings.enableLanguageFeature("ExplicitBackingFields") languageSettings.enableLanguageFeature("ExplicitBackingFields")
languageSettings.enableLanguageFeature("WhenGuards") }
compilerOptions {
val reportsDir = layout.buildDirectory.asFile.get()
.resolve("reports").absolutePath
jvmTarget = JvmTarget.JVM_1_8
freeCompilerArgs.addAll(
"-opt-in=kotlin.time.ExperimentalTime",
"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api",
"-opt-in=androidx.compose.animation.ExperimentalAnimationApi",
"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi",
"-opt-in=androidx.compose.foundation.layout.ExperimentalLayoutApi",
"-P", "plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=${reportsDir}",
"-XXLanguage:+PropertyParamAnnotationDefaultTargetMode", // @StringRes in field parameters of a class warning
)
} }
} }
@ -170,7 +173,6 @@ dependencies {
debugImplementation(libs.compose.ui.tooling) debugImplementation(libs.compose.ui.tooling)
debugImplementation(libs.compose.runtime.tracing) debugImplementation(libs.compose.runtime.tracing)
implementation(libs.kotlinx.datetime)
implementation(libs.kotlinx.immutable) implementation(libs.kotlinx.immutable)
implementation(libs.kotlinx.serialization.json) implementation(libs.kotlinx.serialization.json)
@ -184,10 +186,9 @@ dependencies {
implementation(libs.baksmali) implementation(libs.baksmali)
implementation(libs.compose.pipette) implementation(libs.compose.pipette)
implementation(libs.compose.shimmer) implementation(libs.compose.shimmer)
implementation(variantOf(libs.zip) { artifactType("aar") }) implementation(libs.zip)
@Suppress("UseTomlInstead") coreLibraryDesugaring(libs.desugaring)
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
} }
fun ProviderFactory.execIgnoreCode(vararg command: String): String = run { fun ProviderFactory.execIgnoreCode(vararg command: String): String = run {

View file

@ -12,7 +12,6 @@ import com.aliucord.manager.BuildConfig
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.util.IS_PROBABLY_EMULATOR import com.aliucord.manager.util.IS_PROBABLY_EMULATOR
import com.aliucord.manager.util.isPlayProtectEnabled import com.aliucord.manager.util.isPlayProtectEnabled
import kotlinx.datetime.Instant
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
@ -22,6 +21,7 @@ import java.text.SimpleDateFormat
import java.util.Date import java.util.Date
import java.util.Locale import java.util.Locale
import kotlin.time.Duration import kotlin.time.Duration
import kotlin.time.Instant
/** /**
* Central manager for storing all attempted installations and * Central manager for storing all attempted installations and

View file

@ -22,10 +22,8 @@ import com.aliucord.manager.util.*
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.ImmutableMap
import kotlinx.coroutines.* import kotlinx.coroutines.*
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import java.util.UUID import java.util.UUID
import kotlin.time.Duration import kotlin.time.*
import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds import kotlin.time.Duration.Companion.seconds

View file

@ -1,11 +1,11 @@
[versions] [versions]
accompanist = "0.37.3" accompanist = "0.37.3"
agp = "8.10.1" agp = "8.11.0"
androidx-activity = "1.10.1" androidx-activity = "1.10.1"
androidx-core = "1.16.0" androidx-core = "1.16.0"
androidx-splashscreen = "1.0.1" androidx-splashscreen = "1.0.1"
androidx-lifecycle = "2.9.1" androidx-lifecycle = "2.9.1"
apksig = "8.10.1" apksig = "8.11.0"
axml = "1.0.1" axml = "1.0.1"
binary-resources = "2.0.1" binary-resources = "2.0.1"
bouncycastle = "1.81" bouncycastle = "1.81"
@ -13,18 +13,18 @@ coil = "3.2.0"
compose = "1.8.3" compose = "1.8.3"
compose-material3 = "1.3.2" compose-material3 = "1.3.2"
compose-pipette = "1.0.1" compose-pipette = "1.0.1"
#diff = "4.12" desugaring = "2.1.5"
diff = "4.16"
koin = "4.1.0" koin = "4.1.0"
kotlin = "2.1.21" kotlin = "2.2.0"
kotlinx-datetime = "0.6.2"
kotlinx-immutable = "0.4.0" kotlinx-immutable = "0.4.0"
kotlinx-serialization = "1.8.1" kotlinx-serialization = "1.9.0"
ktor = "3.2.0-eap-1351" ktor = "3.2.1"
microg = "0.3.6.244735" microg = "0.3.6.244735"
shimmer = "1.3.3" shimmer = "1.3.3"
smali = "3.0.9" smali = "3.0.9"
voyager = "1.1.0-beta03" voyager = "1.1.0-beta03"
zip = "2.2.0" zip = "2.3.0"
[libraries] [libraries]
# Accompanist # Accompanist
@ -63,7 +63,6 @@ koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" } koin-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" }
# KotlinX # KotlinX
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
kotlinx-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinx-immutable" } kotlinx-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinx-immutable" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
@ -84,14 +83,14 @@ apksig = { module = "com.android.tools.build:apksig", version.ref = "apksig" }
axml = { module = "com.aliucord:axml", version.ref = "axml" } axml = { module = "com.aliucord:axml", version.ref = "axml" }
binaryResources = { module = "com.aliucord:binary-resources", version.ref = "binary-resources" } binaryResources = { module = "com.aliucord:binary-resources", version.ref = "binary-resources" }
bouncycastle = { module = "org.bouncycastle:bcpkix-jdk18on", version.ref = "bouncycastle" } bouncycastle = { module = "org.bouncycastle:bcpkix-jdk18on", version.ref = "bouncycastle" }
#diff = { module = "io.github.java-diff-utils:java-diff-utils", version.ref = "diff" } diff = { module = "io.github.java-diff-utils:java-diff-utils", version.ref = "diff" }
diff = "com.github.Aliucord:java-diff-utils:a0002d1d40" # TODO: remove when https://github.com/java-diff-utils/java-diff-utils/pull/198 is released
smali = { module = "com.android.tools.smali:smali", version.ref = "smali" } smali = { module = "com.android.tools.smali:smali", version.ref = "smali" }
baksmali = { module = "com.android.tools.smali:smali-baksmali", version.ref = "smali" } baksmali = { module = "com.android.tools.smali:smali-baksmali", version.ref = "smali" }
zip = { module = "io.github.diamondminer88:zip-android", version.ref = "zip" } # Only use the "aar" artifact zip = { module = "io.github.diamondminer88:zip-android", version.ref = "zip" }
# Other # Other
microg = { module = "org.microg.gms:play-services-safetynet", version.ref = "microg" } microg = { module = "org.microg.gms:play-services-safetynet", version.ref = "microg" }
desugaring = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugaring" }
[bundles] [bundles]
accompanist = [ accompanist = [

Binary file not shown.

View file

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

6
gradlew vendored
View file

@ -114,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;; NONSTOP* ) nonstop=true ;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
@ -205,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command: # Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped. # and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line. # treated as '${Hostname}' itself on the command line.
@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \ set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \ "-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \ -classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@" "$@"
# Stop when "xargs" is not available. # Stop when "xargs" is not available.

4
gradlew.bat vendored
View file

@ -70,11 +70,11 @@ goto fail
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell

View file

@ -17,14 +17,6 @@ dependencyResolutionManagement {
name = "aliucord" name = "aliucord"
url = uri("https://maven.aliucord.com/snapshots") url = uri("https://maven.aliucord.com/snapshots")
} }
maven { // TODO: remove, refer to libs.versions.toml
name = "jitpack"
url = uri("https://jitpack.io")
}
maven { // TODO: remove when Ktor 3.2.1 released
name = "ktor-eap"
url = uri("https://maven.pkg.jetbrains.space/public/p/ktor/eap")
}
} }
} }