From 02e6b25c5501c092b32ee3f6ef6d7eb0e1b94fb2 Mon Sep 17 00:00:00 2001 From: maximum2974 Date: Tue, 9 Sep 2025 19:49:58 +0800 Subject: [PATCH 1/3] feat: add isModuleAbcCompressed in HapInfo Signed-off-by: maximum2974 --- adapter/ohos/HapInfo.java | 5 +++++ adapter/ohos/HapZipInfo.java | 23 +++++++++++++++++++++++ adapter/ohos/ModuleAdaption.java | 1 + adapter/ohos/ModuleInfo.java | 5 +++++ adapter/ohos/Uncompress.java | 6 ++++++ 5 files changed, 40 insertions(+) diff --git a/adapter/ohos/HapInfo.java b/adapter/ohos/HapInfo.java index 9f2c7ebb..32cf906e 100644 --- a/adapter/ohos/HapInfo.java +++ b/adapter/ohos/HapInfo.java @@ -178,6 +178,11 @@ public class HapInfo { */ public long originalSize = 0; + /** + * Indicates whether the module.abc file is compressed. + */ + public boolean isModuleAbcCompressed = false; + /** * Indicates the descriptions of HapInfo. */ diff --git a/adapter/ohos/HapZipInfo.java b/adapter/ohos/HapZipInfo.java index 175174f3..8f83f7cc 100644 --- a/adapter/ohos/HapZipInfo.java +++ b/adapter/ohos/HapZipInfo.java @@ -112,4 +112,27 @@ class HapZipInfo { } resourcemMap.put(fileName, fileContent); } + + /** + * Indicates whether the module.abc file is compressed. + */ + private boolean isModuleAbcCompressed = false; + + /** + * Set module.abc compression status. + * + * @param isModuleAbcCompressed compression status + */ + public void setIsModuleAbcCompressed(boolean isModuleAbcCompressed) { + this.isModuleAbcCompressed = isModuleAbcCompressed; + } + + /** + * Get module.abc compression status. + * + * @return true if module.abc is compressed, false otherwise + */ + public boolean getIsModuleAbcCompressed() { + return isModuleAbcCompressed; + } } diff --git a/adapter/ohos/ModuleAdaption.java b/adapter/ohos/ModuleAdaption.java index e5e42519..84b5381b 100644 --- a/adapter/ohos/ModuleAdaption.java +++ b/adapter/ohos/ModuleAdaption.java @@ -169,6 +169,7 @@ class ModuleAdaption { hapInfo.appModel = moduleInfo.appModel; hapInfo.dependencies = moduleInfo.dependenies; hapInfo.proxyData = moduleInfo.proxyData; + hapInfo.isModuleAbcCompressed = moduleInfo.isModuleAbcCompressed; return hapInfo; } diff --git a/adapter/ohos/ModuleInfo.java b/adapter/ohos/ModuleInfo.java index cb349b44..50f5478a 100644 --- a/adapter/ohos/ModuleInfo.java +++ b/adapter/ohos/ModuleInfo.java @@ -169,4 +169,9 @@ class ModuleInfo { public HashMap getDescriptions() { return descriptions; } + + /** + * Indicates whether the module.abc file is compressed. + */ + public boolean isModuleAbcCompressed = false; } diff --git a/adapter/ohos/Uncompress.java b/adapter/ohos/Uncompress.java index 5dd352a0..3d2d4f88 100644 --- a/adapter/ohos/Uncompress.java +++ b/adapter/ohos/Uncompress.java @@ -58,6 +58,7 @@ public class Uncompress { private static final String PACK_INFO = "pack.info"; private static final String HARMONY_PROFILE = "config.json"; private static final String MODULE_JSON = "module.json"; + private static final String MODULE_ABC = "modules.abc"; private static final String RESOURCE_INDEX = "resources.index"; private static final String RPCID_SC = "rpcid.sc"; private static final String LIBS = "libs"; @@ -1367,6 +1368,7 @@ public class Uncompress { moduleProfileInfo.hapName = hapZipInfo.getHapFileName(); moduleResult.addModuleProfileInfo(moduleProfileInfo); moduleResult.moduleProfileStr.add(hapZipInfo.getHarmonyProfileJsonStr()); + moduleProfileInfo.moduleInfo.isModuleAbcCompressed = hapZipInfo.getIsModuleAbcCompressed(); } /** @@ -1502,6 +1504,10 @@ public class Uncompress { bufferedReader = new BufferedReader(new InputStreamReader(zipIn)); hapZipInfo.setHarmonyProfileJsonStr(readStringFromInputStream(zipIn, bufferedReader)); } + if (MODULE_ABC.equals(entry.getName())) { + boolean isCompressed = (entry.getMethod() != 0); + hapZipInfo.setIsModuleAbcCompressed(isCompressed); + } if (entry.getName().contains(RESOURCE_PATH)) { bufferedReader = new BufferedReader(new InputStreamReader(zipIn)); String filePath = entry.getName(); -- Gitee From 9c5475e0b22086d78a22b3526ebfa8f2f48f2b59 Mon Sep 17 00:00:00 2001 From: maximum2974 Date: Wed, 10 Sep 2025 09:23:39 +0800 Subject: [PATCH 2/3] Revert "feat: add isModuleAbcCompressed in HapInfo" This reverts commit 02e6b25c5501c092b32ee3f6ef6d7eb0e1b94fb2. --- adapter/ohos/HapInfo.java | 5 ----- adapter/ohos/HapZipInfo.java | 23 ----------------------- adapter/ohos/ModuleAdaption.java | 1 - adapter/ohos/ModuleInfo.java | 5 ----- adapter/ohos/Uncompress.java | 6 ------ 5 files changed, 40 deletions(-) diff --git a/adapter/ohos/HapInfo.java b/adapter/ohos/HapInfo.java index 32cf906e..9f2c7ebb 100644 --- a/adapter/ohos/HapInfo.java +++ b/adapter/ohos/HapInfo.java @@ -178,11 +178,6 @@ public class HapInfo { */ public long originalSize = 0; - /** - * Indicates whether the module.abc file is compressed. - */ - public boolean isModuleAbcCompressed = false; - /** * Indicates the descriptions of HapInfo. */ diff --git a/adapter/ohos/HapZipInfo.java b/adapter/ohos/HapZipInfo.java index 8f83f7cc..175174f3 100644 --- a/adapter/ohos/HapZipInfo.java +++ b/adapter/ohos/HapZipInfo.java @@ -112,27 +112,4 @@ class HapZipInfo { } resourcemMap.put(fileName, fileContent); } - - /** - * Indicates whether the module.abc file is compressed. - */ - private boolean isModuleAbcCompressed = false; - - /** - * Set module.abc compression status. - * - * @param isModuleAbcCompressed compression status - */ - public void setIsModuleAbcCompressed(boolean isModuleAbcCompressed) { - this.isModuleAbcCompressed = isModuleAbcCompressed; - } - - /** - * Get module.abc compression status. - * - * @return true if module.abc is compressed, false otherwise - */ - public boolean getIsModuleAbcCompressed() { - return isModuleAbcCompressed; - } } diff --git a/adapter/ohos/ModuleAdaption.java b/adapter/ohos/ModuleAdaption.java index 84b5381b..e5e42519 100644 --- a/adapter/ohos/ModuleAdaption.java +++ b/adapter/ohos/ModuleAdaption.java @@ -169,7 +169,6 @@ class ModuleAdaption { hapInfo.appModel = moduleInfo.appModel; hapInfo.dependencies = moduleInfo.dependenies; hapInfo.proxyData = moduleInfo.proxyData; - hapInfo.isModuleAbcCompressed = moduleInfo.isModuleAbcCompressed; return hapInfo; } diff --git a/adapter/ohos/ModuleInfo.java b/adapter/ohos/ModuleInfo.java index 50f5478a..cb349b44 100644 --- a/adapter/ohos/ModuleInfo.java +++ b/adapter/ohos/ModuleInfo.java @@ -169,9 +169,4 @@ class ModuleInfo { public HashMap getDescriptions() { return descriptions; } - - /** - * Indicates whether the module.abc file is compressed. - */ - public boolean isModuleAbcCompressed = false; } diff --git a/adapter/ohos/Uncompress.java b/adapter/ohos/Uncompress.java index 3d2d4f88..5dd352a0 100644 --- a/adapter/ohos/Uncompress.java +++ b/adapter/ohos/Uncompress.java @@ -58,7 +58,6 @@ public class Uncompress { private static final String PACK_INFO = "pack.info"; private static final String HARMONY_PROFILE = "config.json"; private static final String MODULE_JSON = "module.json"; - private static final String MODULE_ABC = "modules.abc"; private static final String RESOURCE_INDEX = "resources.index"; private static final String RPCID_SC = "rpcid.sc"; private static final String LIBS = "libs"; @@ -1368,7 +1367,6 @@ public class Uncompress { moduleProfileInfo.hapName = hapZipInfo.getHapFileName(); moduleResult.addModuleProfileInfo(moduleProfileInfo); moduleResult.moduleProfileStr.add(hapZipInfo.getHarmonyProfileJsonStr()); - moduleProfileInfo.moduleInfo.isModuleAbcCompressed = hapZipInfo.getIsModuleAbcCompressed(); } /** @@ -1504,10 +1502,6 @@ public class Uncompress { bufferedReader = new BufferedReader(new InputStreamReader(zipIn)); hapZipInfo.setHarmonyProfileJsonStr(readStringFromInputStream(zipIn, bufferedReader)); } - if (MODULE_ABC.equals(entry.getName())) { - boolean isCompressed = (entry.getMethod() != 0); - hapZipInfo.setIsModuleAbcCompressed(isCompressed); - } if (entry.getName().contains(RESOURCE_PATH)) { bufferedReader = new BufferedReader(new InputStreamReader(zipIn)); String filePath = entry.getName(); -- Gitee From 57fc46ec59b427b4304436b08f3b49f5b29d4ade Mon Sep 17 00:00:00 2001 From: maximum2974 Date: Wed, 10 Sep 2025 10:44:18 +0800 Subject: [PATCH 3/3] feat: add isModuleAbcCompressed in HapInfo Signed-off-by: maximum2974 --- adapter/ohos/HapInfo.java | 5 +++++ adapter/ohos/HapZipInfo.java | 23 +++++++++++++++++++++++ adapter/ohos/ModuleAdaption.java | 1 + adapter/ohos/ModuleInfo.java | 5 +++++ adapter/ohos/Uncompress.java | 11 +++++++++++ 5 files changed, 45 insertions(+) diff --git a/adapter/ohos/HapInfo.java b/adapter/ohos/HapInfo.java index 9f2c7ebb..be35ab2d 100644 --- a/adapter/ohos/HapInfo.java +++ b/adapter/ohos/HapInfo.java @@ -191,6 +191,11 @@ public class HapInfo { return descriptions; } + /** + * Indicates whether the module.abc file is compressed. + */ + public boolean isModuleAbcCompressed = false; + /** * get the customize Data value defined in this module. */ diff --git a/adapter/ohos/HapZipInfo.java b/adapter/ohos/HapZipInfo.java index 175174f3..515b28ff 100644 --- a/adapter/ohos/HapZipInfo.java +++ b/adapter/ohos/HapZipInfo.java @@ -100,6 +100,29 @@ class HapZipInfo { this.hapFileName = hapFileName; } + /** + * Indicates whether the module.abc file is compressed. + */ + private boolean isModuleAbcCompressed = false; + + /** + * Set module.abc compression status. + * + * @param isModuleAbcCompressed compression status + */ + public void setIsModuleAbcCompressed(boolean isModuleAbcCompressed) { + this.isModuleAbcCompressed = isModuleAbcCompressed; + } + + /** + * Get module.abc compression status. + * + * @return true if module.abc is compressed, false otherwise + */ + public boolean getIsModuleAbcCompressed() { + return isModuleAbcCompressed; + } + /** * push json file to map. * diff --git a/adapter/ohos/ModuleAdaption.java b/adapter/ohos/ModuleAdaption.java index e5e42519..84b5381b 100644 --- a/adapter/ohos/ModuleAdaption.java +++ b/adapter/ohos/ModuleAdaption.java @@ -169,6 +169,7 @@ class ModuleAdaption { hapInfo.appModel = moduleInfo.appModel; hapInfo.dependencies = moduleInfo.dependenies; hapInfo.proxyData = moduleInfo.proxyData; + hapInfo.isModuleAbcCompressed = moduleInfo.isModuleAbcCompressed; return hapInfo; } diff --git a/adapter/ohos/ModuleInfo.java b/adapter/ohos/ModuleInfo.java index cb349b44..50f5478a 100644 --- a/adapter/ohos/ModuleInfo.java +++ b/adapter/ohos/ModuleInfo.java @@ -169,4 +169,9 @@ class ModuleInfo { public HashMap getDescriptions() { return descriptions; } + + /** + * Indicates whether the module.abc file is compressed. + */ + public boolean isModuleAbcCompressed = false; } diff --git a/adapter/ohos/Uncompress.java b/adapter/ohos/Uncompress.java index 5dd352a0..a23f04a5 100644 --- a/adapter/ohos/Uncompress.java +++ b/adapter/ohos/Uncompress.java @@ -80,6 +80,7 @@ public class Uncompress { private static final String PATCH_JSON = "patch.json"; private static final String HAP_PREFIX = "HAP"; private static final String HSP_SUFFIX = ".hsp"; + private static final String MODULE_ABC = "ets/modules.abc"; private static final int MAX_CPU_ABI_TYPE_NUM = 128; private static final Log LOG = new Log(Uncompress.class.toString()); @@ -1346,6 +1347,15 @@ public class Uncompress { hapZipInfo.setPackInfoJsonStr(FileUtils.getFileStringFromZip(PACK_INFO, zipFile)); hapZipInfo.setResDataBytes(getResourceDataFromHap(zipFile)); hapZipInfo.setHapFileName(getHapNameWithoutSuffix(srcFile.getName())); + Enumeration entries = zipFile.entries(); + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + if (MODULE_ABC.equals(entry.getName())) { + boolean isCompressed = (entry.getMethod() != ZipEntry.STORED); + hapZipInfo.setIsModuleAbcCompressed(isCompressed); + break; + } + } } finally { Utility.closeStream(zipFile); } @@ -1367,6 +1377,7 @@ public class Uncompress { moduleProfileInfo.hapName = hapZipInfo.getHapFileName(); moduleResult.addModuleProfileInfo(moduleProfileInfo); moduleResult.moduleProfileStr.add(hapZipInfo.getHarmonyProfileJsonStr()); + moduleProfileInfo.moduleInfo.isModuleAbcCompressed = hapZipInfo.getIsModuleAbcCompressed(); } /** -- Gitee