diff --git a/.gitattributes b/.gitattributes index 00a421d2..de3806bd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,13 +1,9 @@ # Set the default behavior, in case people don't have core.autocrlf set. -* text=auto +* text=auto eol=lf -# Declare files that will always have LF line endings on checkout. -META-INF/** text eol=lf -*.prop text eol=lf -*.sh text eol=lf -*.md text eol=lf -update-binary text eol=lf -update-script text eol=lf +# Declare files that will always have CRLF line endings on checkout. +*.cmd text eol=crlf +*.bat text eol=crlf # Denote all files that are truly binary and should not be modified. *.so binary diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index cfc55f1e..ca78a7b9 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -21,10 +21,10 @@ jobs: with: submodules: 'recursive' fetch-depth: 0 - - name: set up JDK 1.8 + - name: set up JDK 11 uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 11 - name: Build with Gradle run: bash ./gradlew zipRelease zipDebug - name: Prepare artifact diff --git a/.github/workflows/manager.yml b/.github/workflows/manager.yml index 4f0e8c33..c95ced45 100644 --- a/.github/workflows/manager.yml +++ b/.github/workflows/manager.yml @@ -21,10 +21,10 @@ jobs: with: submodules: 'recursive' fetch-depth: 0 - - name: set up JDK 1.8 + - name: set up JDK 11 uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 11 - name: Build with Gradle id: buildRelease run: | diff --git a/.gitignore b/.gitignore index 0a9948db..7f366328 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,7 @@ *.iml .gradle /local.properties -.idea -/.idea/caches/build_file_checksums.ser -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml +/.idea .DS_Store /build /captures diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6417aa30..c24c5b7e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,22 +17,24 @@ * Copyright (C) 2021 LSPosed Contributors */ import com.android.build.gradle.internal.api.BaseVariantOutputImpl -import java.nio.file.Paths; +import java.nio.file.Paths plugins { id("com.android.application") kotlin("android") } -android { - val androidTargetSdkVersion: Int by extra - val androidMinSdkVersion: Int by extra - val androidBuildToolsVersion: String by extra - val androidCompileSdkVersion: Int by extra - val androidCompileNdkVersion: String by extra - val androidSourceCompatibility: JavaVersion by extra - val androidTargetCompatibility: JavaVersion by extra +val androidTargetSdkVersion: Int by rootProject.extra +val androidMinSdkVersion: Int by rootProject.extra +val androidBuildToolsVersion: String by rootProject.extra +val androidCompileSdkVersion: Int by rootProject.extra +val androidCompileNdkVersion: String by rootProject.extra +val androidSourceCompatibility: JavaVersion by rootProject.extra +val androidTargetCompatibility: JavaVersion by rootProject.extra +val verCode: Int by rootProject.extra +val verName: String by rootProject.extra +android { compileSdkVersion(androidCompileSdkVersion) ndkVersion = androidCompileNdkVersion buildToolsVersion(androidBuildToolsVersion) @@ -45,10 +47,10 @@ android { applicationId("io.github.lsposed.manager") minSdkVersion(androidMinSdkVersion) targetSdkVersion(androidTargetSdkVersion) - versionCode(extra["versionCode"] as Int) - versionName(extra["versionName"] as String) + versionCode(verCode) + versionName(verName) resConfigs("en", "zh-rCN", "zh-rTW", "zh-rHK", "ru", "uk", "nl", "ko", "fr") - resValue("string", "versionName", extra["versionName"] as String) + resValue("string", "versionName", verName) } compileOptions { @@ -56,19 +58,21 @@ android { sourceCompatibility(androidSourceCompatibility) } - lintOptions { - disable("MissingTranslation") - disable("ExtraTranslation") + lint { + disable += "MissingTranslation" + disable += "ExtraTranslation" isAbortOnError = true isCheckReleaseBuilds = true } packagingOptions { - exclude("META-INF/**") - exclude("kotlin/**") - exclude("org/**") - exclude("**.properties") - exclude("**.bin") + resources { + excludes += "META-INF/**" + excludes += "kotlin/**" + excludes += "org/**" + excludes += "**.properties" + excludes += "**.bin" + } } dependenciesInfo.includeInApk = false @@ -91,12 +95,12 @@ android { } } -val optimizeReleaseResources = task("optimizeReleaseResources").doLast { +val optimizeReleaseResources = task("optimizeReleaseRes").doLast { val aapt2 = Paths.get(project.android.sdkDirectory.path, "build-tools", project.android.buildToolsVersion, "aapt2") val zip = Paths.get(project.buildDir.path, "intermediates", "processed_res", "release", "out", "resources-release.ap_") val optimized = File("${zip}.opt") val cmd = exec { - commandLine(aapt2, "optimize", "--collapse-resource-names", "--shorten-resource-paths", "-o", optimized, zip) + commandLine(aapt2, "optimize", "--collapse-resource-names", "-o", optimized, zip) isIgnoreExitValue = false } if (cmd.exitValue == 0) { @@ -106,7 +110,7 @@ val optimizeReleaseResources = task("optimizeReleaseResources").doLast { } tasks.whenTaskAdded { - if (name == "processReleaseResources") { + if (name == "shrinkReleaseRes") { finalizedBy(optimizeReleaseResources) } } @@ -153,9 +157,10 @@ dependencies { implementation(project(":manager-service")) } -configurations { - compile.get().exclude(group = "org.jetbrains", module = "annotations") - compile.get().exclude(group = "androidx.appcompat", module = "appcompat") -// cleanedAnnotations() +configurations.all { + resolutionStrategy { + exclude(group = "org.jetbrains", module = "annotations") + exclude(group = "androidx.appcompat", module = "appcompat") + } } diff --git a/build.gradle.kts b/build.gradle.kts index f5032797..e471f1cd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,16 +16,16 @@ * * Copyright (C) 2021 LSPosed Contributors */ -import org.eclipse.jgit.internal.storage.file.FileRepository import org.eclipse.jgit.api.Git +import org.eclipse.jgit.internal.storage.file.FileRepository buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:4.1.2") + classpath("com.android.tools.build:gradle:7.0.0-alpha08") classpath("org.eclipse.jgit:org.eclipse.jgit:5.10.0.202012080955-r") classpath(kotlin("gradle-plugin", version = "1.4.31")) } @@ -35,19 +35,19 @@ val repo = FileRepository(rootProject.file(".git")) val refId = repo.refDatabase.exactRef("refs/remotes/origin/master").objectId!! val commitCount = Git(repo).log().add(refId).call().count() -allprojects { - extra["versionCode"] = commitCount + 4200 - extra["versionName"] = "v1.2.0" - extra["androidTargetSdkVersion"] = 30 - extra["androidMinSdkVersion"] = 27 - extra["androidBuildToolsVersion"] = "30.0.3" - extra["androidCompileSdkVersion"] = 30 - extra["androidCompileNdkVersion"] = "22.0.7026061" - extra["androidSourceCompatibility"] = JavaVersion.VERSION_1_8 - extra["androidTargetCompatibility"] = JavaVersion.VERSION_1_8 - extra["apiCode"] = 93 - extra["zipPathMagiskReleasePath"] = project(":core").projectDir.path + "/build/tmp/release/magisk/" +val verCode by extra(commitCount + 4200) +val verName by extra("v1.2.0") +val androidTargetSdkVersion by extra(30) +val androidMinSdkVersion by extra(27) +val androidBuildToolsVersion by extra("30.0.3") +val androidCompileSdkVersion by extra(30) +val androidCompileNdkVersion by extra("22.0.7026061") +val androidSourceCompatibility by extra(JavaVersion.VERSION_1_8) +val androidTargetCompatibility by extra(JavaVersion.VERSION_1_8) +val apiCode by extra(93) +val zipPathMagiskReleasePath by extra(project(":core").projectDir.path + "/build/tmp/release/magisk/") +allprojects { repositories { google() jcenter() diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 13ca8906..2654941d 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -47,20 +47,20 @@ val moduleMinRiruApiVersion = 10 val moduleMinRiruVersionName = "v23.0" val moduleMaxRiruApiVersion = 10 -val apiCode: Int by extra +val apiCode: Int by rootProject.extra -val androidTargetSdkVersion: Int by extra -val androidMinSdkVersion: Int by extra -val androidBuildToolsVersion: String by extra -val androidCompileSdkVersion: Int by extra -val androidCompileNdkVersion: String by extra -val androidSourceCompatibility: JavaVersion by extra -val androidTargetCompatibility: JavaVersion by extra +val androidTargetSdkVersion: Int by rootProject.extra +val androidMinSdkVersion: Int by rootProject.extra +val androidBuildToolsVersion: String by rootProject.extra +val androidCompileSdkVersion: Int by rootProject.extra +val androidCompileNdkVersion: String by rootProject.extra +val androidSourceCompatibility: JavaVersion by rootProject.extra +val androidTargetCompatibility: JavaVersion by rootProject.extra -val zipPathMagiskReleasePath: String by extra +val zipPathMagiskReleasePath: String by rootProject.extra -val versionCode: Int by extra -val versionName: String by extra +val verCode: Int by rootProject.extra +val verName: String by rootProject.extra dependencies { implementation("rikka.ndk:riru:10") @@ -75,33 +75,36 @@ dependencies { android { compileSdkVersion(androidCompileSdkVersion) + ndkVersion = androidCompileNdkVersion + buildToolsVersion(androidBuildToolsVersion) + + buildFeatures { + prefab = true + } + defaultConfig { applicationId("io.github.lsposed.lspd") minSdkVersion(androidMinSdkVersion) targetSdkVersion(androidTargetSdkVersion) multiDexEnabled = false - buildFeatures { - prefab = true - } - externalNativeBuild { cmake { abiFilters("arm64-v8a", "armeabi-v7a", "x86", "x86_64") cppFlags("-std=c++17 -ffixed-x18 -Qunused-arguments -frtti -fomit-frame-pointer -fpie -fPIC") cFlags("-std=gnu99 -ffixed-x18 -Qunused-arguments -frtti -fomit-frame-pointer -fpie -fPIC") arguments("-DRIRU_MODULE_API_VERSION=$moduleMaxRiruApiVersion", - "-DRIRU_MODULE_VERSION=${extra["versionCode"]}", - "-DRIRU_MODULE_VERSION_NAME:STRING=\"${extra["versionName"]}\"") + "-DRIRU_MODULE_VERSION=$verCode", + "-DRIRU_MODULE_VERSION_NAME:STRING=\"$verName\"") } } buildConfigField("int", "API_CODE", "$apiCode") - buildConfigField("String", "VERSION_NAME", "\"${extra["versionName"]}\"") - buildConfigField("Integer", "VERSION_CODE", extra["versionCode"].toString()) + buildConfigField("String", "VERSION_NAME", "\"$verName\"") + buildConfigField("Integer", "VERSION_CODE", verCode.toString()) } - lintOptions { + lint { isAbortOnError = false isCheckReleaseBuilds = false } @@ -132,8 +135,6 @@ android { path("src/main/cpp/CMakeLists.txt") } } - ndkVersion = androidCompileNdkVersion - buildToolsVersion(androidBuildToolsVersion) compileOptions { targetCompatibility(androidTargetCompatibility) @@ -146,7 +147,7 @@ afterEvaluate { android.applicationVariants.forEach { variant -> val variantCapped = variant.name.capitalize() val variantLowered = variant.name.toLowerCase() - val zipFileName = "$moduleName-$versionName-$versionCode-$variantLowered.zip" + val zipFileName = "$moduleName-$verName-$verCode-$variantLowered.zip" delete(file(zipPathMagiskReleasePath)) @@ -158,8 +159,8 @@ afterEvaluate { into("$projectDir/template_override") rename("module.prop.tpl", "module.prop") expand("moduleId" to moduleId, - "versionName" to versionName, - "versionCode" to versionCode, + "versionName" to verName, + "versionCode" to verCode, "authorList" to authors, "apiCode" to apiCode, "minApi" to "$moduleMinRiruApiVersion") diff --git a/core/template_override/sepolicy.rule b/core/template_override/sepolicy.rule index aec216d2..518630b6 100644 --- a/core/template_override/sepolicy.rule +++ b/core/template_override/sepolicy.rule @@ -1,2 +1,2 @@ allow system_server system_server process execmem -allow system_server system_server memprotect mmap_zero \ No newline at end of file +allow system_server system_server memprotect mmap_zero diff --git a/gradle.properties b/gradle.properties index d979639b..ab664ace 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,4 +13,3 @@ #Sat Jan 30 19:20:27 CST 202130.0.322.0.7026061 android.useAndroidX=true android.enableJetifier=true -android.prefabVersion=1.1.2 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f6b961fd..e708b1c0 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 d81afae6..442d9132 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Wed Feb 10 17:44:10 CST 2021 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-all.zip diff --git a/gradlew b/gradlew index cccdd3d5..4f906e0c 100755 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$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="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -66,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index f9553162..107acd32 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/manager-service/build.gradle.kts b/manager-service/build.gradle.kts index 7c28e021..b4441ed9 100644 --- a/manager-service/build.gradle.kts +++ b/manager-service/build.gradle.kts @@ -22,13 +22,13 @@ plugins { kotlin("android") } -android { - val androidTargetSdkVersion: Int by extra - val androidBuildToolsVersion: String by extra - val androidMinSdkVersion: Int by extra - val androidSourceCompatibility: JavaVersion by extra - val androidTargetCompatibility: JavaVersion by extra +val androidTargetSdkVersion: Int by rootProject.extra +val androidBuildToolsVersion: String by rootProject.extra +val androidMinSdkVersion: Int by rootProject.extra +val androidSourceCompatibility: JavaVersion by rootProject.extra +val androidTargetCompatibility: JavaVersion by rootProject.extra +android { compileSdkVersion(androidTargetSdkVersion) buildToolsVersion(androidBuildToolsVersion) @@ -46,7 +46,7 @@ android { } compileOptions { - sourceCompatibility(androidSourceCompatibility) - targetCompatibility(androidTargetCompatibility) + sourceCompatibility = androidSourceCompatibility + targetCompatibility = androidTargetCompatibility } } diff --git a/sandhook-annotation/build.gradle.kts b/sandhook-annotation/build.gradle.kts index 9c10bb03..67c8b076 100644 --- a/sandhook-annotation/build.gradle.kts +++ b/sandhook-annotation/build.gradle.kts @@ -2,7 +2,10 @@ plugins { `java-library` } +val androidSourceCompatibility: JavaVersion by rootProject.extra +val androidTargetCompatibility: JavaVersion by rootProject.extra + java { - sourceCompatibility = extra["androidSourceCompatibility"] as JavaVersion - targetCompatibility = extra["androidTargetCompatibility"] as JavaVersion + sourceCompatibility = androidSourceCompatibility + targetCompatibility = androidTargetCompatibility } diff --git a/sandhook-hooklib/build.gradle.kts b/sandhook-hooklib/build.gradle.kts index 863c8632..80118196 100644 --- a/sandhook-hooklib/build.gradle.kts +++ b/sandhook-hooklib/build.gradle.kts @@ -3,15 +3,16 @@ plugins { kotlin("android") } -android { - val androidTargetSdkVersion: Int by extra - val androidCompileSdkVersion: Int by extra - val androidMinSdkVersion: Int by extra - val androidBuildToolsVersion: String by extra - val androidSourceCompatibility: JavaVersion by extra - val androidTargetCompatibility: JavaVersion by extra +val androidTargetSdkVersion: Int by rootProject.extra +val androidCompileSdkVersion: Int by rootProject.extra +val androidMinSdkVersion: Int by rootProject.extra +val androidBuildToolsVersion: String by rootProject.extra +val androidSourceCompatibility: JavaVersion by rootProject.extra +val androidTargetCompatibility: JavaVersion by rootProject.extra +android { compileSdkVersion(androidCompileSdkVersion) + buildToolsVersion(androidBuildToolsVersion) defaultConfig { minSdkVersion(androidMinSdkVersion)