From d76944a0a29ccb05491b85eac6b9a72635f0265b Mon Sep 17 00:00:00 2001 From: HSSkyBoy <122550437+HSSkyBoy@users.noreply.github.com> Date: Sun, 25 Feb 2024 12:11:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20LSPatch.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- patch/src/main/java/org/lsposed/patch/LSPatch.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/patch/src/main/java/org/lsposed/patch/LSPatch.java b/patch/src/main/java/org/lsposed/patch/LSPatch.java index 0944fbe8..6ae0bdc9 100644 --- a/patch/src/main/java/org/lsposed/patch/LSPatch.java +++ b/patch/src/main/java/org/lsposed/patch/LSPatch.java @@ -154,7 +154,7 @@ public void doCommandLine() throws PatchError, IOException { outputDir.mkdirs(); File outputFile = new File(outputDir, String.format( - Locale.getDefault(), "%s-%d-lspatched.apk", + Locale.getDefault(), "%s-%d-npatched.apk", FilenameUtils.getBaseName(apkFileName), LSPConfig.instance.VERSION_CODE) ).getAbsoluteFile(); @@ -232,6 +232,18 @@ public void patch(File srcApkFile, File outputFile) throws PatchError, IOExcepti logger.d("original minSdkVersion: " + minSdkVersion); } + final boolean skipSplit = apkPaths.size() > 1 && srcApkFile.getName().startsWith("split_") && appComponentFactory == null; + if (skipSplit) { + logger.i("Packing split apk..."); + for (StoredEntry entry : srcZFile.entries()) { + String name = entry.getCentralDirectoryHeader().getName(); + if (dstZFile.get(name) != null) continue; + if (name.startsWith("META-INF") && (name.endsWith(".SF") || name.endsWith(".MF") || name.endsWith(".RSA"))) continue; + srcZFile.addFileLink(name, name); + } + return; + } + logger.i("Patching apk..."); // modify manifest final var config = new PatchConfig(useManager, debuggableFlag, overrideVersionCode, sigbypassLevel, originalSignature, appComponentFactory); From da53f620b96854fa41ed22ffe89d18fbfc687974 Mon Sep 17 00:00:00 2001 From: HSSkyBoy <122550437+HSSkyBoy@users.noreply.github.com> Date: Sun, 25 Feb 2024 12:12:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Constants.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/src/main/java/org/lsposed/lspatch/share/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/java/src/main/java/org/lsposed/lspatch/share/Constants.java b/share/java/src/main/java/org/lsposed/lspatch/share/Constants.java index f8a8f7f0..665ec420 100644 --- a/share/java/src/main/java/org/lsposed/lspatch/share/Constants.java +++ b/share/java/src/main/java/org/lsposed/lspatch/share/Constants.java @@ -8,7 +8,7 @@ public class Constants { final static public String ORIGINAL_APK_ASSET_PATH = "assets/lspatch/origin.apk"; final static public String EMBEDDED_MODULES_ASSET_PATH = "assets/lspatch/modules/"; - final static public String PATCH_FILE_SUFFIX = "-lspatched.apk"; + final static public String PATCH_FILE_SUFFIX = "-npatched.apk"; final static public String PROXY_APP_COMPONENT_FACTORY = "org.lsposed.lspatch.metaloader.LSPAppComponentFactoryStub"; final static public String MANAGER_PACKAGE_NAME = "org.lsposed.lspatch"; final static public int MIN_ROLLING_VERSION_CODE = 348;