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:
parent
3dacebc6bf
commit
cddf811b9c
|
|
@ -38,13 +38,13 @@ jobs:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Checkout libxposed/api
|
- name: Checkout libxposed/api
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: libxposed/api
|
repository: libxposed/api
|
||||||
path: libxposed/api
|
path: libxposed/api
|
||||||
|
|
||||||
- name: Checkout libxposed/service
|
- name: Checkout libxposed/service
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: libxposed/service
|
repository: libxposed/service
|
||||||
path: libxposed/service
|
path: libxposed/service
|
||||||
|
|
@ -52,7 +52,7 @@ jobs:
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v3
|
uses: actions/setup-java@v3
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '21'
|
||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
libxposed
|
||||||
*.iml
|
*.iml
|
||||||
.gradle
|
.gradle
|
||||||
/local.properties
|
/local.properties
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
branch = android10-release
|
branch = android10-release
|
||||||
[submodule "core"]
|
[submodule "core"]
|
||||||
path = core
|
path = core
|
||||||
url = https://github.com/LSPosed/LSPosed.git
|
url = https://github.com/JingMatrix/LSPosed.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "patch/libs/manifest-editor"]
|
[submodule "patch/libs/manifest-editor"]
|
||||||
path = patch/libs/manifest-editor
|
path = patch/libs/manifest-editor
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.android.build.gradle.BaseExtension
|
||||||
import org.eclipse.jgit.api.Git
|
import org.eclipse.jgit.api.Git
|
||||||
import org.eclipse.jgit.internal.storage.file.FileRepository
|
import org.eclipse.jgit.internal.storage.file.FileRepository
|
||||||
import org.eclipse.jgit.storage.file.FileRepositoryBuilder
|
import org.eclipse.jgit.storage.file.FileRepositoryBuilder
|
||||||
|
import com.android.build.gradle.LibraryExtension
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.agp.lib) apply false
|
alias(libs.plugins.agp.lib) apply false
|
||||||
|
|
@ -54,11 +55,11 @@ val androidTargetSdkVersion by extra(34)
|
||||||
val androidCompileSdkVersion by extra(34)
|
val androidCompileSdkVersion by extra(34)
|
||||||
val androidCompileNdkVersion by extra("25.2.9519653")
|
val androidCompileNdkVersion by extra("25.2.9519653")
|
||||||
val androidBuildToolsVersion by extra("34.0.0")
|
val androidBuildToolsVersion by extra("34.0.0")
|
||||||
val androidSourceCompatibility by extra(JavaVersion.VERSION_17)
|
val androidSourceCompatibility by extra(JavaVersion.VERSION_21)
|
||||||
val androidTargetCompatibility by extra(JavaVersion.VERSION_17)
|
val androidTargetCompatibility by extra(JavaVersion.VERSION_21)
|
||||||
|
|
||||||
tasks.register<Delete>("clean") {
|
tasks.register<Delete>("clean") {
|
||||||
delete(rootProject.buildDir)
|
delete(layout.buildDirectory)
|
||||||
}
|
}
|
||||||
|
|
||||||
listOf("Debug", "Release").forEach { variant ->
|
listOf("Debug", "Release").forEach { variant ->
|
||||||
|
|
@ -80,7 +81,7 @@ fun Project.configureBaseExtension() {
|
||||||
buildToolsVersion = androidBuildToolsVersion
|
buildToolsVersion = androidBuildToolsVersion
|
||||||
|
|
||||||
externalNativeBuild.cmake {
|
externalNativeBuild.cmake {
|
||||||
version = "3.22.1+"
|
version = "3.28.1+"
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
|
|
@ -201,6 +202,7 @@ fun Project.configureBaseExtension() {
|
||||||
"intermediates",
|
"intermediates",
|
||||||
"optimized_processed_res",
|
"optimized_processed_res",
|
||||||
"release",
|
"release",
|
||||||
|
"optimizeReleaseResources",
|
||||||
"resources-release-optimize.ap_"
|
"resources-release-optimize.ap_"
|
||||||
)
|
)
|
||||||
val optimized = File("${zip}.opt")
|
val optimized = File("${zip}.opt")
|
||||||
|
|
@ -236,3 +238,17 @@ subprojects {
|
||||||
configureBaseExtension()
|
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
2
core
|
|
@ -1 +1 @@
|
||||||
Subproject commit f8927757e8704d96611e1f3d75f702e3f0ce061f
|
Subproject commit 69f73908ef82eaaac3d81e6274cbd625e2a5a418
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
[versions]
|
[versions]
|
||||||
room = "2.5.2"
|
room = "2.6.1"
|
||||||
accompanist = "0.27.0"
|
accompanist = "0.27.0"
|
||||||
compose-destinations = "1.9.42-beta"
|
compose-destinations = "1.9.42-beta"
|
||||||
shizuku = "13.1.2"
|
shizuku = "13.1.2"
|
||||||
hiddenapi-refine = "4.3.0"
|
hiddenapi-refine = "4.3.0"
|
||||||
hiddenapi-stub = "4.2.0"
|
hiddenapi-stub = "4.2.0"
|
||||||
compose-bom = "2023.06.01"
|
compose-bom = "2024.05.00"
|
||||||
kotlin = "1.8.21"
|
kotlin = "1.9.23"
|
||||||
ksp = "1.8.21-1.0.11"
|
ksp = "1.9.23-1.0.20"
|
||||||
commons-io = "2.13.0"
|
commons-io = "2.13.0"
|
||||||
beust-jcommander = "1.82"
|
beust-jcommander = "1.82"
|
||||||
google-gson = "2.10.1"
|
google-gson = "2.10.1"
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,6 +1,7 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
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
|
networkTimeout=10000
|
||||||
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,8 @@ done
|
||||||
# This is normally unused
|
# This is normally unused
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
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.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
|
|
@ -130,10 +131,13 @@ location of your Java installation."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
JAVACMD=java
|
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
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
location of your Java installation."
|
location of your Java installation."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
# Increase the maximum file descriptors if we can.
|
||||||
|
|
@ -141,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
case $MAX_FD in #(
|
case $MAX_FD in #(
|
||||||
max*)
|
max*)
|
||||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
# 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 ) ||
|
MAX_FD=$( ulimit -H -n ) ||
|
||||||
warn "Could not query maximum file descriptor limit"
|
warn "Could not query maximum file descriptor limit"
|
||||||
esac
|
esac
|
||||||
|
|
@ -149,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
'' | soft) :;; #(
|
'' | soft) :;; #(
|
||||||
*)
|
*)
|
||||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
# 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" ||
|
ulimit -n "$MAX_FD" ||
|
||||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||||
esac
|
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.
|
# 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"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command;
|
# Collect all arguments for the java command:
|
||||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# shell script including quotes and variable substitutions, so put them in
|
# and any embedded shellness will be escaped.
|
||||||
# double quotes to make sure that they get re-expanded; and
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# * put everything else in single quotes, so that it's not re-expanded.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
|
||||||
set -- \
|
set -- \
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
|
|
||||||
|
|
@ -43,11 +43,11 @@ set JAVA_EXE=java.exe
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
|
@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,6 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
debug {
|
|
||||||
isMinifyEnabled = true
|
|
||||||
proguardFiles("proguard-rules-debug.pro")
|
|
||||||
}
|
|
||||||
release {
|
release {
|
||||||
isMinifyEnabled = true
|
isMinifyEnabled = true
|
||||||
proguardFiles(
|
proguardFiles(
|
||||||
|
|
@ -41,21 +37,13 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlinOptions {
|
|
||||||
jvmTarget = "17"
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlin {
|
|
||||||
jvmToolchain(17)
|
|
||||||
}
|
|
||||||
|
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
compose = true
|
compose = true
|
||||||
buildConfig = true
|
buildConfig = true
|
||||||
}
|
}
|
||||||
|
|
||||||
composeOptions {
|
composeOptions {
|
||||||
kotlinCompilerExtensionVersion = "1.4.7"
|
kotlinCompilerExtensionVersion = "1.5.13"
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace = "org.lsposed.lspatch"
|
namespace = "org.lsposed.lspatch"
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,11 @@ androidComponents.onVariants { variant ->
|
||||||
|
|
||||||
task<Copy>("copySo$variantCapped") {
|
task<Copy>("copySo$variantCapped") {
|
||||||
dependsOn("assemble$variantCapped")
|
dependsOn("assemble$variantCapped")
|
||||||
|
dependsOn("strip${variantCapped}DebugSymbols")
|
||||||
|
val libDir = variant.name + "/strip${variantCapped}DebugSymbols"
|
||||||
from(
|
from(
|
||||||
fileTree(
|
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")
|
"include" to listOf("**/liblspatch.so")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -9,13 +9,6 @@ android {
|
||||||
androidResources = false
|
androidResources = false
|
||||||
buildConfig = false
|
buildConfig = false
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
release {
|
|
||||||
isMinifyEnabled = true
|
|
||||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in New Issue