diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index 272908b..dc22203 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -5,7 +5,7 @@ on: push: branches: [ master ] paths: - - manager/src/main/res/values/strings.xml + - manager/src/main/res/values/strings.xml jobs: synchronize-with-crowdin: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cbe2030..7cd5df2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,6 +15,11 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest ] + env: + CCACHE_COMPILERCHECK: '%compiler% -dumpmachine; %compiler% -dumpversion' + CCACHE_NOHASHDIR: 'true' + CCACHE_HARDLINK: 'true' + CCACHE_BASEDIR: '${{ github.workspace }}' steps: - name: Checkout @@ -34,62 +39,55 @@ jobs: echo ${{ secrets.KEY_STORE }} | base64 --decode > key.jks fi - - name: Set up JDK 11 + - name: Checkout libxposed/api + uses: actions/checkout@v3 + with: + repository: libxposed/api + path: libxposed/api + + - name: Checkout libxposed/service + uses: actions/checkout@v3 + with: + repository: libxposed/service + path: libxposed/service + + - name: Setup Java uses: actions/setup-java@v3 with: - java-version: '11' + java-version: '17' distribution: 'temurin' - cache: 'gradle' - - name: Cache gradle dependencies - uses: actions/cache@v3 + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - !~/.gradle/caches/build-cache-* - key: gradle-deps-core-${{ hashFiles('**/build.gradle.kts') }} - restore-keys: | - gradle-deps + gradle-home-cache-cleanup: true - - name: Cache gradle build - uses: actions/cache@v3 + - name: Set up ccache + uses: hendrikmuhs/ccache-action@v1.2 with: - path: | - ~/.gradle/caches/build-cache-* - ~/.gradle/buildOutputCleanup/cache.properties - key: gradle-builds-core-${{ github.sha }} - restore-keys: | - gradle-builds + max-size: 2G + key: ${{ runner.os }} + restore-keys: ${{ runner.os }} + save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} - - name: Cache native build - uses: actions/cache@v3 - with: - path: | - ~/.ccache - patch-loader/build/.lto-cache - key: native-cache-${{ github.sha }} - restore-keys: native-cache- - - - name: Install dep + - name: Build dependencies + working-directory: libxposed run: | - sudo apt-get install -y ccache - ccache -o max_size=1G - ccache -o hash_dir=false - ccache -o compiler_check='%compiler% -dumpmachine; %compiler% -dumpversion' - ccache -zp + cd api + echo 'org.gradle.jvmargs=-Xmx2048m' >> gradle.properties + ./gradlew :api:publishApiPublicationToMavenLocal + cd .. + cd service + echo 'org.gradle.jvmargs=-Xmx2048m' >> gradle.properties + ./gradlew :interface:publishInterfacePublicationToMavenLocal - name: Build with Gradle run: | - [ $(du -s ~/.gradle/wrapper | awk '{ print $1 }') -gt 250000 ] && rm -rf ~/.gradle/wrapper/* || true - find ~/.gradle/caches -exec touch -d "2 days ago" {} + || true echo 'org.gradle.caching=true' >> gradle.properties echo 'org.gradle.parallel=true' >> gradle.properties - echo 'org.gradle.vfs.watch=true' >> gradle.properties echo 'org.gradle.jvmargs=-Xmx2048m' >> gradle.properties echo 'android.native.buildOutput=verbose' >> gradle.properties ./gradlew buildAll - ccache -s - name: Upload Debug artifact uses: actions/upload-artifact@v3 diff --git a/.gitmodules b/.gitmodules index 78efe21..7928cfd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "core"] path = core url = https://github.com/LSPosed/LSPosed.git - branch = lspatch + branch = master [submodule "patch/libs/manifest-editor"] path = patch/libs/manifest-editor url = https://github.com/WindySha/ManifestEditor.git diff --git a/apkzlib/build.gradle.kts b/apkzlib/build.gradle.kts index 64e4e58..dd1da19 100644 --- a/apkzlib/build.gradle.kts +++ b/apkzlib/build.gradle.kts @@ -14,8 +14,8 @@ dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("org.bouncycastle:bcpkix-jdk15on:1.70") implementation("org.bouncycastle:bcprov-jdk15on:1.70") - api("com.google.guava:guava:31.0.1-jre") - api("com.android.tools.build:apksig:7.1.2") - compileOnlyApi("com.google.auto.value:auto-value-annotations:1.9") - annotationProcessor("com.google.auto.value:auto-value:1.9") + api("com.google.guava:guava:32.0.1-jre") + api("com.android.tools.build:apksig:8.0.2") + compileOnlyApi("com.google.auto.value:auto-value-annotations:1.10.1") + annotationProcessor("com.google.auto.value:auto-value:1.10.1") } diff --git a/build.gradle.kts b/build.gradle.kts index 0320466..7c97561 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,8 +6,8 @@ import org.eclipse.jgit.internal.storage.file.FileRepository import org.eclipse.jgit.storage.file.FileRepositoryBuilder plugins { - id("com.android.application") apply false - id("com.android.library") apply false + alias(libs.plugins.agp.lib) apply false + alias(libs.plugins.agp.app) apply false } buildscript { @@ -17,7 +17,7 @@ buildscript { } dependencies { classpath("org.eclipse.jgit:org.eclipse.jgit:6.3.0.202209071007-r") - classpath(kotlin("gradle-plugin", version = "1.7.20")) + classpath(kotlin("gradle-plugin", version = "1.8.21")) } } @@ -54,8 +54,8 @@ val androidTargetSdkVersion by extra(33) val androidCompileSdkVersion by extra(33) val androidCompileNdkVersion by extra("25.1.8937393") val androidBuildToolsVersion by extra("33.0.1") -val androidSourceCompatibility by extra(JavaVersion.VERSION_11) -val androidTargetCompatibility by extra(JavaVersion.VERSION_11) +val androidSourceCompatibility by extra(JavaVersion.VERSION_17) +val androidTargetCompatibility by extra(JavaVersion.VERSION_17) tasks.register("clean") { delete(rootProject.buildDir) diff --git a/core b/core index 5666dca..cb32c70 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 5666dca1e3b83e9b664bfcd096370b1a7da6eff1 +Subproject commit cb32c70951e959855125a0b60f78b5dacbd3e153 diff --git a/gradle.properties b/gradle.properties index 07cc98f..387da39 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,3 @@ -android.experimental.enableNewResourceShrinker=true android.experimental.enableNewResourceShrinker.preciseShrinking=true android.enableAppCompileTimeRClass=true -android.nonTransitiveRClass=true -android.enableR8.fullMode=true android.useAndroidX=true - -agpVersion=7.4.0 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 249e583..c1962a7 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 070cb70..37aef8d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index a69d9cb..aeb74cb 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -143,12 +140,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,6 +194,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in diff --git a/gradlew.bat b/gradlew.bat index f127cfd..93e3f59 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% diff --git a/jar/build.gradle.kts b/jar/build.gradle.kts index ced4dee..55da557 100644 --- a/jar/build.gradle.kts +++ b/jar/build.gradle.kts @@ -27,7 +27,7 @@ fun Jar.configure(variant: String) { into("assets") { from("src/main/assets") - from("${rootProject.projectDir}/out/assets") + from("${rootProject.projectDir}/out/assets/$variant") } exclude("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", "META-INF/*.MF", "META-INF/*.txt", "META-INF/versions/**") diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index 2b573c5..72fa77e 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -1,3 +1,5 @@ +import java.util.Locale + val defaultManagerPackageName: String by rootProject.extra val apiCode: Int by rootProject.extra val verCode: Int by rootProject.extra @@ -6,7 +8,7 @@ val coreVerCode: Int by rootProject.extra val coreVerName: String by rootProject.extra plugins { - id("com.android.application") + alias(libs.plugins.agp.app) id("com.google.devtools.ksp") id("dev.rikka.tools.refine") id("kotlin-parcelize") @@ -29,23 +31,33 @@ android { } release { isMinifyEnabled = true - proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + all { + sourceSets[name].assets.srcDirs(rootProject.projectDir.resolve("out/assets/$name")) } } kotlinOptions { - jvmTarget = "11" + jvmTarget = "17" + } + + kotlin { + jvmToolchain(17) } buildFeatures { compose = true + buildConfig = true } composeOptions { - kotlinCompilerExtensionVersion = "1.3.2" + kotlinCompilerExtensionVersion = "1.4.7" } - sourceSets["main"].assets.srcDirs(rootProject.projectDir.resolve("out/assets")) namespace = "org.lsposed.lspatch" applicationVariants.all { @@ -59,8 +71,8 @@ android { afterEvaluate { android.applicationVariants.forEach { variant -> - val variantLowered = variant.name.toLowerCase() - val variantCapped = variant.name.capitalize() + val variantLowered = variant.name.lowercase() + val variantCapped = variant.name.replaceFirstChar { it.uppercase() } task("copy${variantCapped}Assets") { dependsOn(":meta-loader:copy$variantCapped") @@ -68,7 +80,7 @@ afterEvaluate { tasks["merge${variantCapped}Assets"].dependsOn(this) into("$buildDir/intermediates/assets/$variantLowered/merge${variantCapped}Assets") - from("${rootProject.projectDir}/out/assets") + from("${rootProject.projectDir}/out/assets/${variant.name}") } task("build$variantCapped") { @@ -86,38 +98,38 @@ dependencies { implementation(projects.share.android) implementation(projects.share.java) - val roomVersion = "2.4.3" + val roomVersion = "2.5.2" val accompanistVersion = "0.27.0" - val composeDestinationsVersion = "1.7.25-beta" - implementation(platform("androidx.compose:compose-bom:2022.10.00")) + val composeDestinationsVersion = "1.9.42-beta" + implementation(platform("androidx.compose:compose-bom:2023.06.01")) annotationProcessor("androidx.room:room-compiler:$roomVersion") - compileOnly("dev.rikka.hidden:stub:3.4.3") + compileOnly("dev.rikka.hidden:stub:4.2.0") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.customview:customview:1.2.0-alpha02") debugImplementation("androidx.customview:customview-poolingcontainer:1.0.0") - implementation("androidx.activity:activity-compose:1.6.1") + implementation("androidx.activity:activity-compose:1.7.2") implementation("androidx.compose.material:material-icons-extended") implementation("androidx.compose.material3:material3") implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-tooling-preview") - implementation("androidx.core:core-ktx:1.9.0") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1") - implementation("androidx.navigation:navigation-compose:2.5.3") - implementation("androidx.preference:preference:1.2.0") + implementation("androidx.core:core-ktx:1.10.1") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1") + implementation("androidx.navigation:navigation-compose:2.6.0") + implementation(libs.androidx.preference) implementation("androidx.room:room-ktx:$roomVersion") implementation("androidx.room:room-runtime:$roomVersion") implementation("com.google.accompanist:accompanist-navigation-animation:$accompanistVersion") implementation("com.google.accompanist:accompanist-pager:$accompanistVersion") implementation("com.google.accompanist:accompanist-swiperefresh:$accompanistVersion") - implementation("com.google.android.material:material:1.7.0") - implementation("com.google.code.gson:gson:2.10") - implementation("dev.rikka.shizuku:api:12.2.0") - implementation("dev.rikka.shizuku:provider:12.2.0") - implementation("dev.rikka.tools.refine:runtime:3.1.1") + implementation(libs.material) + implementation(libs.gson) + implementation("dev.rikka.shizuku:api:13.1.2") + implementation("dev.rikka.shizuku:provider:13.1.2") + implementation("dev.rikka.tools.refine:runtime:4.3.0") implementation("io.github.raamcosta.compose-destinations:core:$composeDestinationsVersion") - implementation("me.zhanghai.android.appiconloader:appiconloader:1.5.0") - implementation("org.lsposed.hiddenapibypass:hiddenapibypass:4.3") + implementation(libs.appiconloader) + implementation(libs.hiddenapibypass) ksp("androidx.room:room-compiler:$roomVersion") ksp("io.github.raamcosta.compose-destinations:ksp:$composeDestinationsVersion") } diff --git a/manager/proguard-rules-debug.pro b/manager/proguard-rules-debug.pro index 941b01e..bffe99f 100644 --- a/manager/proguard-rules-debug.pro +++ b/manager/proguard-rules-debug.pro @@ -6,3 +6,5 @@ -keepclassmembers class org.lsposed.patch.LSPatch { private ; } +-dontwarn com.google.auto.value.AutoValue$Builder +-dontwarn com.google.auto.value.AutoValue diff --git a/manager/proguard-rules.pro b/manager/proguard-rules.pro index 157b9a1..4ceeb1c 100644 --- a/manager/proguard-rules.pro +++ b/manager/proguard-rules.pro @@ -16,3 +16,5 @@ -keepclassmembers class org.lsposed.patch.LSPatch { private ; } +-dontwarn com.google.auto.value.AutoValue$Builder +-dontwarn com.google.auto.value.AutoValue diff --git a/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt b/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt index f14a8f0..a95f939 100644 --- a/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt +++ b/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt @@ -15,7 +15,7 @@ object ManagerService : ILSPApplicationService.Stub() { private const val TAG = "ManagerService" - override fun requestModuleBinder(name: String): IBinder { + override fun getLegacyModulesList(): MutableList { TODO("Not yet implemented") } @@ -32,10 +32,6 @@ object ManagerService : ILSPApplicationService.Stub() { TODO("Not yet implemented") } - override fun requestRemotePreference(packageName: String, userId: Int, callback: IBinder?): Bundle { - TODO("Not yet implemented") - } - override fun requestInjectedManagerBinder(binder: List?): ParcelFileDescriptor? { return null } diff --git a/manager/src/main/java/org/lsposed/lspatch/ui/activity/MainActivity.kt b/manager/src/main/java/org/lsposed/lspatch/ui/activity/MainActivity.kt index 2d9e117..017d2bb 100644 --- a/manager/src/main/java/org/lsposed/lspatch/ui/activity/MainActivity.kt +++ b/manager/src/main/java/org/lsposed/lspatch/ui/activity/MainActivity.kt @@ -25,7 +25,7 @@ import org.lsposed.lspatch.ui.util.LocalSnackbarHost class MainActivity : ComponentActivity() { - @OptIn(ExperimentalMaterial3Api::class, ExperimentalAnimationApi::class) + @OptIn(ExperimentalAnimationApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { @@ -55,7 +55,7 @@ private fun BottomBar(navController: NavHostController) { ?: NavGraphs.root.startAppDestination var topDestination by rememberSaveable { mutableStateOf(currentDestination.route) } LaunchedEffect(currentDestination) { - val queue = navController.backQueue + val queue = navController.currentBackStack.value if (queue.size == 2) topDestination = queue[1].destination.route!! else if (queue.size > 2) topDestination = queue[2].destination.route!! } diff --git a/meta-loader/build.gradle.kts b/meta-loader/build.gradle.kts index 21fa5db..f591a0f 100644 --- a/meta-loader/build.gradle.kts +++ b/meta-loader/build.gradle.kts @@ -1,9 +1,10 @@ +import java.util.Locale + plugins { - id("com.android.application") + alias(libs.plugins.agp.app) } android { - defaultConfig { multiDexEnabled = false } @@ -18,8 +19,8 @@ android { } androidComponents.onVariants { variant -> - val variantCapped = variant.name.capitalize() - val variantLowered = variant.name.toLowerCase() + val variantCapped = variant.name.replaceFirstChar { it.uppercase() } + val variantLowered = variant.name.lowercase() task("copyDex$variantCapped") { dependsOn("assemble$variantCapped") @@ -28,7 +29,7 @@ androidComponents.onVariants { variant -> "$buildDir/intermediates/dex/$variantLowered/mergeDex$variantCapped" from(dexOutPath) rename("classes.dex", "metaloader.dex") - into("${rootProject.projectDir}/out/assets/lspatch") + into("${rootProject.projectDir}/out/assets/${variant.name}/lspatch") } task("copy$variantCapped") { @@ -43,5 +44,5 @@ androidComponents.onVariants { variant -> dependencies { compileOnly(projects.hiddenapi.stubs) implementation(projects.share.java) - implementation("org.lsposed.hiddenapibypass:hiddenapibypass:4.3") + implementation(libs.hiddenapibypass) } diff --git a/meta-loader/proguard-rules.pro b/meta-loader/proguard-rules.pro index ba99067..70d4e8e 100644 --- a/meta-loader/proguard-rules.pro +++ b/meta-loader/proguard-rules.pro @@ -2,3 +2,6 @@ public static byte[] dex; (); } +-dontwarn androidx.annotation.NonNull +-dontwarn androidx.annotation.Nullable +-dontwarn androidx.annotation.VisibleForTesting diff --git a/patch-loader/build.gradle.kts b/patch-loader/build.gradle.kts index 1a65636..e9e03a8 100644 --- a/patch-loader/build.gradle.kts +++ b/patch-loader/build.gradle.kts @@ -1,5 +1,7 @@ +import java.util.Locale + plugins { - id("com.android.application") + alias(libs.plugins.agp.app) } android { @@ -7,6 +9,10 @@ android { multiDexEnabled = false } + buildFeatures { + buildConfig = true + } + buildTypes { release { isMinifyEnabled = false @@ -23,13 +29,13 @@ android { } androidComponents.onVariants { variant -> - val variantCapped = variant.name.capitalize() + val variantCapped = variant.name.replaceFirstChar { it.uppercase() } task("copyDex$variantCapped") { dependsOn("assemble$variantCapped") from("$buildDir/intermediates/dex/${variant.name}/mergeDex$variantCapped/classes.dex") rename("classes.dex", "loader.dex") - into("${rootProject.projectDir}/out/assets/lspatch") + into("${rootProject.projectDir}/out/assets/${variant.name}/lspatch") } task("copySo$variantCapped") { @@ -40,7 +46,7 @@ androidComponents.onVariants { variant -> "include" to listOf("**/liblspatch.so") ) ) - into("${rootProject.projectDir}/out/assets/lspatch/so") + into("${rootProject.projectDir}/out/assets/${variant.name}/lspatch/so") } task("copy$variantCapped") { @@ -61,5 +67,5 @@ dependencies { implementation(projects.share.android) implementation(projects.share.java) - implementation("com.google.code.gson:gson:2.10") + implementation(libs.gson) } diff --git a/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java b/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java index 8c6b54d..1cbb936 100644 --- a/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java +++ b/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java @@ -85,7 +85,7 @@ public class LSPApplication { } disableProfile(context); - Startup.initXposed(false, ActivityThread.currentProcessName(), service); + Startup.initXposed(false, ActivityThread.currentProcessName(), ActivityThread.currentApplication().getPackageCodePath(), service); Log.i(TAG, "Bootstrap Xposed"); Startup.bootstrapXposed(); // WARN: Since it uses `XResource`, the following class should not be initialized diff --git a/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java b/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java index cc26ec5..fb378e3 100644 --- a/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java +++ b/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java @@ -1,10 +1,10 @@ package org.lsposed.lspatch.service; import android.content.Context; -import android.os.Bundle; import android.os.Environment; import android.os.IBinder; import android.os.ParcelFileDescriptor; +import android.os.RemoteException; import android.util.Log; import org.lsposed.lspatch.loader.util.FileUtils; @@ -58,7 +58,7 @@ public class LocalApplicationService extends ILSPApplicationService.Stub { } @Override - public IBinder requestModuleBinder(String name) { + public List getLegacyModulesList() throws RemoteException { return null; } @@ -72,11 +72,6 @@ public class LocalApplicationService extends ILSPApplicationService.Stub { return new File(Environment.getDataDirectory(), "data/" + packageName + "/shared_prefs/").getAbsolutePath(); } - @Override - public Bundle requestRemotePreference(String packageName, int userId, IBinder callback) { - return null; - } - @Override public ParcelFileDescriptor requestInjectedManagerBinder(List binder) { return null; diff --git a/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java b/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java index 44f4626..0e271f2 100644 --- a/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java +++ b/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java @@ -6,7 +6,6 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.Build; -import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.HandlerThread; @@ -75,7 +74,8 @@ public class RemoteApplicationService implements ILSPApplicationService { } boolean success = latch.await(1, TimeUnit.SECONDS); if (!success) throw new TimeoutException("Bind service timeout"); - } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | InterruptedException | TimeoutException e) { + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | + InterruptedException | TimeoutException e) { Toast.makeText(context, "Manager died", Toast.LENGTH_SHORT).show(); var r = new RemoteException("Failed to get manager binder"); r.initCause(e); @@ -84,8 +84,8 @@ public class RemoteApplicationService implements ILSPApplicationService { } @Override - public IBinder requestModuleBinder(String name) { - return service == null ? null : service.asBinder(); + public List getLegacyModulesList() throws RemoteException { + return service == null ? new ArrayList<>() : service.getLegacyModulesList(); } @Override @@ -98,11 +98,6 @@ public class RemoteApplicationService implements ILSPApplicationService { return new File(Environment.getDataDirectory(), "data/" + packageName + "/shared_prefs/").getAbsolutePath(); } - @Override - public Bundle requestRemotePreference(String packageName, int userId, IBinder callback) throws RemoteException { - return service == null ? null : service.requestRemotePreference(packageName, userId, callback); - } - @Override public IBinder asBinder() { return service == null ? null : service.asBinder(); diff --git a/patch/build.gradle.kts b/patch/build.gradle.kts index be56c5f..fdb10f2 100644 --- a/patch/build.gradle.kts +++ b/patch/build.gradle.kts @@ -20,7 +20,7 @@ dependencies { implementation(projects.apkzlib) implementation(projects.share.java) - implementation("commons-io:commons-io:2.11.0") + implementation("commons-io:commons-io:2.13.0") implementation("com.beust:jcommander:1.82") - implementation("com.google.code.gson:gson:2.10") + implementation("com.google.code.gson:gson:2.10.1") } diff --git a/settings.gradle.kts b/settings.gradle.kts index b5f7c3d..796e182 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,17 +1,14 @@ enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") pluginManagement { - val agpVersion: String by settings repositories { gradlePluginPortal() google() mavenCentral() } plugins { - id("com.android.library") version agpVersion - id("com.android.application") version agpVersion - id("com.google.devtools.ksp") version "1.7.20-1.0.7" - id("dev.rikka.tools.refine") version "3.1.1" + id("com.google.devtools.ksp") version "1.8.21-1.0.11" + id("dev.rikka.tools.refine") version "4.3.0" } } @@ -20,6 +17,16 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + mavenLocal { + content { + includeGroup("io.github.libxposed") + } + } + } + versionCatalogs { + create("libs") { + from(files("core/gradle/libs.versions.toml")) + } } } diff --git a/share/android/build.gradle.kts b/share/android/build.gradle.kts index 136ab05..e7d9dd9 100644 --- a/share/android/build.gradle.kts +++ b/share/android/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("com.android.library") + alias(libs.plugins.agp.lib) } android {