From 14b85366a17e6470f5dc3c5023b27f22155bd4e1 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Tue, 17 Nov 2020 17:58:13 +0800 Subject: [PATCH] Fix build bug --- build.gradle | 2 +- dalvikdx/build.gradle | 74 ++++++++---------------- dalvikdx/src/main/AndroidManifest.xml | 1 + dexmaker/build.gradle | 62 +++++++++----------- dexmaker/src/main/AndroidManifest.xml | 1 + edxp-core/build.gradle | 66 ++------------------- edxp-sandhook/build.gradle | 31 +--------- edxp-whale/build.gradle | 29 +--------- edxp-yahfa/build.gradle | 30 +--------- gradle.properties | 2 +- hiddenapi-stubs/.gitignore | 1 + hiddenapi-stubs/build.gradle | 14 +---- hiddenapi-stubs/libs/framework-stub.jar | Bin 15372 -> 0 bytes xposed-bridge/build.gradle | 5 +- 14 files changed, 77 insertions(+), 241 deletions(-) create mode 100644 dalvikdx/src/main/AndroidManifest.xml create mode 100644 dexmaker/src/main/AndroidManifest.xml delete mode 100644 hiddenapi-stubs/libs/framework-stub.jar diff --git a/build.gradle b/build.gradle index 48da868c..ddd888e9 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ allprojects { templateLibPath = templateRootPath + "/system/lib/" templateLib64Path = templateRootPath + "/system/lib64/" templateEtcPath = templateRootPath + "/system/etc/" - hiddenApiStubJarFilePath = project(":hiddenapi-stubs").projectDir.absolutePath + "/libs/framework-stub.jar" + hiddenApiStubJarFilePath = project(":hiddenapi-stubs").buildDir.absolutePath + "/libs/framework-stub.jar" } repositories { google() diff --git a/dalvikdx/build.gradle b/dalvikdx/build.gradle index a8b47c1e..a1d358bc 100644 --- a/dalvikdx/build.gradle +++ b/dalvikdx/build.gradle @@ -1,57 +1,33 @@ -import org.gradle.internal.os.OperatingSystem -apply plugin: 'java-library' +apply plugin: 'com.android.application' -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) +repositories { + jcenter() } -sourceCompatibility = "7" -targetCompatibility = "7" +android { + compileSdkVersion androidCompileSdkVersion.toInteger() + ndkVersion androidCompileNdkVersion +} -task findDx { - if (OperatingSystem.current().isWindows()){ - return true - } - doLast { - new ByteArrayOutputStream().withStream { os -> - exec { - commandLine "which", "dx" - standardOutput os +afterEvaluate { + android.applicationVariants.all { variant -> + def variantNameCapped = variant.name.capitalize() + def variantNameLowered = variant.name.toLowerCase() + + task("copyDex${variantNameCapped}", type: Copy) { + dependsOn "assemble${variantNameCapped}" + def dexOutPath = "${buildDir}/intermediates/dex/${variantNameLowered}/mergeDex${variantNameCapped}" + from (dexOutPath){ + rename("classes.dex", "eddalvikdx.dex") } - rootProject.ext.dxPath = os.toString() + destinationDir file(templateRootPath + "system/framework/") + outputs.upToDateWhen { false } + } + task("makeJar${variantNameCapped}", type: Jar, dependsOn: "assemble${variantNameCapped}") { + dependsOn "assemble${variantNameCapped}" + from "${buildDir}/intermediates/javac/${variantNameLowered}/classes" + baseName "dalvikdx" + outputs.file(archivePath) } } } - -task makeDex(type: Exec) { - dependsOn jar - dependsOn findDx - def dexName = "classes.dex" - workingDir jar.destinationDir - if (OperatingSystem.current().isWindows()) { - executable "dx.bat" - args "--dex", "--output", dexName, "${jar.archiveName}" - } else { - executable "bash" - args rootProject.ext.dxPath.trim(), "--dex", "--output", dexName, "${jar.archiveName}" - } -} - -task dex(type: Copy) { - dependsOn makeDex - from (jar.destinationDir) { - include "classes.dex" - rename "classes.dex", "eddalvikdx.dex" - } - destinationDir new File(projectDir, "dex") -} - -task dexInJar(type: Jar) { - dependsOn makeDex - from "${jar.destinationDir}/classes.dex" - destinationDir jar.destinationDir - baseName "eddalvikdx" - onlyIf { - !jar.state.upToDate || !file(archiveName).exists() - } -} \ No newline at end of file diff --git a/dalvikdx/src/main/AndroidManifest.xml b/dalvikdx/src/main/AndroidManifest.xml new file mode 100644 index 00000000..7474421e --- /dev/null +++ b/dalvikdx/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/dexmaker/build.gradle b/dexmaker/build.gradle index 7e615282..a3a6cc1b 100644 --- a/dexmaker/build.gradle +++ b/dexmaker/build.gradle @@ -1,47 +1,39 @@ -import org.gradle.internal.os.OperatingSystem -apply plugin: 'java' +apply plugin: 'com.android.application' description = "A utility for doing compile or runtime code generation targeting Android's Dalvik VM" -targetCompatibility = '1.7' -sourceCompatibility = '1.7' - repositories { jcenter() } +android { + compileSdkVersion androidCompileSdkVersion.toInteger() + ndkVersion androidCompileNdkVersion +} + dependencies { - compileOnly project(':dalvikdx') + compileOnly files(project(":dalvikdx").tasks.getByName("makeJarRelease").outputs) } -task makeDex(type: Exec) { - dependsOn jar - def dexName = "classes.dex" - workingDir jar.destinationDir - if (OperatingSystem.current().isWindows()) { - executable "dx.bat" - args "--dex", "--output", dexName, "${jar.archiveName}" - } else { - executable "bash" - args rootProject.ext.dxPath.trim(), "--dex", "--output", dexName, "${jar.archiveName}" - } -} +afterEvaluate { + android.applicationVariants.all { variant -> + def variantNameCapped = variant.name.capitalize() + def variantNameLowered = variant.name.toLowerCase() -task dex(type: Copy) { - dependsOn makeDex - from (jar.destinationDir) { - include "classes.dex" - rename "classes.dex", "eddexmaker.dex" + task("copyDex${variantNameCapped}", type: Copy) { + dependsOn "assemble${variantNameCapped}" + def dexOutPath = "${buildDir}/intermediates/dex/${variantNameLowered}/mergeDex${variantNameCapped}" + from (dexOutPath){ + rename("classes.dex", "eddexmaker.dex") + } + destinationDir file(templateRootPath + "system/framework/") + outputs.upToDateWhen { false } + } + task("makeJar${variantNameCapped}", type: Jar, dependsOn: "assemble${variantNameCapped}") { + dependsOn "assemble${variantNameCapped}" + from "${buildDir}/intermediates/javac/${variantNameLowered}/classes" + baseName "dexmaker" + outputs.file(archivePath) + } } - destinationDir new File(projectDir, "dex") -} - -task dexInJar(type: Jar) { - dependsOn makeDex - from "${jar.destinationDir}/classes.dex" - destinationDir jar.destinationDir - baseName "eddexmaker" - onlyIf { - !jar.state.upToDate || !file(archiveName).exists() - } -} +} \ No newline at end of file diff --git a/dexmaker/src/main/AndroidManifest.xml b/dexmaker/src/main/AndroidManifest.xml new file mode 100644 index 00000000..419831dd --- /dev/null +++ b/dexmaker/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/edxp-core/build.gradle b/edxp-core/build.gradle index 4afa17d1..e80bd37d 100644 --- a/edxp-core/build.gradle +++ b/edxp-core/build.gradle @@ -4,7 +4,7 @@ import org.gradle.internal.os.OperatingSystem apply plugin: 'com.android.library' // Values set here will be overriden by AppVeyor, feel free to modify during development. -def buildVersionName = 'v0.5.0.6' +def buildVersionName = 'v0.5.0.8' def buildVersionCode = 233 if (System.env.APPVEYOR_BUILD_VERSION != null) { @@ -49,8 +49,8 @@ android { externalNativeBuild { cmake { abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' - cppFlags "-std=c++17 -ffixed-x18 -Qunused-arguments -frtti" - cFlags "-std=gnu99 -ffixed-x18 -Qunused-arguments -frtti" + cppFlags "-std=c++17 -ffixed-x18 -Qunused-arguments -frtti -fomit-frame-pointer" + cFlags "-std=gnu99 -ffixed-x18 -Qunused-arguments -frtti -fomit-frame-pointer" arguments "-DRIRU_MODULE_API_VERSION=$moduleMaxRiruApiVersion", "-DRIRU_MODULE_VERSION=$buildVersionCode", "-DRIRU_MODULE_VERSION_NAME:STRING=\"$buildVersionName\"" @@ -86,62 +86,6 @@ android { ndkVersion androidCompileNdkVersion } -task copyDalvikdxDex { - def dexTask = tasks.getByPath(':dalvikdx:dex') - dependsOn dexTask - doLast { - copy { - from dexTask - into jar_dest_dir - } - } - onlyIf { - !dexTask.state.upToDate - } -} - -task copyDexmakerDex { - def dexTask = tasks.getByPath(':dexmaker:dex') - dependsOn dexTask - doLast { - copy { - from dexTask - into jar_dest_dir - } - } - onlyIf { - !dexTask.state.upToDate - } -} - -task copyDalvikdxJar { - def jarTask = tasks.getByPath(':dalvikdx:dexInJar') - dependsOn jarTask - doLast { - copy { - from jarTask - into jar_dest_dir - } - } - onlyIf { - !jarTask.state.upToDate || !file(jar_dest_dir + jarTask.archiveName).exists() - } -} - -task copyDexmakerJar { - def jarTask = tasks.getByPath(':dexmaker:dexInJar') - dependsOn jarTask - doLast { - copy { - from jarTask - into jar_dest_dir - } - } - onlyIf { - !jarTask.state.upToDate || !file(jar_dest_dir + jarTask.archiveName).exists() - } -} - task cleanTemplate(type: Delete) { delete file(templateSystemx86Path) } @@ -161,7 +105,9 @@ afterEvaluate { def magiskModuleId = property("${backendLowered}" + "_module_id") def prepareJarsTask = task("prepareJars${backendCapped}${variantCapped}") { - dependsOn cleanTemplate, copyDalvikdxDex, copyDexmakerDex + dependsOn cleanTemplate + dependsOn tasks.getByPath(":dexmaker:copyDex${variantCapped}") + dependsOn tasks.getByPath(":dalvikdx:copyDex${variantCapped}") dependsOn tasks.getByPath(":edxp-${backendLowered}:copyDex${variantCapped}") } diff --git a/edxp-sandhook/build.gradle b/edxp-sandhook/build.gradle index 01a8fc9b..09a22a55 100644 --- a/edxp-sandhook/build.gradle +++ b/edxp-sandhook/build.gradle @@ -29,7 +29,7 @@ dependencies { compileOnly project(':hiddenapi-stubs') implementation project(':edxp-common') implementation 'com.swift.sandhook:hooklib:4.2.1' - compileOnly project(':dexmaker') + compileOnly files(project(":dexmaker").tasks.getByName("makeJarRelease").outputs) } @@ -58,8 +58,6 @@ afterEvaluate { def variantNameCapped = variant.name.capitalize() def variantNameLowered = variant.name.toLowerCase() - def myTemplatePath = "${projectDir}/template_override/" - task("copyDex${variantNameCapped}", type: Copy) { dependsOn "assemble${variantNameCapped}" dependsOn tasks.getByPath(":edxp-common:copyCommonProperties") @@ -68,32 +66,9 @@ afterEvaluate { rename("classes.dex", "edxp.dex") } from "${projectDir}/src/main/resources/" - destinationDir file(myTemplatePath + "system/framework/") - doLast { - copy { - from file(myTemplatePath) - into file(templateRootPath) - } - } - } - - task("makeAndCopy${variantNameCapped}", type: Jar, dependsOn: "assemble${variantNameCapped}") { - dependsOn tasks.getByPath(":edxp-common:copyCommonProperties") - def dexOutPath = "${buildDir}/intermediates/dex/${variantNameLowered}/mergeDex${variantNameCapped}" - from (dexOutPath){ - rename("classes.dex", "edxp.dex") - } - from "${projectDir}/src/main/resources/" - destinationDir file(myTemplatePath + "system/framework/") - baseName "edxp" - doLast { - copy { - from file(myTemplatePath) - into file(templateRootPath) - include "*.dex" - } - } + destinationDir file(templateRootPath + "system/framework/") outputs.upToDateWhen { false } } + } } \ No newline at end of file diff --git a/edxp-whale/build.gradle b/edxp-whale/build.gradle index ed706ecf..649fec74 100644 --- a/edxp-whale/build.gradle +++ b/edxp-whale/build.gradle @@ -28,7 +28,7 @@ android { dependencies { compileOnly project(':hiddenapi-stubs') implementation project(':edxp-common') - compileOnly project(':dexmaker') + compileOnly files(project(":dexmaker").tasks.getByName("makeJarRelease").outputs) } @@ -57,8 +57,6 @@ afterEvaluate { def variantNameCapped = variant.name.capitalize() def variantNameLowered = variant.name.toLowerCase() - def myTemplatePath = "${projectDir}/template_override/" - task("copyDex${variantNameCapped}", type: Copy) { dependsOn "assemble${variantNameCapped}" dependsOn tasks.getByPath(":edxp-common:copyCommonProperties") @@ -67,30 +65,7 @@ afterEvaluate { rename("classes.dex", "edxp.dex") } from "${projectDir}/src/main/resources/" - destinationDir file(myTemplatePath + "system/framework/") - doLast { - copy { - from file(myTemplatePath) - into file(templateRootPath) - include "*.dex" - } - } - } - - task("makeAndCopy${variantNameCapped}", type: Jar, dependsOn: "assemble${variantNameCapped}") { - dependsOn tasks.getByPath(":edxp-common:copyCommonProperties") - def dexOutPath = variant.name.contains("release") ? - "${buildDir}/intermediates/transforms/dexMerger/${variantNameLowered}/0/" : - "${buildDir}/intermediates/dex/${variantNameLowered}/mergeDex${variantNameCapped}/out/" - from dexOutPath, "${projectDir}/src/main/resources/" - destinationDir file(myTemplatePath + "system/framework/") - baseName "edxp" - doLast { - copy { - from file(myTemplatePath) - into file(templateRootPath) - } - } + destinationDir file(templateRootPath + "system/framework/") outputs.upToDateWhen { false } } } diff --git a/edxp-yahfa/build.gradle b/edxp-yahfa/build.gradle index 2c2a1ad3..b84ac58f 100644 --- a/edxp-yahfa/build.gradle +++ b/edxp-yahfa/build.gradle @@ -28,7 +28,7 @@ android { dependencies { compileOnly project(':hiddenapi-stubs') implementation project(':edxp-common') - compileOnly project(':dexmaker') + compileOnly files(project(":dexmaker").tasks.getByName("makeJarRelease").outputs) } @@ -57,8 +57,6 @@ afterEvaluate { def variantNameCapped = variant.name.capitalize() def variantNameLowered = variant.name.toLowerCase() - def myTemplatePath = "${projectDir}/template_override/" - task("copyDex${variantNameCapped}", type: Copy) { dependsOn "assemble${variantNameCapped}" dependsOn tasks.getByPath(":edxp-common:copyCommonProperties") @@ -67,31 +65,9 @@ afterEvaluate { rename("classes.dex", "edxp.dex") } from "${projectDir}/src/main/resources/" - destinationDir file(myTemplatePath + "system/framework/") - doLast { - copy { - from file(myTemplatePath) - into file(templateRootPath) - } - } - } - - task("makeAndCopy${variantNameCapped}", type: Jar, dependsOn: "assemble${variantNameCapped}") { - dependsOn tasks.getByPath(":edxp-common:copyCommonProperties") - def dexOutPath = variant.name.contains("release") ? - "${buildDir}/intermediates/transforms/dexMerger/${variantNameLowered}/0/" : - "${buildDir}/intermediates/dex/${variantNameLowered}/mergeDex${variantNameCapped}/out/" - from dexOutPath, "${projectDir}/src/main/resources/" - destinationDir file(myTemplatePath + "system/framework/") - baseName "edxp" - doLast { - copy { - from file(myTemplatePath) - into file(templateRootPath) - include "*.dex" - } - } + destinationDir file(templateRootPath + "system/framework/") outputs.upToDateWhen { false } } + } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index be668d74..6eeb58e9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ androidCompileSdkVersion=30 -androidCompileNdkVersion=22.0.6917172 rc1 \ No newline at end of file +androidCompileNdkVersion=22.0.6917172 \ No newline at end of file diff --git a/hiddenapi-stubs/.gitignore b/hiddenapi-stubs/.gitignore index 796b96d1..97873191 100644 --- a/hiddenapi-stubs/.gitignore +++ b/hiddenapi-stubs/.gitignore @@ -1 +1,2 @@ /build +/libs diff --git a/hiddenapi-stubs/build.gradle b/hiddenapi-stubs/build.gradle index 513c00e2..31adb017 100644 --- a/hiddenapi-stubs/build.gradle +++ b/hiddenapi-stubs/build.gradle @@ -1,23 +1,15 @@ -import com.android.builder.core.BuilderConstants - apply plugin: 'com.android.library' android { compileSdkVersion androidCompileSdkVersion.toInteger() + ndkVersion androidCompileNdkVersion } task makeStubJar(type: Jar){ dependsOn assemble baseName 'framework-stub' - from("${projectDir}/build/intermediates/javac/release/classes/") - into('') - destinationDir file("${projectDir}/libs") + from("${buildDir}/intermediates/javac/release/classes/") exclude('BuildConfig.class', 'R.class') exclude{ it.name.startsWith('R$')} -} - -afterEvaluate { - tasks.withType(JavaCompile) { - it.finalizedBy(makeStubJar) - } + outputs.file(archivePath) } diff --git a/hiddenapi-stubs/libs/framework-stub.jar b/hiddenapi-stubs/libs/framework-stub.jar deleted file mode 100644 index 2c94a740a62c37455d5157ef1fe509f93cc50d3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15372 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 M0?nUK5Bk^t0S5;IjQ{`u diff --git a/xposed-bridge/build.gradle b/xposed-bridge/build.gradle index 1e9e58dc..831afc02 100644 --- a/xposed-bridge/build.gradle +++ b/xposed-bridge/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion androidCompileSdkVersion.toInteger() + ndkVersion androidCompileNdkVersion defaultConfig { minSdkVersion 26 @@ -38,8 +39,8 @@ preBuild.doLast { } dependencies { - compileOnly project(':hiddenapi-stubs') - compileOnly project(':dexmaker') + compileOnly files(project(":dexmaker").tasks.getByName("makeJarRelease").outputs) + compileOnly files(project(":hiddenapi-stubs").tasks.getByName("makeStubJar").outputs) } afterEvaluate {