Update dependencies

1. Use JDK 21
2. Update ksp for compatibility (compulsory)
3. R8 claims that org.lsposed.lspatch.util.ModuleLoader is needed

We use rules in share/lspatch-rules.pro to ensure that LSPatch works
properly after R8 engine
This commit is contained in:
JingMatrix 2023-07-20 21:03:35 +02:00
parent 3dacebc6bf
commit cddf811b9c
14 changed files with 70 additions and 54 deletions

View File

@ -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

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
.project
.settings
libxposed
*.iml
.gradle
/local.properties

2
.gitmodules vendored
View File

@ -4,7 +4,7 @@
branch = android10-release
[submodule "core"]
path = core
url = https://github.com/LSPosed/LSPosed.git
url = https://github.com/JingMatrix/LSPosed.git
branch = master
[submodule "patch/libs/manifest-editor"]
path = patch/libs/manifest-editor

View File

@ -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,11 +55,11 @@ 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<Delete>("clean") {
delete(rootProject.buildDir)
delete(layout.buildDirectory)
}
listOf("Debug", "Release").forEach { variant ->
@ -80,7 +81,7 @@ fun Project.configureBaseExtension() {
buildToolsVersion = androidBuildToolsVersion
externalNativeBuild.cmake {
version = "3.22.1+"
version = "3.28.1+"
}
defaultConfig {
@ -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,17 @@ subprojects {
configureBaseExtension()
}
}
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")) }
}
}
}
}
}

2
core

@ -1 +1 @@
Subproject commit f8927757e8704d96611e1f3d75f702e3f0ce061f
Subproject commit 69f73908ef82eaaac3d81e6274cbd625e2a5a418

View File

@ -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"

Binary file not shown.

View File

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

22
gradlew vendored
View File

@ -83,7 +83,8 @@ done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@ -130,10 +131,13 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
@ -141,7 +145,7 @@ 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
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@ -149,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@ -198,11 +202,11 @@ 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
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# 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
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \

20
gradlew.bat vendored
View File

@ -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

View File

@ -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"

View File

@ -40,9 +40,11 @@ androidComponents.onVariants { variant ->
task<Copy>("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")
)
)

View File

@ -9,13 +9,6 @@ android {
androidResources = false
buildConfig = false
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
}
}
}
dependencies {

9
share/lspatch-rules.pro Normal file
View File

@ -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