gradle/src/main/kotlin/com/lagradost/cloudstream3/gradle/tasks/GenSourcesTask.kt

43 lines
1.4 KiB
Kotlin

package com.lagradost.cloudstream3.gradle.tasks
import com.lagradost.cloudstream3.gradle.getCloudstream
import jadx.api.JadxArgs
import jadx.api.JadxDecompiler
import jadx.api.impl.NoOpCodeCache
import jadx.api.impl.SimpleCodeWriter
import jadx.plugins.input.dex.DexInputPlugin
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
import java.util.function.Function
abstract class GenSourcesTask : DefaultTask() {
@TaskAction
fun genSources() {
val extension = project.extensions.getCloudstream()
val apkinfo = extension.apkinfo!!
val sourcesJarFile = apkinfo.cache.resolve("cloudstream-sources.jar")
val args = JadxArgs()
args.setInputFile(apkinfo.apkFile)
args.outDirSrc = sourcesJarFile
args.isSkipResources = true
args.isShowInconsistentCode = true
args.isRespectBytecodeAccModifiers = true
args.isFsCaseSensitive = true
args.isGenerateKotlinMetadata = false
args.isDebugInfo = false
args.isInlineAnonymousClasses = false
args.isInlineMethods = false
args.isReplaceConsts = false
args.codeCache = NoOpCodeCache()
args.codeWriterProvider = Function { SimpleCodeWriter(it) }
JadxDecompiler(args).use { decompiler ->
decompiler.registerPlugin(DexInputPlugin())
decompiler.load()
decompiler.save()
}
}
}