diff --git a/build.gradle.kts b/build.gradle.kts index 014fb83..1795aee 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,7 +33,6 @@ dependencies { implementation(kotlin("reflect")) implementation("app.revanced:revanced-patcher:1.6.0") - implementation("org.slf4j:slf4j-api:1.7.36") implementation("info.picocli:picocli:4.6.3") implementation("com.android.tools.build:apksig:7.2.1") implementation("com.github.revanced:jadb:master-SNAPSHOT") // updated fork diff --git a/src/main/kotlin/app/revanced/cli/command/MainCommand.kt b/src/main/kotlin/app/revanced/cli/command/MainCommand.kt index 5853abe..f507845 100644 --- a/src/main/kotlin/app/revanced/cli/command/MainCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/MainCommand.kt @@ -2,26 +2,19 @@ package app.revanced.cli.command import app.revanced.cli.patcher.Patcher import app.revanced.cli.signing.Signing -import app.revanced.cli.signing.SigningOptions import app.revanced.patcher.PatcherOptions import app.revanced.patcher.extensions.PatchExtensions.description import app.revanced.patcher.extensions.PatchExtensions.patchName import app.revanced.patcher.util.patch.implementation.JarPatchBundle import app.revanced.utils.adb.Adb -import org.slf4j.Logger -import org.slf4j.LoggerFactory import picocli.CommandLine.* import java.io.File import java.nio.file.Files -import kotlin.io.path.Path -import kotlin.io.path.name @Command( name = "ReVanced-CLI", version = ["1.0.0"], mixinStandardHelpOptions = true ) internal object MainCommand : Runnable { - val logger: Logger = LoggerFactory.getLogger(MainCommand::class.java) - @ArgGroup(exclusive = false, multiplicity = "1") lateinit var args: Args @@ -66,9 +59,6 @@ internal object MainCommand : Runnable { @Option(names = ["--cn"], description = ["Overwrite the default CN for the signed file"]) var cn = "ReVanced" - @Option(names = ["--keystore"], description = ["File path to your keystore"]) - var keystorePath: String? = null - @Option(names = ["-p", "--password"], description = ["Overwrite the default password for the signed file"]) var password = "ReVanced" @@ -88,15 +78,13 @@ internal object MainCommand : Runnable { override fun run() { if (args.lArgs?.listOnly == true) { for (patchBundlePath in args.patchBundles) for (patch in JarPatchBundle(patchBundlePath).loadPatches()) { - logger.info("${patch.patchName}: ${patch.description}") + println("[available] ${patch.patchName}: ${patch.description}") } return } val args = args.pArgs ?: return - logger.info("Initialize patcher") - val patcher = app.revanced.patcher.Patcher( PatcherOptions( args.inputFile, args.cacheDirectory, !args.disableResourcePatching @@ -114,23 +102,26 @@ internal object MainCommand : Runnable { Patcher.start(patcher, patchedFile) + println("[aligning & signing]") + if (!args.mount) { Signing.start( - patchedFile, outputFile, SigningOptions( - args.cn, - args.password, - args.keystorePath - ?: Path(outputFile.parent).resolve("${outputFile.nameWithoutExtension}.keystore").name - ) + patchedFile, + outputFile, + args.cn, + args.password, ) } if (args.clean) File(args.cacheDirectory).deleteRecursively() - adb?.deploy() + adb?.let { + println("[deploying]") + it.deploy() + } if (args.clean && args.deploy != null) Files.delete(outputFile.toPath()) - logger.info("Done") + println("[done]") } } diff --git a/src/main/kotlin/app/revanced/cli/patcher/Patcher.kt b/src/main/kotlin/app/revanced/cli/patcher/Patcher.kt index ce4f658..7962788 100644 --- a/src/main/kotlin/app/revanced/cli/patcher/Patcher.kt +++ b/src/main/kotlin/app/revanced/cli/patcher/Patcher.kt @@ -1,7 +1,6 @@ package app.revanced.cli.patcher import app.revanced.cli.command.MainCommand.args -import app.revanced.cli.command.MainCommand.logger import app.revanced.utils.filesystem.ZipFileSystemUtils import app.revanced.utils.patcher.addPatchesFiltered import app.revanced.utils.patcher.applyPatchesVerbose @@ -31,13 +30,9 @@ internal object Patcher { ZipFileSystemUtils(inputFile, output).use { fileSystem -> // replace all dex files result.dexFiles.forEach { - logger.info("Write ${it.name}") - fileSystem.write(it.name, it.dexFileInputStream.readAllBytes()) } - logger.info("Write resources") - // inputFile being null implies resource patching being disabled if (inputFile != null) { // write resources diff --git a/src/main/kotlin/app/revanced/cli/signing/Signing.kt b/src/main/kotlin/app/revanced/cli/signing/Signing.kt index f22ecc2..ca826c6 100644 --- a/src/main/kotlin/app/revanced/cli/signing/Signing.kt +++ b/src/main/kotlin/app/revanced/cli/signing/Signing.kt @@ -1,7 +1,6 @@ package app.revanced.cli.signing import app.revanced.cli.command.MainCommand.args -import app.revanced.cli.command.MainCommand.logger import app.revanced.utils.signing.Signer import app.revanced.utils.signing.align.ZipAligner import java.io.File @@ -12,13 +11,8 @@ object Signing { val alignedOutput = cacheDirectory.resolve("${outputFile.nameWithoutExtension}_aligned.apk") val signedOutput = cacheDirectory.resolve("${outputFile.nameWithoutExtension}_signed.apk") - logger.info("Align zip entries") - // align the inputFile and write to alignedOutput ZipAligner.align(inputFile, alignedOutput) - - logger.info("Sign zip file") - // sign the alignedOutput and write to signedOutput // the reason is, in case the signer fails // it does not damage the output file diff --git a/src/main/kotlin/app/revanced/utils/adb/Adb.kt b/src/main/kotlin/app/revanced/utils/adb/Adb.kt index e21630f..9533994 100644 --- a/src/main/kotlin/app/revanced/utils/adb/Adb.kt +++ b/src/main/kotlin/app/revanced/utils/adb/Adb.kt @@ -1,6 +1,5 @@ package app.revanced.utils.adb -import app.revanced.cli.command.MainCommand.logger import se.vidstige.jadb.JadbConnection import se.vidstige.jadb.JadbDevice import se.vidstige.jadb.managers.PackageManager @@ -30,12 +29,8 @@ internal class Adb( internal fun deploy() { if (modeInstall) { - logger.info("Install without mount") - PackageManager(device).install(file) } else { - logger.info("Install by mount") - // push patched file device.copy(Constants.PATH_INIT_PUSH, file) diff --git a/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt b/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt index 3944e16..b78858b 100644 --- a/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt +++ b/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt @@ -2,7 +2,6 @@ package app.revanced.utils.patcher import app.revanced.cli.command.MainCommand import app.revanced.cli.command.MainCommand.args -import app.revanced.cli.command.MainCommand.logger import app.revanced.patcher.Patcher import app.revanced.patcher.data.base.Data import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages @@ -23,34 +22,33 @@ fun Patcher.addPatchesFiltered( val compatiblePackages = patch.compatiblePackages val patchName = patch.patchName - val prefix = "Skip $patchName" + val prefix = "[skipped] $patchName" val args = MainCommand.args.pArgs!! if (excludePatches && args.excludedPatches.contains(patchName)) { - logger.info("$prefix: Explicitly excluded") + println("$prefix: Explicitly excluded.") return@patch } else if (!patch.include) { - logger.info("$prefix: Implicitly excluded") + println("$prefix: Implicitly excluded.") return@patch } - if (compatiblePackages == null) logger.warn("$prefix: Missing compatibility annotation. Continuing.") + if (compatiblePackages == null) println("$prefix: Missing compatibility annotation. Continuing.") else { if (!compatiblePackages.any { it.name == packageName }) { - logger.info("$prefix: Incompatible package") + println("$prefix: Incompatible package.") return@patch } if (!(args.experimental || compatiblePackages.any { it.versions.isEmpty() || it.versions.any { version -> version == packageVersion } })) { - logger.info("$prefix: The package version is $packageVersion and is incompatible") + println("$prefix: The package version is $packageVersion and is incompatible.") return@patch } } - logger.info("Add $patchName") - includedPatches.add(patch) + println("[added] $patchName") } this.addPatches(includedPatches) } @@ -59,12 +57,10 @@ fun Patcher.addPatchesFiltered( fun Patcher.applyPatchesVerbose() { this.applyPatches().forEach { (patch, result) -> if (result.isSuccess) { - logger.info("Success: $patch") - + println("[success] $patch") return@forEach } - logger.error("Error: $patch") - + println("[error] $patch:") result.exceptionOrNull()!!.printStackTrace() } }