diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index eded7b039..74fafb057 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -38,13 +38,13 @@ jobs: fi - name: Checkout libxposed/api - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: libxposed/api path: libxposed/api - name: Checkout libxposed/service - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: libxposed/service path: libxposed/service @@ -52,7 +52,7 @@ jobs: - name: Setup Java uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Setup Gradle diff --git a/.gitignore b/.gitignore index 040a5f3ac..e89e87592 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +.project +.settings +libxposed *.iml .gradle /local.properties diff --git a/build.gradle.kts b/build.gradle.kts index e1fdeb07c..9a0f1914e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,6 +4,7 @@ import com.android.build.gradle.BaseExtension import org.eclipse.jgit.api.Git import org.eclipse.jgit.internal.storage.file.FileRepository import org.eclipse.jgit.storage.file.FileRepositoryBuilder +import com.android.build.gradle.LibraryExtension plugins { alias(libs.plugins.agp.lib) apply false @@ -54,8 +55,8 @@ val androidTargetSdkVersion by extra(34) val androidCompileSdkVersion by extra(34) val androidCompileNdkVersion by extra("25.2.9519653") val androidBuildToolsVersion by extra("34.0.0") -val androidSourceCompatibility by extra(JavaVersion.VERSION_17) -val androidTargetCompatibility by extra(JavaVersion.VERSION_17) +val androidSourceCompatibility by extra(JavaVersion.VERSION_21) +val androidTargetCompatibility by extra(JavaVersion.VERSION_21) tasks.register("clean") { delete(rootProject.buildDir) @@ -201,6 +202,7 @@ fun Project.configureBaseExtension() { "intermediates", "optimized_processed_res", "release", + "optimizeReleaseResources", "resources-release-optimize.ap_" ) val optimized = File("${zip}.opt") @@ -236,3 +238,18 @@ subprojects { configureBaseExtension() } } + +project(":core") { + project(":core") { + afterEvaluate { + if (property("android") is LibraryExtension) { + val android = property("android") as LibraryExtension + android.run { + buildTypes { + release { proguardFiles(rootProject.file("share/lspatch-rules.pro")) } + } + } + } + } + } +} diff --git a/core b/core index f3beb8688..69f73908e 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit f3beb8688fc4d9e28d6a7123cae1a27bd039df17 +Subproject commit 69f73908ef82eaaac3d81e6274cbd625e2a5a418 diff --git a/gradle/lspatch.versions.toml b/gradle/lspatch.versions.toml index d80798ee5..f1fbcd9a3 100644 --- a/gradle/lspatch.versions.toml +++ b/gradle/lspatch.versions.toml @@ -1,13 +1,13 @@ [versions] -room = "2.5.2" +room = "2.6.1" accompanist = "0.27.0" compose-destinations = "1.9.42-beta" shizuku = "13.1.2" hiddenapi-refine = "4.3.0" hiddenapi-stub = "4.2.0" -compose-bom = "2023.06.01" -kotlin = "1.8.21" -ksp = "1.8.21-1.0.11" +compose-bom = "2024.05.00" +kotlin = "1.9.23" +ksp = "1.9.23-1.0.20" commons-io = "2.13.0" beust-jcommander = "1.82" google-gson = "2.10.1" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd4917..e6441136f 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e0930..b82aa23a4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f1..25da30dbd 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index 33611f536..a7cb86c85 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -25,10 +25,6 @@ android { } buildTypes { - debug { - isMinifyEnabled = true - proguardFiles("proguard-rules-debug.pro") - } release { isMinifyEnabled = true proguardFiles( @@ -41,21 +37,13 @@ android { } } - kotlinOptions { - jvmTarget = "17" - } - - kotlin { - jvmToolchain(17) - } - buildFeatures { compose = true buildConfig = true } composeOptions { - kotlinCompilerExtensionVersion = "1.4.7" + kotlinCompilerExtensionVersion = "1.5.13" } namespace = "org.lsposed.lspatch" diff --git a/patch-loader/build.gradle.kts b/patch-loader/build.gradle.kts index e9e03a883..fab09dff9 100644 --- a/patch-loader/build.gradle.kts +++ b/patch-loader/build.gradle.kts @@ -40,9 +40,11 @@ androidComponents.onVariants { variant -> task("copySo$variantCapped") { dependsOn("assemble$variantCapped") + dependsOn("strip${variantCapped}DebugSymbols") + val libDir = variant.name + "/strip${variantCapped}DebugSymbols" from( fileTree( - "dir" to "$buildDir/intermediates/stripped_native_libs/${variant.name}/out/lib", + "dir" to "$buildDir/intermediates/stripped_native_libs/$libDir/out/lib", "include" to listOf("**/liblspatch.so") ) ) diff --git a/share/android/build.gradle.kts b/share/android/build.gradle.kts index e7d9dd96d..125a6818b 100644 --- a/share/android/build.gradle.kts +++ b/share/android/build.gradle.kts @@ -9,13 +9,6 @@ android { androidResources = false buildConfig = false } - - buildTypes { - release { - isMinifyEnabled = true - proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt")) - } - } } dependencies { diff --git a/share/lspatch-rules.pro b/share/lspatch-rules.pro new file mode 100644 index 000000000..07290b4d2 --- /dev/null +++ b/share/lspatch-rules.pro @@ -0,0 +1,9 @@ +-keepnames class org.lsposed.lspd.deopt.* +-keepnames class org.lsposed.lspd.hooker.** { *; } +-keepnames class org.lsposed.lspd.impl.LSPosedContext +-keepnames class org.lsposed.lspd.impl.LSPosedHelper +-keepnames class org.lsposed.lspd.impl.LSPosedHookCallback +-keepnames class org.lsposed.lspd.util.Hookers +-keepnames class org.lsposed.lspd.util.LspModuleClassLoader + +-keepattributes SourceFile,LineNumberTable