feat: add SignatureDownlaoder.kt

* Added automatic signatures downloader
* Refactor `utils` package.
This commit is contained in:
josesilveira 2022-04-11 17:46:03 -03:00
parent 8d96ec83cb
commit 0239406100
5 changed files with 40 additions and 7 deletions

View File

@ -1,9 +1,10 @@
package app.revanced.cli
import app.revanced.cli.utils.PatchLoader
import app.revanced.cli.utils.Patches
import app.revanced.cli.utils.patch.PatchLoader
import app.revanced.cli.utils.patch.Patches
import app.revanced.cli.utils.Preconditions
import app.revanced.cli.utils.SignatureParser
import app.revanced.cli.utils.signature.SignatureDownloader
import app.revanced.cli.utils.signature.SignatureParser
import app.revanced.patcher.Patcher
import app.revanced.patcher.patch.PatchResult
import kotlinx.cli.ArgParser
@ -25,6 +26,7 @@ class Main {
inPatches: String,
inIntegrations: String?,
inOutput: String,
downloadSignatures: Boolean? = true
) {
val bar = ProgressBarBuilder()
.setTaskName("Working..")
@ -34,6 +36,9 @@ class Main {
.build()
.maxHint(1)
.setExtraMessage("Initializing")
if(downloadSignatures) SignatureDownloader.download("youtube.signatures.json") // Not tested due private repos + not merged branches.
val apk = Preconditions.isFile(inApk)
val signatures = Preconditions.isFile(inSignatures)
val patchesFile = Preconditions.isFile(inPatches)
@ -129,6 +134,12 @@ class Main {
shortName = "o",
description = "Output directory"
).required()
val downloadSignatures by parser.option(
ArgType.Boolean,
fullName = "downloadSignatures",
shortName = "ds",
description = "Downloads signatures automatically."
)
parser.parse(args)
runCLI(
@ -137,6 +148,7 @@ class Main {
patches,
integrations,
output,
downloadSignatures
)
}
}

View File

@ -1,4 +1,4 @@
package app.revanced.cli.utils
package app.revanced.cli.utils.patch
import java.io.File
import java.net.URL

View File

@ -1,4 +1,4 @@
package app.revanced.cli.utils
package app.revanced.cli.utils.patch
import app.revanced.patches.Index

View File

@ -0,0 +1,22 @@
package app.revanced.cli.utils.signature
import java.io.File
import java.net.URL
import java.nio.file.Files
import java.nio.file.Paths
object SignatureDownloader {
fun download(out: String) {
val url =
URL("https://raw.githubusercontent.com/ReVancedTeam/revanced-signatures/main/signatures/youtube.signatures.json")
val file = File(out)
if(!file.exists()) {
url.openStream().use { Files.copy(it, Paths.get(out)) }
}
}
}

View File

@ -1,6 +1,5 @@
package app.revanced.cli.utils
package app.revanced.cli.utils.signature
import app.revanced.patcher.signature.MethodSignature
import com.google.gson.JsonParser
import me.tongfei.progressbar.ProgressBar
import org.jf.dexlib2.AccessFlags