Refine gradle scripts (#492)

This commit is contained in:
vvb2060 2021-04-18 01:35:55 +08:00 committed by GitHub
parent 9b2a7516f7
commit d6541bb594
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 126 additions and 145 deletions

View File

@ -31,6 +31,7 @@ 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 defaultManagerPackageName: String by rootProject.extra
val verCode: Int by rootProject.extra
val verName: String by rootProject.extra
@ -49,7 +50,7 @@ android {
}
defaultConfig {
applicationId("org.lsposed.manager")
applicationId(defaultManagerPackageName)
minSdkVersion(androidMinSdkVersion)
targetSdkVersion(androidTargetSdkVersion)
versionCode(verCode)
@ -162,7 +163,7 @@ dependencies {
implementation("androidx.constraintlayout:constraintlayout:2.0.4")
implementation("androidx.core:core:1.3.2")
implementation("androidx.fragment:fragment:1.3.2")
implementation("androidx.recyclerview:recyclerview:1.1.0")
implementation("androidx.recyclerview:recyclerview:1.2.0")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
implementation("com.caverock:androidsvg-aar:1.4")
implementation("com.github.bumptech.glide:glide:$glideVersion")

View File

@ -31,9 +31,8 @@
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.Conscrypt*
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE
-dontwarn org.openjsse.net.ssl.OpenJSSE

View File

@ -26,7 +26,7 @@ buildscript {
maven("https://storage.googleapis.com/r8-releases/raw")
}
dependencies {
classpath("com.android.tools:r8:3.0.33-dev")
classpath("com.android.tools:r8:3.0.34-dev")
classpath("com.android.tools.build:gradle:7.0.0-alpha14")
classpath("org.eclipse.jgit:org.eclipse.jgit:5.10.0.202012080955-r")
classpath(kotlin("gradle-plugin", version = "1.4.32"))
@ -48,7 +48,7 @@ val androidCompileNdkVersion by extra("22.1.7171670")
val androidSourceCompatibility by extra(JavaVersion.VERSION_11)
val androidTargetCompatibility by extra(JavaVersion.VERSION_11)
val apiCode by extra(93)
val zipPathMagiskReleasePath by extra(project(":core").projectDir.path + "/build/tmp/release/magisk/")
val magiskDir by extra(project(":core").projectDir.path + "/build/tmp/magisk/")
allprojects {
repositories {

5
core/.gitignore vendored
View File

@ -2,10 +2,5 @@
/build
/obj
/release
/template_override/module.prop
/template_override/en_US.sh
/template_override/system
/template_override/system_x86
/template_override/riru/module.prop.new
*.iml
/.cxx

View File

@ -58,7 +58,7 @@ val androidCompileNdkVersion: String by rootProject.extra
val androidSourceCompatibility: JavaVersion by rootProject.extra
val androidTargetCompatibility: JavaVersion by rootProject.extra
val zipPathMagiskReleasePath: String by rootProject.extra
val magiskDir: String by rootProject.extra
val verCode: Int by rootProject.extra
val verName: String by rootProject.extra
@ -222,22 +222,31 @@ task("buildLibcxx", Exec::class) {
tasks.getByName("preBuild").dependsOn("buildLibcxx")
afterEvaluate {
android.applicationVariants.forEach { variant ->
val variantCapped = variant.name.capitalize()
val variantLowered = variant.name.toLowerCase()
val zipFileName = "$moduleName-$verName-$verCode-$variantLowered.zip"
delete(file(zipPathMagiskReleasePath))
val prepareMagiskFilesTask = task("prepareMagiskFiles$variantCapped") {
dependsOn("assemble$variantCapped")
dependsOn(":app:assemble$variantCapped")
doFirst {
doLast {
delete {
delete(magiskDir)
}
copy {
from("$projectDir/tpl/module.prop.tpl")
into(zipPathMagiskReleasePath)
rename("module.prop.tpl", "module.prop")
from("${rootProject.projectDir}/README.md")
into(magiskDir)
}
copy {
from("$projectDir/magisk_module")
exclude("riru.sh", "module.prop")
into(magiskDir)
}
copy {
from("$projectDir/magisk_module")
include("module.prop")
into(magiskDir)
expand(
"moduleId" to moduleId,
"versionName" to verName,
@ -251,32 +260,11 @@ afterEvaluate {
)
}
copy {
from("${rootProject.projectDir}/README.md")
into(file(zipPathMagiskReleasePath))
}
}
val libPathRelease = "${buildDir}/intermediates/cmake/$variantLowered/obj"
doLast {
val dexOutPath = if (variant.name.contains("release"))
"$buildDir/intermediates/dex/$variantLowered/minify${variantCapped}WithR8" else
"$buildDir/intermediates/dex/$variantLowered/mergeDex$variantCapped"
copy {
from(dexOutPath) {
rename("classes.dex", "lspd.dex")
}
into(file(zipPathMagiskReleasePath + "framework/"))
}
copy {
from("${projectDir}/template_override")
into(zipPathMagiskReleasePath)
exclude("riru.sh")
}
copy {
from("${projectDir}/template_override")
into(zipPathMagiskReleasePath)
from("${projectDir}/magisk_module")
include("riru.sh")
into(magiskDir)
filter { line ->
line.replace("%%%RIRU_MODULE_ID%%%", riruModuleId)
line.replace("%%%RIRU_MODULE_LIB_NAME%%%", "lspd")
.replace(
"%%%RIRU_MODULE_API_VERSION%%%",
moduleMaxRiruApiVersion.toString()
@ -300,33 +288,26 @@ afterEvaluate {
)
}
copy {
include("liblspd.so")
from("$libPathRelease/armeabi-v7a")
into("$zipPathMagiskReleasePath/riru/lib")
from("${buildDir}/intermediates/cmake/$variantLowered/obj")
exclude("**/*.txt")
into("$magiskDir/lib")
}
val dexOutPath = if (variant.name.contains("release"))
"$buildDir/intermediates/dex/$variantLowered/minify${variantCapped}WithR8" else
"$buildDir/intermediates/dex/$variantLowered/mergeDex$variantCapped"
copy {
include("liblspd.so")
from("$libPathRelease/arm64-v8a")
into("$zipPathMagiskReleasePath/riru/lib64")
}
copy {
include("liblspd.so")
from("$libPathRelease/x86")
into("$zipPathMagiskReleasePath/riru_x86/lib")
}
copy {
include("liblspd.so")
from("$libPathRelease/x86_64")
into("$zipPathMagiskReleasePath/riru_x86/lib64")
from(dexOutPath)
rename("classes.dex", "lspd.dex")
into("$magiskDir/framework")
}
copy {
from("${project(":app").projectDir}/build/outputs/apk/${variantLowered}")
include("*.apk")
rename(".*\\.apk", "manager.apk")
into(zipPathMagiskReleasePath)
into(magiskDir)
}
// generate sha1sum
fileTree(zipPathMagiskReleasePath).matching {
fileTree(magiskDir).matching {
exclude("README.md", "META-INF")
}.visit {
if (isDirectory) return@visit
@ -339,10 +320,10 @@ afterEvaluate {
dependsOn(prepareMagiskFilesTask)
archiveFileName.set(zipFileName)
destinationDirectory.set(file("$projectDir/release"))
from(zipPathMagiskReleasePath)
from(magiskDir)
}
task("push${variantCapped}", Exec::class) {
val pushTask = task("push${variantCapped}", Exec::class) {
dependsOn(zipTask)
workingDir("${projectDir}/release")
val commands = arrayOf(
@ -356,8 +337,8 @@ afterEvaluate {
commandLine(commands)
}
}
task("flash${variantCapped}", Exec::class) {
dependsOn(tasks.getByPath("push${variantCapped}"))
val flashTask = task("flash${variantCapped}", Exec::class) {
dependsOn(pushTask)
workingDir("${projectDir}/release")
val commands = arrayOf(
android.adbExecutable, "shell", "su", "-c",
@ -370,7 +351,7 @@ afterEvaluate {
}
}
task("flashAndReboot${variantCapped}", Exec::class) {
dependsOn(tasks.getByPath("flash${variantCapped}"))
dependsOn(flashTask)
workingDir("${projectDir}/release")
val commands = arrayOf(android.adbExecutable, "shell", "reboot")
if (isWindows) {

View File

@ -18,18 +18,17 @@
# Copyright (C) 2021 LSPosed Contributors
#
# shellcheck disable=SC2034
SKIPUNZIP=1
abortC() {
rm -rf "${MODPATH}"
rm -rf "$MODPATH"
if [ ! -f /data/adb/lspd/misc_path ]; then
[ -d "${MISC_PATH}" ] && rm -rf "${MISC_PATH}"
[ -d "$MISC_PATH" ] && rm -rf "$MISC_PATH"
fi
abort "$1"
}
POUNDS="*********************************************************"
VERSION=$(grep_prop version "${TMPDIR}/module.prop")
VERSION_CODE=$(grep_prop versionCode "${TMPDIR}/module.prop")
@ -39,22 +38,24 @@ ui_print "- LSPosed version ${VERSION} (${VERSION_CODE})"
ui_print "- Extracting verify.sh"
unzip -o "$ZIPFILE" 'verify.sh' -d "$TMPDIR" >&2
if [ ! -f "$TMPDIR/verify.sh" ]; then
ui_print "${POUNDS}"
ui_print "*********************************************************"
ui_print "! Unable to extract verify.sh!"
ui_print "! This zip may be corrupted, please try downloading again"
abortC "${POUNDS}"
abortC "*********************************************************"
fi
. $TMPDIR/verify.sh
. "$TMPDIR/verify.sh"
extract "$ZIPFILE" 'customize.sh' "${TMPDIR}"
extract "$ZIPFILE" 'util_functions.sh' "${TMPDIR}"
. ${TMPDIR}/util_functions.sh
extract "$ZIPFILE" 'customize.sh' "$TMPDIR"
extract "$ZIPFILE" 'util_functions.sh' "$TMPDIR"
. "$TMPDIR/util_functions.sh"
check_android_version
check_magisk_version
# Extract riru.sh
extract "$ZIPFILE" 'riru.sh' "$TMPDIR"
. $TMPDIR/riru.sh
. "$TMPDIR/riru.sh"
# Functions from riru.sh
check_riru_version
@ -67,49 +68,59 @@ else
ui_print "- Device platform: $ARCH"
fi
# Extract libs
ui_print "- Extracting module files"
# extract module files
extract "${ZIPFILE}" 'module.prop' "${MODPATH}"
extract "${ZIPFILE}" 'system.prop' "${MODPATH}"
extract "${ZIPFILE}" 'sepolicy.rule' "${MODPATH}"
extract "${ZIPFILE}" 'post-fs-data.sh' "${MODPATH}"
extract "${ZIPFILE}" 'uninstall.sh' "${MODPATH}"
extract "${ZIPFILE}" 'framework/lspd.dex' "${MODPATH}"
extract "$ZIPFILE" 'module.prop' "$MODPATH"
extract "$ZIPFILE" 'system.prop' "$MODPATH"
extract "$ZIPFILE" 'sepolicy.rule' "$MODPATH"
extract "$ZIPFILE" 'post-fs-data.sh' "$MODPATH"
extract "$ZIPFILE" 'uninstall.sh' "$MODPATH"
extract "$ZIPFILE" 'framework/lspd.dex' "$MODPATH"
if [ "$ARCH" = "x86" ] || [ "$ARCH" = "x64" ]; then
ui_print "- Extracting x86 libraries"
extract "$ZIPFILE" 'riru_x86/lib/liblspd.so' "${MODPATH}"
mkdir "$MODPATH/riru"
mkdir "$MODPATH/riru/lib"
mkdir "$MODPATH/riru/lib64"
if [ "$IS64BIT" = true ]; then
ui_print "- Extracting x86_64 libraries"
extract "$ZIPFILE" 'riru_x86/lib64/liblspd.so' "${MODPATH}"
fi
mv "${MODPATH}/riru_x86" "${MODPATH}/riru"
else
if [ "$ARCH" = "arm" ] || [ "$ARCH" = "arm64" ]; then
ui_print "- Extracting arm libraries"
extract "$ZIPFILE" 'riru/lib/liblspd.so' "${MODPATH}"
extract "$ZIPFILE" "lib/armeabi-v7a/lib$RIRU_MODULE_LIB_NAME.so" "$MODPATH/riru/lib" true
if [ "$IS64BIT" = true ]; then
ui_print "- Extracting arm64 libraries"
extract "$ZIPFILE" 'riru/lib64/liblspd.so' "${MODPATH}"
extract "$ZIPFILE" "lib/arm64-v8a/lib$RIRU_MODULE_LIB_NAME.so" "$MODPATH/riru/lib64" true
fi
fi
if [ "$ARCH" = "x86" ] || [ "$ARCH" = "x64" ]; then
ui_print "- Extracting x86 libraries"
extract "$ZIPFILE" "lib/x86/lib$RIRU_MODULE_LIB_NAME.so" "$MODPATH/riru/lib" true
if [ "$IS64BIT" = true ]; then
ui_print "- Extracting x64 libraries"
extract "$ZIPFILE" "lib/x86_64/lib$RIRU_MODULE_LIB_NAME.so" "$MODPATH/riru/lib64" true
fi
fi
if [ "$RIRU_MODULE_DEBUG" = true ]; then
mv "$MODPATH/riru" "$MODPATH/system"
mv "$MODPATH/system/lib/liblspd.so" "$MODPATH/system/lib/libriru_lspd.so"
mv "$MODPATH/system/lib64/liblspd.so" "$MODPATH/system/lib64/libriru_lspd.so"
cp -r "$MODPATH/framework" "$MODPATH/system/framework"
mkdir -p "/data/adb/riru/modules/lspd"
fi
set_perm_recursive "$MODPATH" 0 0 0755 0644
ui_print "- Creating configuration directories"
if [ -f /data/adb/lspd/misc_path ]; then
# read current MISC_PATH
MISC_PATH=$(cat /data/adb/lspd/misc_path)
ui_print " - Use previous path $MISC_PATH"
elif [ -f /data/adb/edxp/misc_path ]; then
mkdir -p /data/adb/lspd || abortC "! Can't create configuration path"
MISC_PATH=$(cat /data/adb/edxp/misc_path | sed "s/edxp/lspd/")
echo $MISC_PATH >/data/adb/lspd/misc_path
ui_print " - Use previous path $MISC_PATH"
cp -r /data/misc/$(cat /data/adb/edxp/misc_path) /data/misc/$MISC_PATH
ui_print " - WARNING: This installation will disable EdXposed because of incompatibility"
touch $(magisk --path)/.magisk/modules/riru_edxposed/disable
touch $(magisk --path)/.magisk/modules/riru_edxposed_sandhook/disable
ui_print " - WARNING: This installation will disable EdXposed because of incompatibility"
touch "$(magisk --path)/.magisk/modules/riru_edxposed/disable"
touch "$(magisk --path)/.magisk/modules/riru_edxposed_sandhook/disable"
else
# generate random MISC_PATH
MISC_RAND=$(tr -cd 'A-Za-z0-9' </dev/urandom | head -c16)
@ -120,13 +131,13 @@ else
fi
extract "${ZIPFILE}" 'manager.apk' "/data/adb/lspd/"
mkdir -p /data/misc/$MISC_PATH
set_perm /data/misc/$MISC_PATH 0 0 0771 "u:object_r:magisk_file:s0" || abortC "! Can't set permission"
mkdir -p "/data/misc/$MISC_PATH"
set_perm "/data/misc/$MISC_PATH" 0 0 0771 "u:object_r:magisk_file:s0" || abortC "! Can't set permission"
if [ ! -d /data/adb/lspd/config ]; then
mkdir -p /data/adb/lspd/config
ui_print "- Migrating configuration"
cp -r /data/misc/$MISC_PATH/0/prefs /data/misc/$MISC_PATH/prefs
cp -r "/data/misc/$MISC_PATH/0/prefs" "/data/misc/$MISC_PATH/prefs"
/system/bin/app_process -Djava.class.path=/data/adb/lspd/framework/lspd.dex /system/bin --nice-name=lspd_config org.lsposed.lspd.service.ConfigManager
fi
@ -137,13 +148,4 @@ if [ ! -e /data/adb/lspd/config/verbose_log ]; then
echo "0" >/data/adb/lspd/config/verbose_log
fi
if [ "$RIRU_MODULE_DEBUG" = true ]; then
mv ${MODPATH}/riru ${MODPATH}/system
mv ${MODPATH}/system/lib/liblspd.so ${MODPATH}/system/lib/libriru_lspd.so
mv ${MODPATH}/system/lib64/liblspd.so ${MODPATH}/system/lib64/libriru_lspd.so
cp -r ${MODPATH}/framework ${MODPATH}/system/framework
mkdir -p /data/adb/riru/modules/lspd
fi
set_perm_recursive "${MODPATH}" 0 0 0755 0644
ui_print "- Welcome to LSPosed!"

View File

@ -78,23 +78,25 @@ print_log_head() {
LOG_FILE=$1
touch "${LOG_FILE}"
chmod 666 "${LOG_FILE}"
echo "LSPosed Log" >>"${LOG_FILE}"
echo "--------- beginning of information" >>"${LOG_FILE}"
echo "Manufacturer: ${MANUFACTURER}" >>"${LOG_FILE}"
echo "Brand: ${BRAND}" >>"${LOG_FILE}"
echo "Device: ${DEVICE}" >>"${LOG_FILE}"
echo "Product: ${PRODUCT}" >>"${LOG_FILE}"
echo "Model: ${MODEL}" >>"${LOG_FILE}"
echo "Fingerprint: ${FINGERPRINT}" >>"${LOG_FILE}"
echo "ROM description: ${BUILD_DESC}" >>"${LOG_FILE}"
echo "Architecture: ${ARCH}" >>"${LOG_FILE}"
echo "Android build: ${BUILD}" >>"${LOG_FILE}"
echo "Android version: ${ANDROID}" >>"${LOG_FILE}"
echo "Android sdk: ${ANDROID_SDK}" >>"${LOG_FILE}"
echo "LSPosed version: ${LSPD_VERSION} (${LSPD_VERSIONCODE})" >>"${LOG_FILE}"
echo "Riru version: ${RIRU_VERSION_NAME} (${RIRU_VERSION_CODE})" >>"${LOG_FILE}"
echo "Riru api: ${RIRU_API}" >>"${LOG_FILE}"
echo "Magisk: ${MAGISK_VERSION%:*} (${MAGISK_VER_CODE})" >>"${LOG_FILE}"
{
echo "LSPosed Log"
echo "--------- beginning of information"
echo "Manufacturer: ${MANUFACTURER}"
echo "Brand: ${BRAND}"
echo "Device: ${DEVICE}"
echo "Product: ${PRODUCT}"
echo "Model: ${MODEL}"
echo "Fingerprint: ${FINGERPRINT}"
echo "ROM description: ${BUILD_DESC}"
echo "Architecture: ${ARCH}"
echo "Android build: ${BUILD}"
echo "Android version: ${ANDROID}"
echo "Android sdk: ${ANDROID_SDK}"
echo "LSPosed version: ${LSPD_VERSION} (${LSPD_VERSIONCODE})"
echo "Riru version: ${RIRU_VERSION_NAME} (${RIRU_VERSION_CODE})"
echo "Riru api: ${RIRU_API}"
echo "Magisk: ${MAGISK_VERSION%:*} (${MAGISK_VER_CODE})"
} >> "${LOG_FILE}"
}
start_log_catcher() {

View File

@ -1,5 +1,5 @@
#!/sbin/sh
RIRU_MODULE_ID="%%%RIRU_MODULE_ID%%%"
RIRU_MODULE_LIB_NAME="%%%RIRU_MODULE_LIB_NAME%%%"
# Variables for customize.sh
RIRU_API=0

View File

@ -19,26 +19,26 @@
#
check_magisk_version() {
ui_print "- Magisk version: ${MAGISK_VER_CODE}"
ui_print "- Magisk version: $MAGISK_VER_CODE"
if [ "$MAGISK_VER_CODE" -lt 21000 ]; then
ui_print "${POUNDS}"
ui_print "Please install Magisk v21+!"
abortC "${POUNDS}"
ui_print "*********************************************************"
ui_print "! Please install Magisk v21+"
abortC "*********************************************************"
fi
}
require_new_android() {
ui_print "${POUNDS}"
ui_print "*********************************************************"
ui_print "! Unsupported Android version ${1} (below Oreo MR1)"
ui_print "! Learn more from our GitHub Wiki"
[ ${BOOTMODE} == true ] && am start -a android.intent.action.VIEW -d https://github.com/LSPosed/LSPosed/wiki/Available-Android-versions
abortC "${POUNDS}"
[ "$BOOTMODE" == "true" ] && am start -a android.intent.action.VIEW -d https://github.com/LSPosed/LSPosed/wiki/Available-Android-versions
abortC "*********************************************************"
}
check_android_version() {
if [ ${API} -ge 27 ]; then
ui_print "- Android SDK version: ${API}"
if [ "$API" -ge 27 ]; then
ui_print "- Android SDK version: $API"
else
require_new_android "${API}"
require_new_android "$API"
fi
}

View File

@ -25,7 +25,7 @@ abort_verify() {
ui_print "*********************************************************"
ui_print "! $1"
ui_print "! This zip may be corrupted, please try downloading again"
abort "*********************************************************"
abort "*********************************************************"
}
# extract <zip> <file> <target dir> <junk paths>

View File

@ -50,3 +50,4 @@
}
-repackageclasses
-allowaccessmodification
-dontwarn org.slf4j.impl.StaticLoggerBinder