From 28b9bdf7ed2a21d4e648965c50a31a18c58422ad Mon Sep 17 00:00:00 2001 From: Nullptr Date: Sat, 18 Sep 2021 14:14:21 +0800 Subject: [PATCH] Add allowing downgrade installation option --- manager/src/main/java/org/lsposed/lspatch/Patcher.kt | 2 ++ patch/src/main/java/org/lsposed/patch/LSPatch.java | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/manager/src/main/java/org/lsposed/lspatch/Patcher.kt b/manager/src/main/java/org/lsposed/lspatch/Patcher.kt index ac01505..1632d1d 100644 --- a/manager/src/main/java/org/lsposed/lspatch/Patcher.kt +++ b/manager/src/main/java/org/lsposed/lspatch/Patcher.kt @@ -12,6 +12,7 @@ object Patcher { private val v2: Boolean, private val v3: Boolean, private val useManager: Boolean, + private val overrideVersionCode: Boolean, private val verbose: Boolean, private val embeddedModules: List ) { @@ -26,6 +27,7 @@ object Patcher { add("--v2"); add(v2.toString()) add("--v3"); add(v3.toString()) if (useManager) add("--manager") + if (overrideVersionCode) add("-r") if (verbose) add("-v") if (embeddedModules.isNotEmpty()) { add("-m"); addAll(embeddedModules) diff --git a/patch/src/main/java/org/lsposed/patch/LSPatch.java b/patch/src/main/java/org/lsposed/patch/LSPatch.java index 99109d2..e98ae0b 100644 --- a/patch/src/main/java/org/lsposed/patch/LSPatch.java +++ b/patch/src/main/java/org/lsposed/patch/LSPatch.java @@ -80,6 +80,9 @@ public class LSPatch { @Parameter(names = {"--manager"}, description = "Use manager (Cannot work with embedding modules)") private boolean useManager = false; + @Parameter(names = {"-r", "--allowdown"}, description = "Allow downgrade installation by overriding versionCode to 1 (In most cases, the app can still get the correct versionCode)") + private boolean overrideVersionCode = false; + @Parameter(names = {"-v", "--verbose"}, description = "Verbose output") private boolean verbose = false; @@ -345,6 +348,8 @@ public class LSPatch { if (!modules.isEmpty()) property.addApplicationAttribute(new AttributeItem("extractNativeLibs", true)); + if (overrideVersionCode) + property.addManifestAttribute(new AttributeItem(NodeValue.Manifest.VERSION_CODE, 1)); property.addApplicationAttribute(new AttributeItem(NodeValue.Application.DEBUGGABLE, debuggableFlag)); property.addApplicationAttribute(new AttributeItem("appComponentFactory", PROXY_APP_COMPONENT_FACTORY)); // TODO: replace query_all with queries -> manager