From 2ffd1ab0267af59d3170b79b441ad74aa123be21 Mon Sep 17 00:00:00 2001 From: tomikun <60690056+alexytomi@users.noreply.github.com> Date: Sat, 1 Aug 2026 12:51:01 +0800 Subject: [PATCH] bump(AGP): 8.7.2 to 9.3.1 Required for bytehook to build --- .github/workflows/android.yml | 2 +- app_pojavlauncher/build.gradle | 77 +++++++++++++----------- build.gradle | 4 +- gradle.properties | 24 +++++++- gradle/wrapper/gradle-wrapper.properties | 2 +- 5 files changed, 69 insertions(+), 40 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 4e4ecffc0..9420fb239 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -71,7 +71,7 @@ jobs: - uses: gradle/actions/setup-gradle@v4 with: validate-wrappers: false - gradle-version: "8.11" + gradle-version: "9.6.1" - name: Run scripts run: | diff --git a/app_pojavlauncher/build.gradle b/app_pojavlauncher/build.gradle index befe394f0..eef9d9885 100644 --- a/app_pojavlauncher/build.gradle +++ b/app_pojavlauncher/build.gradle @@ -1,44 +1,42 @@ plugins { - id 'com.android.application' version '8.7.2' + id 'com.android.application' version '9.3.1' } static def getDate() { return new Date().format('yyyyMMdd') } def getVersionName = { // Get the last version tag, as well as the short head of the last commit - ByteArrayOutputStream TAG = new ByteArrayOutputStream() + String TAG = "" String semVer = "1.1.7" // Used by the fallback for github actions - ByteArrayOutputStream TAG_PART_COMMIT = new ByteArrayOutputStream() + String TAG_PART_COMMIT = "" String TAG_STRING - exec { - try { + try { + TAG = providers.exec { commandLine 'git', 'describe', '--tags' - ignoreExitValue true - standardOutput = TAG - } catch (Exception e) { - e.printStackTrace(); - } + ignoreExitValue = true + }.getStandardOutput().asText.get() + } catch (Exception e) { + e.printStackTrace() } - if (TAG.toString() == "") { - exec { - // Fallback for action builds - try { + // Fallback for action builds + if (TAG.toString().trim().isEmpty()) { + try { + TAG_PART_COMMIT = providers.exec { commandLine 'git', 'describe', '--always', '--tags' - ignoreExitValue true - standardOutput = TAG_PART_COMMIT - } catch (Exception e) { - } + ignoreExitValue = true + }.getStandardOutput().asText.get() + } catch (Exception ignored) { } } - if(TAG.toString() != ""){ - TAG_STRING = TAG.toString() + if(!TAG.isBlank()){ + TAG_STRING = TAG }else { - if(TAG_PART_COMMIT.toString().trim() == ""){ + if(TAG_PART_COMMIT.isBlank()){ //Fallback no repo return ("LOCAL-" + "${getDate()}") }else { @@ -77,11 +75,8 @@ configurations { android { namespace 'net.kdt.pojavlaunch' - compileSdk = 34 + compileSdk = 37 - lintOptions { - abortOnError false - } signingConfigs { customDebug { @@ -146,7 +141,7 @@ android { release { // Don't set to true or java.awt will be a.a or something similar. minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.customRelease // defaultConfig already set // multiDexEnabled = true @@ -185,11 +180,9 @@ android { packagingOptions { jniLibs { useLegacyPackaging = true + keepDebugSymbols += ['**/libcutils.so'] + pickFirsts += ['**/libbytehook.so'] } - doNotStrip += [ - "**/libcutils.so" - ] - pickFirst '**/libbytehook.so' } buildFeatures { @@ -197,13 +190,27 @@ android { buildConfig true } - buildToolsVersion = '34.0.0' + lint { + abortOnError false + } } afterEvaluate { - // Explicit dependencies for which the apk relies on - tasks.mergeDebugAssets.dependsOn(":forge_installer:jar", ":arc_dns_injector:jar", ":methods_injector_agent:jar", ":jre_lwjgl3glfw:jar") - tasks.mergeReleaseAssets.dependsOn(":forge_installer:jar", ":arc_dns_injector:jar", ":methods_injector_agent:jar", ":jre_lwjgl3glfw:jar") + def componentJars = [ + ":forge_installer:jar", + ":arc_dns_injector:jar", + ":methods_injector_agent:jar", + ":jre_lwjgl3glfw:jar" + ] + + tasks.withType(com.android.build.gradle.tasks.MergeSourceSetFolders).configureEach { t -> + t.dependsOn(componentJars) + } + + // Needed or else the release builds complain about undeclared dependencies + tasks.matching { it.name.toLowerCase().contains("lint") }.configureEach { t -> + t.dependsOn(componentJars) + } } dependencies { @@ -243,4 +250,4 @@ dependencies { implementation "net.java.dev.jna:jna:5.14.0@aar" } -apply from: rootProject.file('gradle/prefab_bypass.gradle') \ No newline at end of file +apply from: rootProject.file('gradle/prefab_bypass.gradle') diff --git a/build.gradle b/build.gradle index 80629ac0f..547f35dc5 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ import java.security.MessageDigest plugins{ - id 'com.android.application' version '8.7.2' apply false - id 'com.android.library' version '8.7.2' apply false + id 'com.android.application' version '9.3.1' apply false + id 'com.android.library' version '9.3.1' apply false } static void hashFileWithDigest(File fileToHash, MessageDigest digest){ diff --git a/gradle.properties b/gradle.properties index d3bacf9dc..981938516 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,8 +2,30 @@ org.gradle.configureondemand=true android.useAndroidX=true -android.bundle.language.enableSplit=false +android.enableJetifier=true # Increase Gradle daemon RAM allocation org.gradle.jvmargs=-Xmx4096M + +# Ensure localizations aren't ruined +android.bundle.language.enableSplit=false + +# We still use R for switch cases, so keep these options so they work android.nonTransitiveRClass=false android.nonFinalResIds=false +android.defaults.buildfeatures.resvalues=true + +# Android studio added it idk +android.sdk.defaultTargetSdkToCompileSdkIfUnset=false +android.enableAppCompileTimeRClass=false +android.usesSdkInManifest.disallowed=false +android.uniquePackageNames=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false +android.r8.optimizedResourceShrinking=false +android.builtInKotlin=false +android.newDsl=false + +# Enabled parallel sync for Gradle 9.4+ +org.gradle.tooling.parallel=true +org.gradle.parallel=true +org.gradle.caching=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index abec028aa..2cda22016 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ #Fri Dec 06 21:56:04 CET 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME