diff --git a/hapsigntool/hap_sign_tool/pom.xml b/hapsigntool/hap_sign_tool/pom.xml
index b3c7031b1fe666b45b07ab126cc652e7fb4f35c6..53a4466c53d86619bb7dae46f4fc743df80ac746 100644
--- a/hapsigntool/hap_sign_tool/pom.xml
+++ b/hapsigntool/hap_sign_tool/pom.xml
@@ -25,14 +25,6 @@
org.bouncycastle
bcpkix-jdk18on
-
- org.apache.logging.log4j
- log4j-core
-
-
- org.apache.logging.log4j
- log4j-api
-
org.junit.jupiter
junit-jupiter-engine
diff --git a/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntool/HapSignTool.java b/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntool/HapSignTool.java
index adcfe6463bbf50a3dbbfdb7138eb5520a90d1ade..35889e3f7877c9905fd7a85ee1481d59f507a4d0 100644
--- a/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntool/HapSignTool.java
+++ b/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntool/HapSignTool.java
@@ -27,15 +27,13 @@ import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.error.ParamException;
import com.ohos.hapsigntool.utils.FileUtils;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
import com.ohos.hapsigntoolcmd.CmdUtil;
import com.ohos.hapsigntoolcmd.CmdUtil.Method;
import com.ohos.hapsigntoolcmd.HelpDocument;
import com.ohos.hapsigntoolcmd.Params;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -49,7 +47,7 @@ public final class HapSignTool {
/**
* Add log info.
*/
- private static final Logger LOGGER = LogManager.getLogger(HapSignTool.class);
+ private static final LogUtils LOGGER = new LogUtils(HapSignTool.class);
/**
* Tool version.
@@ -127,7 +125,7 @@ public final class HapSignTool {
ServiceApi api = new SignToolServiceImpl();
Params params = CmdUtil.convert2Params(args);
LOGGER.debug(params.toString());
- LOGGER.info("Start {}", params.getMethod());
+ LOGGER.info("Start " + params.getMethod());
boolean isSuccess = dispatchParams(params, api);
if (isSuccess) {
LOGGER.info(String.format("%s %s", params.getMethod(), "success"));
diff --git a/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntoolcmd/HelpDocument.java b/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntoolcmd/HelpDocument.java
index 7dbe3004238c297b5fb99c8d39dc77d97acae8af..f5f711656b144554475c96f6825dbc8870b7baa4 100644
--- a/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntoolcmd/HelpDocument.java
+++ b/hapsigntool/hap_sign_tool/src/main/java/com/ohos/hapsigntoolcmd/HelpDocument.java
@@ -18,7 +18,7 @@ package com.ohos.hapsigntoolcmd;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.utils.FileUtils;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import java.io.IOException;
import java.io.InputStream;
@@ -38,7 +38,7 @@ public final class HelpDocument {
*
* @param logger log4j
*/
- public static void printHelp(Logger logger) {
+ public static void printHelp(LogUtils logger) {
ClassLoader classLoader = HelpDocument.class.getClassLoader();
if (classLoader == null) {
return;
diff --git a/hapsigntool/hap_sign_tool/src/main/resources/log.properties b/hapsigntool/hap_sign_tool/src/main/resources/log.properties
new file mode 100644
index 0000000000000000000000000000000000000000..848e7c925236b840d9f98b06969f5c00dcca3ec9
--- /dev/null
+++ b/hapsigntool/hap_sign_tool/src/main/resources/log.properties
@@ -0,0 +1 @@
+level=info
\ No newline at end of file
diff --git a/hapsigntool/hap_sign_tool/src/main/resources/log4j2.xml b/hapsigntool/hap_sign_tool/src/main/resources/log4j2.xml
deleted file mode 100644
index 87353ad62d4d5643600a51f02ed79c64693a455e..0000000000000000000000000000000000000000
--- a/hapsigntool/hap_sign_tool/src/main/resources/log4j2.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
- ../logs
- ../logs
- ../logs
-
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%t-%L] %-5level %logger{36} - %msg%n
- %d{MM-dd HH:mm:ss} %-5level - %msg%n
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/hapsigntool/hap_sign_tool/src/test/java/com/ohos/hapsigntoolcmd/ConcurrencyTest.java b/hapsigntool/hap_sign_tool/src/test/java/com/ohos/hapsigntoolcmd/ConcurrencyTest.java
index b991ebece9fd41dcb68c4b507c22a40c1c574cde..d7dc5a5f3c7546e179de82188f46cfe8ef4361b4 100644
--- a/hapsigntool/hap_sign_tool/src/test/java/com/ohos/hapsigntoolcmd/ConcurrencyTest.java
+++ b/hapsigntool/hap_sign_tool/src/test/java/com/ohos/hapsigntoolcmd/ConcurrencyTest.java
@@ -27,8 +27,7 @@ import com.ohos.hapsigntool.HapSignTool;
import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.utils.FileUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
@@ -77,7 +76,7 @@ public class ConcurrencyTest {
private static final File TMP_DIR = new File("concurrentTest");
private static final List tmpSource = new ArrayList<>();
- private static final Logger log = LogManager.getLogger(ConcurrencyTest.class);
+ private static final LogUtils log = new LogUtils(ConcurrencyTest.class);
/**
* before test
diff --git a/hapsigntool/hap_sign_tool_lib/pom.xml b/hapsigntool/hap_sign_tool_lib/pom.xml
index 5672b6627997fa619d27caa4d99b8b2b9c28a162..d8ce617032a89587013ba23f0d8380840edb1c39 100644
--- a/hapsigntool/hap_sign_tool_lib/pom.xml
+++ b/hapsigntool/hap_sign_tool_lib/pom.xml
@@ -20,14 +20,6 @@
org.bouncycastle
bcpkix-jdk18on
-
- org.apache.logging.log4j
- log4j-core
-
-
- org.apache.logging.log4j
- log4j-api
-
org.junit.jupiter
junit-jupiter-engine
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/adapter/LocalizationAdapter.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/adapter/LocalizationAdapter.java
index 6f505b62280d9ea1fb1787b6d1636a3190067822..3528578de668d9a96001ed001177f440c489245a 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/adapter/LocalizationAdapter.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/adapter/LocalizationAdapter.java
@@ -23,10 +23,9 @@ import com.ohos.hapsigntool.utils.KeyPairTools;
import com.ohos.hapsigntool.utils.KeyStoreHelper;
import com.ohos.hapsigntool.utils.CertUtils;
import com.ohos.hapsigntool.utils.FileUtils;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
import com.ohos.hapsigntool.utils.ValidateUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x509.KeyPurposeId;
import org.bouncycastle.asn1.x509.KeyUsage;
@@ -54,7 +53,7 @@ public class LocalizationAdapter {
/**
* Logger
*/
- private static final Logger logger = LogManager.getLogger(LocalizationAdapter.class);
+ private static final LogUtils logger = new LogUtils(LocalizationAdapter.class);
/**
* Params
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/CertTools.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/CertTools.java
index 0d0ab3d56c2b7748f7fb236b4a3e94ba03164bc9..f4f2abc1cd6254b2fa1a7a9021a594905915045a 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/CertTools.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/CertTools.java
@@ -22,8 +22,8 @@ import com.ohos.hapsigntool.entity.Options;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.utils.CertUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
+import com.ohos.hapsigntool.utils.LogUtils;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x509.KeyPurposeId;
import org.bouncycastle.asn1.x509.KeyUsage;
@@ -58,7 +58,7 @@ public final class CertTools {
/**
* Logger.
*/
- private static final Logger LOGGER = LogManager.getLogger(ServiceApi.class);
+ private static final LogUtils LOGGER = new LogUtils(ServiceApi.class);
private CertTools() {
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/SignToolServiceImpl.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/SignToolServiceImpl.java
index 7eee7c07a1d40ddb37be068a44e19c529340a1d5..bb4d1895d2339450e6da0d0afea229bcaa8feb7d 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/SignToolServiceImpl.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/api/SignToolServiceImpl.java
@@ -33,10 +33,9 @@ import com.ohos.hapsigntool.profile.model.VerificationResult;
import com.ohos.hapsigntool.utils.CertUtils;
import com.ohos.hapsigntool.utils.FileUtils;
import com.ohos.hapsigntool.entity.ParamConstants;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import java.io.File;
@@ -69,7 +68,7 @@ public class SignToolServiceImpl implements ServiceApi {
/**
* Logger.
*/
- private static final Logger logger = LogManager.getLogger(ServiceApi.class);
+ private static final LogUtils logger = new LogUtils(ServiceApi.class);
static {
Security.addProvider(new BouncyCastleProvider());
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/cert/CertBuilder.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/cert/CertBuilder.java
index a9cc7b61261957dad22eda96299231a0874a531b..6ce87c4990035d8bb8f66a67d5c9f1d371b3e42b 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/cert/CertBuilder.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/cert/CertBuilder.java
@@ -19,8 +19,8 @@ import com.ohos.hapsigntool.api.ServiceApi;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.utils.CertUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
+import com.ohos.hapsigntool.utils.LogUtils;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x509.BasicConstraints;
@@ -58,7 +58,7 @@ public class CertBuilder {
/**
* Logger.
*/
- private static final Logger logger = LogManager.getLogger(ServiceApi.class);
+ private static final LogUtils logger = new LogUtils(ServiceApi.class);
/**
* issuer keyPair.
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/HapInfoSegment.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/HapInfoSegment.java
index 42865040fa13681f3653fe548a649af4deef31cd..783c1d163009b65a72e095af9e0b01875af135a8 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/HapInfoSegment.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/HapInfoSegment.java
@@ -18,9 +18,6 @@ package com.ohos.hapsigntool.codesigning.datastructure;
import com.ohos.hapsigntool.codesigning.exception.VerifyCodeSignException;
import com.ohos.hapsigntool.codesigning.utils.NumberUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.Locale;
@@ -37,8 +34,6 @@ import java.util.Locale;
* @since 2023/09/08
*/
public class HapInfoSegment {
- private static final Logger LOGGER = LogManager.getLogger(HapInfoSegment.class);
-
private static final int MAGIC_NUM_BYTES = 4;
/**
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/SignInfo.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/SignInfo.java
index 748b92a2e518316677affb34ebea5670a1d9c5e8..81960807e74d18d53c1d6cef779db6a975955b3a 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/SignInfo.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/datastructure/SignInfo.java
@@ -16,9 +16,7 @@
package com.ohos.hapsigntool.codesigning.datastructure;
import com.ohos.hapsigntool.codesigning.exception.VerifyCodeSignException;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
@@ -63,7 +61,7 @@ public class SignInfo {
*/
public static final int MAX_EXTENSION_NUM = 2;
- private static final Logger LOGGER = LogManager.getLogger(SignInfo.class);
+ private static final LogUtils LOGGER = new LogUtils(SignInfo.class);
/**
* sign info structure without signature in bytes, refer to toByteArray() method
@@ -247,8 +245,8 @@ public class SignInfo {
bf.get(inSalt);
int inExtensionNum = bf.getInt();
if (inExtensionNum < 0 || inExtensionNum > MAX_EXTENSION_NUM) {
- LOGGER.info("The signature information may be generated by an new tool, extensionNum {} of SignInfo",
- inExtensionNum);
+ LOGGER.info("The signature information may be generated by an new tool, extensionNum "
+ + inExtensionNum + " of SignInfo");
}
int inExtensionOffset = bf.getInt();
if (inExtensionOffset < 0 || inExtensionOffset % 4 != 0) {
@@ -298,7 +296,7 @@ public class SignInfo {
bf.get(pageInfoExtension);
inExtensionList.add(PageInfoExtension.fromByteArray(pageInfoExtension));
} else {
- LOGGER.info("Invalid extensionType {} of SignInfo", extensionType);
+ LOGGER.info("Invalid extensionType " + extensionType + " of SignInfo");
}
}
return inExtensionList;
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/BcSignedDataGenerator.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/BcSignedDataGenerator.java
index b20002282365c30667b32f6a2e24b838295c046d..a38aea41461e34569298de221a9bb461e01a5145 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/BcSignedDataGenerator.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/BcSignedDataGenerator.java
@@ -23,8 +23,7 @@ import com.ohos.hapsigntool.entity.Pair;
import com.ohos.hapsigntool.entity.ContentDigestAlgorithm;
import com.ohos.hapsigntool.entity.SignatureAlgorithm;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Encoding;
import org.bouncycastle.asn1.ASN1Integer;
@@ -75,7 +74,7 @@ public class BcSignedDataGenerator implements SignedDataGenerator {
*/
public static final String SIGNER_OID = "1.3.6.1.4.1.2011.2.376.1.4.1";
- private static final Logger LOGGER = LogManager.getLogger(BcSignedDataGenerator.class);
+ private static final LogUtils LOGGER = new LogUtils(BcSignedDataGenerator.class);
private static final SignatureAlgorithmIdentifierFinder SIGN_ALG_ID_FINDER
= new DefaultSignatureAlgorithmIdentifierFinder();
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/CodeSigning.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/CodeSigning.java
index ee95ce70cfe91ebf2b1ffdf48a66ada1df412f7f..31fe3d353332869f20118517a7e58420e088f455 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/CodeSigning.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/CodeSigning.java
@@ -36,15 +36,13 @@ import com.ohos.hapsigntool.error.ProfileException;
import com.ohos.hapsigntool.hap.config.SignerConfig;
import com.ohos.hapsigntool.signer.LocalSigner;
import com.ohos.hapsigntool.utils.FileUtils;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
import com.ohos.hapsigntool.zip.EntryType;
import com.ohos.hapsigntool.zip.Zip;
import com.ohos.hapsigntool.zip.ZipEntry;
import com.ohos.hapsigntool.zip.ZipEntryHeader;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -80,7 +78,7 @@ public class CodeSigning {
*/
public static final String HAP_SIGNATURE_ENTRY_NAME = "Hap";
- private static final Logger LOGGER = LogManager.getLogger(CodeSigning.class);
+ private static final LogUtils LOGGER = new LogUtils(CodeSigning.class);
private final SignerConfig signConfig;
@@ -275,7 +273,7 @@ public class CodeSigning {
if (!hnpTypeMap.containsKey(hnpFileName)) {
throw new CodeSignException("hnp should be described in module.json");
}
- LOGGER.debug("Sign hnp name = {}", entryName);
+ LOGGER.debug("Sign hnp name = " + entryName);
String type = hnpTypeMap.get(hnpFileName);
String hnpOwnerId = ownerID;
if ("public".equals(type)) {
@@ -296,7 +294,7 @@ public class CodeSigning {
}
try (JarFile hnp = new JarFile(tempHnp, false)) {
List elfEntries = getHnpLibEntries(hnp);
- LOGGER.debug("{} elf num : {}", hnp.getName(), elfEntries.size());
+ LOGGER.debug(hnp.getName() + " elf num : " + elfEntries.size());
List> nativeLibInfoList = elfEntries.stream().parallel().map(entry -> {
String hnpElfPath = hnpEntry.getName() + "!/" + entry.getName();
try (InputStream inputStream = hnp.getInputStream(entry)) {
@@ -306,7 +304,7 @@ public class CodeSigning {
false, 0, ownerID);
return (Pair.create(hnpElfPath, pairSignInfoAndMerkleTreeBytes.getFirst()));
} catch (IOException | FsVerityDigestException | CodeSignException e) {
- LOGGER.error("Sign hnp lib error, entry name = {}, msg : {}", hnpElfPath, e.getMessage());
+ LOGGER.error("Sign hnp lib error, entry name = " + hnpElfPath + ", msg : " + e.getMessage());
}
return null;
}).collect(Collectors.toList());
@@ -317,9 +315,9 @@ public class CodeSigning {
} finally {
if (tempHnp.exists()) {
if (tempHnp.delete()) {
- LOGGER.debug("delete temp hnp file {}", tempHnp.getName());
+ LOGGER.debug("delete temp hnp file " + tempHnp.getName());
} else {
- LOGGER.error("delete temp hnp file error {}", tempHnp.getName());
+ LOGGER.error("delete temp hnp file error " + tempHnp.getName());
}
}
}
@@ -405,7 +403,7 @@ public class CodeSigning {
private List> signFilesFromJar(List entryNames, JarFile hap, String ownerID)
throws CodeSignException {
List> nativeLibInfoList = entryNames.stream().parallel().map(name -> {
- LOGGER.debug("Sign entry name = {}", name);
+ LOGGER.debug("Sign entry name = " + name);
JarEntry inEntry = hap.getJarEntry(name);
try (InputStream inputStream = hap.getInputStream(inEntry)) {
long fileSize = inEntry.getSize();
@@ -415,7 +413,7 @@ public class CodeSigning {
ownerID);
return Pair.create(name, pairSignInfoAndMerkleTreeBytes.getFirst());
} catch (FsVerityDigestException | CodeSignException | IOException e) {
- LOGGER.error("Sign lib error, entry name = {}, msg : {}", name, e.getMessage());
+ LOGGER.error("Sign lib error, entry name = " + name + ", msg : " + e.getMessage());
}
return null;
}).collect(Collectors.toList());
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/PageInfoGenerator.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/PageInfoGenerator.java
index 7ddfd52c69d230d40733c144aa72f470ef4019d7..e157e04ad61d1791ebe995f56a2e24189f6b7842 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/PageInfoGenerator.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/PageInfoGenerator.java
@@ -23,14 +23,12 @@ import com.ohos.hapsigntool.codesigning.exception.ElfFormatException;
import com.ohos.hapsigntool.codesigning.utils.NumberUtils;
import com.ohos.hapsigntool.error.HapFormatException;
import com.ohos.hapsigntool.utils.FileUtils;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.zip.EntryType;
import com.ohos.hapsigntool.zip.Zip;
import com.ohos.hapsigntool.zip.ZipEntry;
import com.ohos.hapsigntool.zip.ZipEntryHeader;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -55,7 +53,7 @@ public class PageInfoGenerator {
private static final byte ELF_M_CODE = 1;
- private static final Logger LOGGER = LogManager.getLogger(PageInfoGenerator.class);
+ private static final LogUtils LOGGER = new LogUtils(PageInfoGenerator.class);
private long maxEntryDataOffset = 0L;
@@ -106,7 +104,7 @@ public class PageInfoGenerator {
try (InputStream stream = hap.getInputStream(libEntry)) {
ElfFile elfFile = new ElfFile(stream);
if (!elfFile.isElfFile()) {
- LOGGER.info("{} not ELF file", libFileName);
+ LOGGER.info(libFileName + " not ELF file");
return;
}
List elfPHeaders = elfFile.filterExecPHeaders();
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/VerifyCodeSignature.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/VerifyCodeSignature.java
index 4c4a401b4d1257c04c41c004adb08ebd62358e19..8e39671bac81a2d91be6d35e83ac6636613a0ffb 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/VerifyCodeSignature.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/sign/VerifyCodeSignature.java
@@ -32,10 +32,9 @@ import com.ohos.hapsigntool.codesigning.utils.CmsUtils;
import com.ohos.hapsigntool.codesigning.utils.HapUtils;
import com.ohos.hapsigntool.entity.Pair;
import com.ohos.hapsigntool.error.ProfileException;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.cms.Attribute;
import org.bouncycastle.asn1.cms.AttributeTable;
@@ -64,7 +63,7 @@ import java.util.zip.ZipInputStream;
* @since 2023/09/08
*/
public class VerifyCodeSignature {
- private static final Logger LOGGER = LogManager.getLogger(VerifyCodeSignature.class);
+ private static final LogUtils LOGGER = new LogUtils(VerifyCodeSignature.class);
private static void checkOwnerID(byte[] signature, String profileOwnerID, String profileType)
throws CMSException, VerifyCodeSignException {
@@ -221,7 +220,7 @@ public class VerifyCodeSignature {
hnpEntryNames.add(filePath[0]);
hnpLibSignInfoMap.put(entryName, signInfo);
} else {
- LOGGER.info("verify lib: {}", entryName);
+ LOGGER.info("verify lib: " + entryName);
verifyHapLib(inputJar, entryName, signInfo, pairResult);
}
}
@@ -271,7 +270,7 @@ public class VerifyCodeSignature {
if (!hnpLibSignInfoMap.containsKey(libPath)) {
continue;
}
- LOGGER.info("verify lib: {}", libPath);
+ LOGGER.info("verify lib: " + libPath);
SignInfo signInfo = hnpLibSignInfoMap.get(libPath);
byte[] entrySig = signInfo.getSignature();
long dataSize = signInfo.getDataSize();
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/utils/HapUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/utils/HapUtils.java
index 1b42e15d918073adb855be406b75b30d6246eef1..cd13b0b1359890d47b8147901c678bac29a54387 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/utils/HapUtils.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/codesigning/utils/HapUtils.java
@@ -25,8 +25,7 @@ import com.google.gson.JsonSyntaxException;
import com.google.gson.stream.JsonReader;
import com.ohos.hapsigntool.entity.Pair;
import com.ohos.hapsigntool.error.ProfileException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import java.io.File;
import java.io.IOException;
@@ -59,7 +58,7 @@ public class HapUtils {
*/
public static final String HAP_SHARED_OWNER_ID = "SHARED_LIB_ID";
- private static final Logger LOGGER = LogManager.getLogger(HapUtils.class);
+ private static final LogUtils LOGGER = new LogUtils(HapUtils.class);
private static final String COMPRESS_NATIVE_LIBS_OPTION = "compressNativeLibs";
@@ -193,7 +192,7 @@ public class HapUtils {
LOGGER.error(e.getMessage());
throw new ProfileException("profile json is invalid");
}
- LOGGER.info("profile type is: {}", profileType);
+ LOGGER.info("profile type is: " + profileType);
return Pair.create(ownerID, profileType);
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/entity/Options.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/entity/Options.java
index e7335ead057d18cb8230190adcc0ba8ef2406fe9..6f5b13fcc3b277589b5ab6ee620644f7bb2e3727 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/entity/Options.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/entity/Options.java
@@ -17,8 +17,7 @@ package com.ohos.hapsigntool.entity;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import java.util.HashMap;
@@ -248,7 +247,7 @@ public class Options extends HashMap {
/**
* Logger.
*/
- private static final Logger logger = LogManager.getLogger(Options.class);
+ private static final LogUtils logger = new LogUtils(Options.class);
/**
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/error/LogConfigException.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/error/LogConfigException.java
new file mode 100644
index 0000000000000000000000000000000000000000..2ac69574a50ed341bcacc3bafe1fee93a2f53d13
--- /dev/null
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/error/LogConfigException.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2024-2024 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.ohos.hapsigntool.error;
+
+/**
+ * LogConfigException
+ *
+ * @since 2024/12/08
+ */
+public class LogConfigException extends Exception {
+ public LogConfigException(String message) {
+ super(message);
+ }
+}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/LocalJKSSignProvider.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/LocalJKSSignProvider.java
index b2a36d967195fa182fe05bbb2c6399b833827405..e72a1556457ef5e3f48bce4c82c8bc731c4af9fe 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/LocalJKSSignProvider.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/LocalJKSSignProvider.java
@@ -20,11 +20,10 @@ import com.ohos.hapsigntool.error.InvalidParamsException;
import com.ohos.hapsigntool.error.MissingParamsException;
import com.ohos.hapsigntool.utils.FileUtils;
import com.ohos.hapsigntool.entity.ParamConstants;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.ParamProcessUtil;
import com.ohos.hapsigntool.utils.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import java.io.File;
import java.io.FileInputStream;
@@ -42,7 +41,7 @@ import java.util.Set;
* @since 2021/12/22
*/
public class LocalJKSSignProvider extends SignProvider {
- private static final Logger LOGGER = LogManager.getLogger(LocalJKSSignProvider.class);
+ private static final LogUtils LOGGER = new LogUtils(LocalJKSSignProvider.class);
@Override
public Optional getCrl() {
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/SignProvider.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/SignProvider.java
index 8b00c53c1dfa8ac0433703abb484b224ad0ecf10..f4b2b42e9872dce474e59a46fe415a0c1eeb7188 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/SignProvider.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/provider/SignProvider.java
@@ -46,6 +46,7 @@ import com.ohos.hapsigntool.utils.EscapeCharacter;
import com.ohos.hapsigntool.utils.FileUtils;
import com.ohos.hapsigntool.hap.utils.HapUtils;
import com.ohos.hapsigntool.entity.ParamConstants;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.ParamProcessUtil;
import com.ohos.hapsigntool.utils.StringUtils;
import com.ohos.hapsigntool.zip.ByteBufferZipDataInput;
@@ -57,8 +58,6 @@ import com.ohos.hapsigntool.zip.ZipDataOutput;
import com.ohos.hapsigntool.zip.ZipFileInfo;
import com.ohos.hapsigntool.zip.ZipUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.asn1.x500.RDN;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x500.style.BCStyle;
@@ -93,7 +92,7 @@ import java.util.Set;
* @since 2021-12-14
*/
public abstract class SignProvider {
- private static final Logger LOGGER = LogManager.getLogger(SignProvider.class);
+ private static final LogUtils LOGGER = new LogUtils(SignProvider.class);
private static final List VALID_SIGN_ALG_NAME = new ArrayList();
private static final List PARAMETERS_NEED_ESCAPE = new ArrayList();
private static final long TIMESTAMP = 1230768000000L;
@@ -480,13 +479,13 @@ public abstract class SignProvider {
private void printErrorLog(Exception exception) {
if (exception != null) {
- LOGGER.error("hap-sign-tool: error: {}", exception.getMessage(), exception);
+ LOGGER.error("hap-sign-tool: error: " + exception.getMessage(), exception);
}
}
private void printErrorLogWithoutStack(Exception exception) {
if (exception != null) {
- LOGGER.error("hap-sign-tool: error: {}", exception.getMessage());
+ LOGGER.error("hap-sign-tool: error: " + exception.getMessage());
}
}
@@ -518,7 +517,7 @@ public abstract class SignProvider {
long start = System.currentTimeMillis();
zip.toFile(tmpOutput.getCanonicalPath());
long end = System.currentTimeMillis();
- LOGGER.debug("zip to file use {} ms", end - start);
+ LOGGER.debug("zip to file use " + (end - start) + " ms");
return zip;
}
@@ -650,7 +649,7 @@ public abstract class SignProvider {
throw new ProfileException("input certificates do not match with profile!");
}
String cn = getCertificateCN(certInProfile);
- LOGGER.info("certificate in profile: {}", cn);
+ LOGGER.info("certificate in profile: " + cn);
if (cn.isEmpty()) {
throw new ProfileException("Common name of certificate is empty!");
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/BcPkcs7Generator.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/BcPkcs7Generator.java
index ad4cda156c194a51eae3459ca9509f12a6f483c3..91854872d1b42553262e993f3d0e24ce8a68c8bf 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/BcPkcs7Generator.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/BcPkcs7Generator.java
@@ -22,8 +22,7 @@ import com.ohos.hapsigntool.entity.Pair;
import com.ohos.hapsigntool.error.SignatureException;
import com.ohos.hapsigntool.hap.verify.VerifyUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Encoding;
import org.bouncycastle.asn1.ASN1Integer;
@@ -72,7 +71,7 @@ import java.util.List;
* @since 2021/12/21
*/
public class BcPkcs7Generator implements Pkcs7Generator {
- private static final Logger LOGGER = LogManager.getLogger(BcPkcs7Generator.class);
+ private static final LogUtils LOGGER = new LogUtils(BcPkcs7Generator.class);
private static final SignatureAlgorithmIdentifierFinder SIGN_ALG_FINDER =
new DefaultSignatureAlgorithmIdentifierFinder();
private static final DigestAlgorithmIdentifierFinder DIGEST_ALG_FINDER =
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignBin.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignBin.java
index 8c776060cc056658397e8a20cfaa8c3d3f56f855..217547e647e104377540cadb0d881fceaba368cf 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignBin.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignBin.java
@@ -25,11 +25,9 @@ import com.ohos.hapsigntool.error.SignatureException;
import com.ohos.hapsigntool.utils.FileUtils;
import com.ohos.hapsigntool.utils.HashUtils;
import com.ohos.hapsigntool.entity.ParamConstants;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.ParamProcessUtil;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
@@ -42,7 +40,7 @@ import java.util.Map;
* @since 2021/12/21
*/
public class SignBin {
- private static final Logger LOGGER = LogManager.getLogger(SignBin.class);
+ private static final LogUtils LOGGER = new LogUtils(SignBin.class);
/**
* Constructor of Method
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignElf.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignElf.java
index bc0b646cc5fed72fb28bd7f8e042641264a148a4..6f2256aa8212b80925c66057ac68af743410a852 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignElf.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/sign/SignElf.java
@@ -28,12 +28,10 @@ import com.ohos.hapsigntool.error.HapFormatException;
import com.ohos.hapsigntool.error.ProfileException;
import com.ohos.hapsigntool.utils.FileUtils;
import com.ohos.hapsigntool.entity.ParamConstants;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.ParamProcessUtil;
import com.ohos.hapsigntool.utils.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -55,7 +53,7 @@ public class SignElf {
*/
public static final char CODESIGN_BLOCK_TYPE = 3;
- private static final Logger LOGGER = LogManager.getLogger(SignElf.class);
+ private static final LogUtils LOGGER = new LogUtils(SignElf.class);
private static final String CODESIGN_OFF = "0";
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/utils/HapUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/utils/HapUtils.java
index d5ce7655982fb3563cd2412c022fd79ff24bfb64..fe6c495c9b03289b4c34a2411112ee6dfbd5b638 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/utils/HapUtils.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/utils/HapUtils.java
@@ -19,13 +19,12 @@ import com.ohos.hapsigntool.entity.Pair;
import com.ohos.hapsigntool.hap.entity.SigningBlock;
import com.ohos.hapsigntool.error.SignatureNotFoundException;
import com.ohos.hapsigntool.entity.ContentDigestAlgorithm;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.zip.MessageDigestZipDataOutput;
import com.ohos.hapsigntool.zip.ZipDataInput;
import com.ohos.hapsigntool.zip.ZipDataOutput;
import com.ohos.hapsigntool.zip.ZipFileInfo;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.util.Arrays;
import java.io.ByteArrayOutputStream;
@@ -50,7 +49,7 @@ import java.util.Set;
* @since 2021/12/20
*/
public class HapUtils {
- private static final Logger LOGGER = LogManager.getLogger(HapUtils.class);
+ private static final LogUtils LOGGER = new LogUtils(HapUtils.class);
/**
* ID of hap signature blocks of version 1
@@ -519,7 +518,7 @@ public class HapUtils {
hapSignBlockMagicLo, hapSignBlockMagicHi, version, centralDirectoryStartOffset);
ByteBuffer hapSigningBlockByteBuffer = hap.createByteBuffer(hapSigningBlockOffset, (int) hapSigBlockSize)
.order(ByteOrder.LITTLE_ENDIAN);
- LOGGER.info("Find Hap Signing Block success, version: {}, block count: {}", version, blockCount);
+ LOGGER.info("Find Hap Signing Block success, version: " + version + ", block count: " + blockCount);
return new HapSignBlockInfo(hapSigningBlockOffset, version, hapSigningBlockByteBuffer);
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/HapVerify.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/HapVerify.java
index 6707caa4b6eb2214fe0c7bc9bcdb2326cb17be42..d3ec26aa01b65e0b99fecea544531a8f1d7c6af3 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/HapVerify.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/HapVerify.java
@@ -20,10 +20,9 @@ import com.ohos.hapsigntool.entity.ContentDigestAlgorithm;
import com.ohos.hapsigntool.entity.SignatureAlgorithm;
import com.ohos.hapsigntool.utils.DigestUtils;
import com.ohos.hapsigntool.hap.utils.HapUtils;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.zip.ZipDataInput;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.cert.X509CRLHolder;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.cert.jcajce.JcaX509CRLConverter;
@@ -73,7 +72,7 @@ import java.util.Set;
* @since 2021/12/22
*/
public class HapVerify {
- private static final Logger LOGGER = LogManager.getLogger(HapVerify.class);
+ private static final LogUtils LOGGER = new LogUtils(HapVerify.class);
private static final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -154,8 +153,8 @@ public class HapVerify {
}
X509CRLEntry entry = crl.getRevokedCertificate(cert);
if (entry != null) {
- LOGGER.info("cert(subject DN = {}) is revoked by crl (IssuerDN = {})",
- cert.getSubjectDN().getName(), crl.getIssuerDN().getName());
+ LOGGER.info("cert(subject DN = " + cert.getSubjectDN().getName() +
+ ") is revoked by crl (IssuerDN = " + crl.getIssuerDN().getName() + ")");
isRet = false;
break;
}
@@ -289,7 +288,8 @@ public class HapVerify {
}
if (isPrintCert) {
for (int i = 0; i < certificateList.size(); i++) {
- LOGGER.info("+++++++++++++++++++++++++++certificate #{} +++++++++++++++++++++++++++++++", i);
+ LOGGER.info("+++++++++++++++++++++++++++certificate #"
+ + i + "+++++++++++++++++++++++++++++++");
printCert(certificateList.get(i));
}
}
@@ -356,7 +356,7 @@ public class HapVerify {
*/
int signBlockVersion = digestDatas.getInt();
int signBlockCount = digestDatas.getInt();
- LOGGER.info("version is: {}, number of block is: {}", signBlockVersion, signBlockCount);
+ LOGGER.info("version is: " + signBlockVersion + " , number of block is: {}" + signBlockCount);
int digestBlockLen = digestDatas.getInt();
int signatureAlgId = digestDatas.getInt();
int digestDataLen = digestDatas.getInt();
@@ -384,12 +384,13 @@ public class HapVerify {
if (!Arrays.equals(actualDigest, exceptDigest)) {
isResult = false;
LOGGER.error(
- "digest data do not match! DigestAlgorithm: {}, actualDigest: <{}> VS exceptDigest : <{}>",
- digestAlg.getDigestAlgorithm(),
- HapUtils.toHex(actualDigest, ""),
- HapUtils.toHex(exceptDigest, ""));
+ "digest data do not match! DigestAlgorithm: "
+ + digestAlg.getDigestAlgorithm() + ", actualDigest: <"
+ + HapUtils.toHex(actualDigest, "")
+ + "> VS exceptDigest : <" + HapUtils.toHex(exceptDigest, "") +">");
}
- LOGGER.info("Digest verify result: {}, DigestAlgorithm: {}", isResult, digestAlg.getDigestAlgorithm());
+ LOGGER.info("Digest verify result: " + isResult
+ + ", DigestAlgorithm: " + digestAlg.getDigestAlgorithm());
}
return isResult;
}
@@ -397,15 +398,16 @@ public class HapVerify {
private void printCert(X509Certificate cert) throws CertificateEncodingException {
byte[] encodedCert = cert.getEncoded();
- LOGGER.info("Subject: {}", cert.getSubjectX500Principal());
- LOGGER.info("Issuer: {}", cert.getIssuerX500Principal());
- LOGGER.info("SerialNumber: {}", cert.getSerialNumber().toString(16));
- LOGGER.info("Validity: {} ~ {}", formatDateTime(cert.getNotBefore()), formatDateTime(cert.getNotAfter()));
- LOGGER.info("SHA256: {}", HapUtils.toHex(DigestUtils.sha256Digest(encodedCert), ":"));
- LOGGER.info("Signature Algorithm: {}", cert.getSigAlgName());
+ LOGGER.info("Subject: " + cert.getSubjectX500Principal());
+ LOGGER.info("Issuer: " + cert.getIssuerX500Principal());
+ LOGGER.info("SerialNumber: " + cert.getSerialNumber().toString(16));
+ LOGGER.info("Validity: " + formatDateTime(cert.getNotBefore())
+ + " ~ " + formatDateTime(cert.getNotAfter()));
+ LOGGER.info("SHA256: " + HapUtils.toHex(DigestUtils.sha256Digest(encodedCert), ":"));
+ LOGGER.info("Signature Algorithm: " + cert.getSigAlgName());
PublicKey publicKey = cert.getPublicKey();
- LOGGER.info("Key: {}, key length: {} bits", publicKey.getAlgorithm(), getKeySize(publicKey));
- LOGGER.info("Cert Version: V{}", cert.getVersion());
+ LOGGER.info("Key: " + publicKey.getAlgorithm() + ", key length: {} bits" + getKeySize(publicKey));
+ LOGGER.info("Cert Version: V" + cert.getVersion());
}
private int getKeySize(PublicKey publicKey) {
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyAndParseProvision.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyAndParseProvision.java
index 0ffed2bf6192f4920c52a1b35523b22572ff8e2b..b6fe5d7dc115a06532ead37045a6837a0eb16390 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyAndParseProvision.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyAndParseProvision.java
@@ -16,8 +16,8 @@
package com.ohos.hapsigntool.hap.verify;
import com.ohos.hapsigntool.utils.FileUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
+import com.ohos.hapsigntool.utils.LogUtils;
import org.bouncycastle.cms.CMSException;
import org.bouncycastle.cms.CMSSignedData;
@@ -32,7 +32,7 @@ import java.security.SignatureException;
* @since 2021/12/21
*/
public class VerifyAndParseProvision {
- private static final Logger LOGGER = LogManager.getLogger(VerifyAndParseProvision.class);
+ private static final LogUtils LOGGER = new LogUtils(VerifyAndParseProvision.class);
/**
* verify signatures of provision and output unsigned provision
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyElf.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyElf.java
index 9d8c617730adadad376a96fc36e116b8eaa4cba8..7894528b246e26dba3ce8c92409b87dfc96e80dc 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyElf.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyElf.java
@@ -28,10 +28,9 @@ import com.ohos.hapsigntool.error.ProfileException;
import com.ohos.hapsigntool.hap.sign.SignElf;
import com.ohos.hapsigntool.utils.FileUtils;
import com.ohos.hapsigntool.entity.ParamConstants;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.cms.CMSException;
import org.bouncycastle.cms.CMSSignedData;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
@@ -58,7 +57,7 @@ import java.util.Map;
* @since 2023/11/23
*/
public class VerifyElf {
- private static final Logger LOGGER = LogManager.getLogger(VerifyElf.class);
+ private static final LogUtils LOGGER = new LogUtils(VerifyElf.class);
static {
Security.addProvider(new BouncyCastleProvider());
@@ -89,15 +88,15 @@ public class VerifyElf {
*/
public boolean checkParams(Options options) {
if (!options.containsKey(ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE)) {
- LOGGER.error("Missing parameter: {}", ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE);
+ LOGGER.error("Missing parameter: " + ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE);
return false;
}
if (!options.containsKey(ParamConstants.PARAM_VERIFY_PROFILE_FILE)) {
- LOGGER.error("Missing parameter: {}", ParamConstants.PARAM_VERIFY_PROFILE_FILE);
+ LOGGER.error("Missing parameter: " + ParamConstants.PARAM_VERIFY_PROFILE_FILE);
return false;
}
if (!options.containsKey(ParamConstants.PARAM_VERIFY_PROOF_FILE)) {
- LOGGER.warn("Missing parameter: {}", ParamConstants.PARAM_VERIFY_PROOF_FILE);
+ LOGGER.warn("Missing parameter: " + ParamConstants.PARAM_VERIFY_PROOF_FILE);
}
return true;
}
@@ -127,7 +126,7 @@ public class VerifyElf {
}
verifyResult = verifyElf(filePath);
if (!verifyResult.isVerified()) {
- LOGGER.error("verify: {}", verifyResult.getMessage());
+ LOGGER.error("verify: " + verifyResult.getMessage());
throw new IOException();
}
String outputCertPath = options.getString(ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE);
@@ -147,7 +146,7 @@ public class VerifyElf {
return false;
}
- LOGGER.info("verify: {}", verifyResult.getMessage());
+ LOGGER.info("verify: " + verifyResult.getMessage());
return true;
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyHap.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyHap.java
index 7affc004b9df7d1702423baa47f48ff56af24cf7..689cc8e1fa3a20f3364caa453c27f74cf1089df3 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyHap.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/hap/verify/VerifyHap.java
@@ -27,6 +27,7 @@ import com.ohos.hapsigntool.error.SignatureNotFoundException;
import com.ohos.hapsigntool.utils.FileUtils;
import com.ohos.hapsigntool.hap.utils.HapUtils;
import com.ohos.hapsigntool.entity.ParamConstants;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
import com.ohos.hapsigntool.zip.ByteBufferZipDataInput;
import com.ohos.hapsigntool.zip.RandomAccessFileZipDataInput;
@@ -35,8 +36,6 @@ import com.ohos.hapsigntool.zip.ZipDataInput;
import com.ohos.hapsigntool.zip.ZipFileInfo;
import com.ohos.hapsigntool.zip.ZipUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.bouncycastle.cms.CMSException;
import org.bouncycastle.cms.CMSSignedData;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
@@ -67,7 +66,7 @@ import java.util.stream.Collectors;
* @since 2021/12/23
*/
public class VerifyHap {
- private static final Logger LOGGER = LogManager.getLogger(VerifyHap.class);
+ private static final LogUtils LOGGER = new LogUtils(VerifyHap.class);
private static final int ZIP_HEAD_OF_SIGNING_BLOCK_LENGTH = 32;
private static final int ZIP_HEAD_OF_SIGNING_BLOCK_COUNT_OFFSET_REVERSE = 28;
private static final int ZIP_HEAD_OF_SUBSIGNING_BLOCK_LENGTH = 12;
@@ -111,15 +110,15 @@ public class VerifyHap {
*/
public boolean checkParams(Options options) {
if (!options.containsKey(ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE)) {
- LOGGER.error("Missing parameter: {}", ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE);
+ LOGGER.error("Missing parameter: " + ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE);
return false;
}
if (!options.containsKey(ParamConstants.PARAM_VERIFY_PROFILE_FILE)) {
- LOGGER.error("Missing parameter: {}", ParamConstants.PARAM_VERIFY_PROFILE_FILE);
+ LOGGER.error("Missing parameter: " + ParamConstants.PARAM_VERIFY_PROFILE_FILE);
return false;
}
if (!options.containsKey(ParamConstants.PARAM_VERIFY_PROOF_FILE)) {
- LOGGER.warn("Missing parameter: {}", ParamConstants.PARAM_VERIFY_PROOF_FILE);
+ LOGGER.warn("Missing parameter: " + ParamConstants.PARAM_VERIFY_PROOF_FILE);
}
return true;
}
@@ -149,7 +148,7 @@ public class VerifyHap {
}
verifyResult = verifyHap(filePath);
if (!verifyResult.isVerified()) {
- LOGGER.error("verify: {}", verifyResult.getMessage());
+ LOGGER.error("verify: " + verifyResult.getMessage());
throw new IOException();
}
String outputCertPath = options.getString(ParamConstants.PARAM_VERIFY_CERTCHAIN_FILE);
@@ -171,7 +170,7 @@ public class VerifyHap {
return false;
}
- LOGGER.info("verify: {}", verifyResult.getMessage());
+ LOGGER.info("verify: "+ verifyResult.getMessage());
return true;
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/ProfileSignTool.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/ProfileSignTool.java
index a78039834ca3d42ae0de7e3d9a0f88b229e2bd4b..a9b28a5a3a959e60b7e2ad25310f9f1d82fa3af6 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/ProfileSignTool.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/ProfileSignTool.java
@@ -22,9 +22,9 @@ import com.ohos.hapsigntool.error.VerifyException;
import com.ohos.hapsigntool.profile.model.VerificationResult;
import com.ohos.hapsigntool.signer.ISigner;
import com.ohos.hapsigntool.signer.SignerFactory;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.ValidateUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Set;
import org.bouncycastle.asn1.BERSet;
@@ -73,7 +73,7 @@ public final class ProfileSignTool {
/**
* logger
*/
- private static final Logger LOGGER = LogManager.getLogger(ProfileSignTool.class);
+ private static final LogUtils LOGGER = new LogUtils(ProfileSignTool.class);
private ProfileSignTool() {
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/VerifyHelper.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/VerifyHelper.java
index ab36eefefa675c8953f404b4fda8b06730a11e26..19efcc7a6abf9d1b564db8bd3b89816ad9ca1172 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/VerifyHelper.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/profile/VerifyHelper.java
@@ -24,9 +24,9 @@ import com.ohos.hapsigntool.profile.model.VerificationResult;
import com.ohos.hapsigntool.utils.CertChainUtils;
import com.ohos.hapsigntool.utils.CertUtils;
import com.ohos.hapsigntool.utils.FileUtils;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.ValidateUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Set;
import org.bouncycastle.asn1.cms.Attribute;
@@ -67,7 +67,7 @@ public class VerifyHelper implements IProvisionVerifier {
/**
* LOGGER.
*/
- private static final Logger LOGGER = LogManager.getLogger(VerifyHelper.class);
+ private static final LogUtils LOGGER = new LogUtils(VerifyHelper.class);
/**
* Signed provision profile verifier.
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/LocalSigner.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/LocalSigner.java
index d71d77480fdab33d1fb1b3476a02dce5e0442374..d6f5ed93da7be1a22f6c3f4b12a59bd7fde85deb 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/LocalSigner.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/LocalSigner.java
@@ -17,8 +17,7 @@ package com.ohos.hapsigntool.signer;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
@@ -41,7 +40,7 @@ public class LocalSigner implements ISigner {
/**
* logger of LocalSigner
*/
- private static final Logger logger = LogManager.getLogger(LocalSigner.class);
+ private static final LogUtils logger = new LogUtils(LocalSigner.class);
/**
* PrivateKey.
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/SignerFactory.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/SignerFactory.java
index 22e6c4a69d938848e4d5883a685df48393441eab..36d36a5c948ae6f83f005dd9250fe8ee7a1816c8 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/SignerFactory.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/signer/SignerFactory.java
@@ -18,11 +18,9 @@ package com.ohos.hapsigntool.signer;
import com.ohos.hapsigntool.adapter.LocalizationAdapter;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
+import com.ohos.hapsigntool.utils.LogUtils;
import com.ohos.hapsigntool.utils.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -46,7 +44,7 @@ import java.util.Properties;
* @since 2021/12/28
*/
public class SignerFactory {
- private static final Logger LOGGER = LogManager.getLogger(SignerFactory.class);
+ private static final LogUtils LOGGER = new LogUtils(SignerFactory.class);
private static final Map SIGNER_LOADERS = new HashMap<>();
@@ -83,7 +81,7 @@ public class SignerFactory {
plugin = new File(classLocation, signerPlugin);
}
if (!plugin.exists() || !plugin.isFile()) {
- LOGGER.warn("can not find signerPlugin or not a file by param signerPlugin = {}", signerPlugin);
+ LOGGER.warn("can not find signerPlugin or not a file by param signerPlugin = " + signerPlugin);
return Optional.empty();
}
Optional url = fileToUrl(plugin);
@@ -94,14 +92,14 @@ public class SignerFactory {
ClassLoader classLoader = generateSignerClassLoader(url.get());
try (InputStream inputStream = classLoader.getResourceAsStream("signer.properties")) {
if (inputStream == null) {
- LOGGER.warn("can not find entry signer.properties in {}", plugin);
+ LOGGER.warn("can not find entry signer.properties in " + plugin);
return Optional.empty();
}
Properties properties = new Properties();
properties.load(inputStream);
String implClassName = properties.getProperty(ISigner.class.getName());
if (StringUtils.isEmpty(implClassName)) {
- LOGGER.warn("can not find {} in signer.properties", ISigner.class.getName());
+ LOGGER.warn("can not find " + ISigner.class.getName() + " in signer.properties");
return Optional.empty();
}
Class> implClass = classLoader.loadClass(implClassName);
@@ -113,20 +111,20 @@ public class SignerFactory {
}
} catch (IOException | ClassNotFoundException | NoSuchMethodException
| InvocationTargetException | InstantiationException | IllegalAccessException e) {
- LOGGER.warn("load remote signer from {} failed, msg: {}", signerPlugin, e.getMessage());
+ LOGGER.warn("load remote signer from " + signerPlugin + " failed, msg: " + e.getMessage());
}
return Optional.empty();
}
private Optional fileToUrl(File file) {
if (!file.exists()) {
- LOGGER.warn("{} is not exists", file);
+ LOGGER.warn(file + " is not exists");
return Optional.empty();
}
try {
return Optional.of(file.toURI().toURL());
} catch (MalformedURLException e) {
- LOGGER.warn("{} can not convert to valid url, msg: {}", file, e.getMessage());
+ LOGGER.warn(file + " can not convert to valid url, msg: " + e.getMessage());
}
return Optional.empty();
}
@@ -139,7 +137,7 @@ public class SignerFactory {
try {
jarPath = URLDecoder.decode(URLEncoder.encode(jarPath, "utf-8"), "utf-8");
} catch (UnsupportedEncodingException | IllegalArgumentException e) {
- LOGGER.warn("decode class location failed, will ignored. msg :{}", e.getMessage());
+ LOGGER.warn("decode class location failed, will ignored. msg :" + e.getMessage());
}
File jarFile = new File(jarPath);
if (!jarFile.exists()) {
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertChainUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertChainUtils.java
index f6c658dab73224dd5113db8446966ae4667f1038..fe8e8ece4affbc36768599a8c57f677f6c6991d9 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertChainUtils.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertChainUtils.java
@@ -18,8 +18,6 @@ package com.ohos.hapsigntool.utils;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.error.VerifyException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import javax.security.auth.x500.X500Principal;
import java.io.IOException;
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertUtils.java
index 313c474196fde3bbf9ebde413d9e1f8be545c2f4..83410b1c33f2a27e6574509fab2cd175316e33a0 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertUtils.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/CertUtils.java
@@ -18,8 +18,7 @@ package com.ohos.hapsigntool.utils;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.error.VerifyCertificateChainException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x509.KeyPurposeId;
import org.bouncycastle.asn1.x509.KeyUsage;
@@ -56,7 +55,7 @@ public final class CertUtils {
/**
* Logger.
*/
- private static final Logger LOGGER = LogManager.getLogger(CertUtils.class);
+ private static final LogUtils LOGGER = new LogUtils(CertUtils.class);
/**
* Max length to print certificate string.
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/DigestUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/DigestUtils.java
index 51945298f99d75c8d240c2abe5cd6b80d406ae19..786d4bba271797192f980b0ac4819593a3fd8bc4 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/DigestUtils.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/DigestUtils.java
@@ -15,9 +15,6 @@
package com.ohos.hapsigntool.utils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
@@ -37,7 +34,7 @@ import java.util.Base64;
* @since 2021-12-13
*/
public class DigestUtils {
- private static final Logger LOGGER = LogManager.getLogger(DigestUtils.class);
+ private static final LogUtils LOGGER = new LogUtils(DigestUtils.class);
/**
* Constructor of Method
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/FileUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/FileUtils.java
index bb7d713a253a78833b89f9a49ac6d7f255376e93..3a4a54090b64890a417c0fe35e098ad94ed511b7 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/FileUtils.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/FileUtils.java
@@ -20,9 +20,6 @@ import com.google.gson.GsonBuilder;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
@@ -47,7 +44,7 @@ public final class FileUtils {
/**
* LOGGER.
*/
- private static final Logger LOGGER = LogManager.getLogger(FileUtils.class);
+ private static final LogUtils LOGGER = new LogUtils(FileUtils.class);
/**
* add GSON static.
@@ -499,7 +496,7 @@ public final class FileUtils {
try {
Files.delete(file.toPath());
} catch (IOException e) {
- LOGGER.warn("delete file '{}' error, error message: {}", file, e.getMessage());
+ LOGGER.warn("delete file '" + file + "' error, error message: " + e.getMessage());
}
}
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/HashUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/HashUtils.java
index 2874bf1bb3d44088a75394ca5ad3700c27613d52..51b39b35b156abf15a04f8555178201bd485f655 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/HashUtils.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/HashUtils.java
@@ -15,9 +15,6 @@
package com.ohos.hapsigntool.utils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -34,7 +31,7 @@ import java.util.Map;
* @since 2021/12/21
*/
public class HashUtils {
- private static final Logger LOGGER = LogManager.getLogger(HashUtils.class);
+ private static final LogUtils LOGGER = new LogUtils(HashUtils.class);
private static final int HASH_LEN = 4096;
private static final Map ALG_METHOD = new HashMap<>();
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyPairTools.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyPairTools.java
index 7fd288ea40e267d076f3eb9529bb03cc77034f90..7b84b73fe0f114dbd10a8bccb318ba5fc1e44a6e 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyPairTools.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyPairTools.java
@@ -17,8 +17,7 @@ package com.ohos.hapsigntool.utils;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
import org.bouncycastle.util.encoders.Base64;
import java.security.Key;
@@ -81,7 +80,7 @@ public final class KeyPairTools {
/**
* Logger.
*/
- private static final Logger LOGGER = LogManager.getLogger(KeyPairTools.class);
+ private static final LogUtils LOGGER = new LogUtils(KeyPairTools.class);
private KeyPairTools() {}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyStoreHelper.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyStoreHelper.java
index 3d87ebba048b80c15ee5c9eb5e5a9f2bfdc39b65..f8ace3fe0228d90f0a104bb840048281cac06905 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyStoreHelper.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/KeyStoreHelper.java
@@ -17,8 +17,7 @@ package com.ohos.hapsigntool.utils;
import com.ohos.hapsigntool.error.CustomException;
import com.ohos.hapsigntool.error.ERROR;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
import org.bouncycastle.asn1.x500.X500NameBuilder;
import org.bouncycastle.asn1.x500.style.BCStyle;
import org.bouncycastle.cert.X509v3CertificateBuilder;
@@ -81,7 +80,7 @@ public class KeyStoreHelper {
/**
* Use LogManager to show log instead of use "System.out.print" to show log.
*/
- private static final Logger logger = LogManager.getLogger(KeyStoreHelper.class);
+ private static final LogUtils logger = new LogUtils(KeyStoreHelper.class);
/**
* Field keyStorePath.
@@ -117,7 +116,7 @@ public class KeyStoreHelper {
FileInputStream fis = null;
try {
if (FileUtils.isFileExist(keyStorePath)) {
- logger.info("{} is exist. Try to load it with given passwd", keyStorePath);
+ logger.info(keyStorePath + " is exist. Try to load it with given passwd");
fis = new FileInputStream(keyStorePath);
keyStore.load(fis, pwd);
} else {
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/LogUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/LogUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..9666b5226c69147f1fcc8c42c9967891d9e0c669
--- /dev/null
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/LogUtils.java
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2024-2024 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.ohos.hapsigntool.utils;
+
+import com.ohos.hapsigntool.error.LogConfigException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.security.CodeSource;
+import java.security.ProtectionDomain;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Hap Sign Tool LogUtils
+ *
+ * @since 2024/12/08
+ */
+public class LogUtils {
+ private static Logger logger;
+ private static Level level;
+ private static final Map LEVEL_MAP = new HashMap<>();
+ private static final String DEFAULT_LEVEL = "info";
+
+ static {
+ LEVEL_MAP.put(DEFAULT_LEVEL, Level.INFO);
+ LEVEL_MAP.put("debug", Level.CONFIG);
+ LEVEL_MAP.put("warn", Level.WARNING);
+ LEVEL_MAP.put("error", Level.SEVERE);
+ String configFileName = "log.config";
+
+ try {
+ level = LEVEL_MAP.get(getJarConfig(configFileName));
+ } catch (LogConfigException e) {
+ level = LEVEL_MAP.get(getResourceConfig(configFileName));
+ }
+ }
+
+ private static String getJarConfig(String configFileName) throws LogConfigException {
+ String parent = getString();
+ if (parent == null) {
+ throw new LogConfigException("read jar path failed");
+ }
+ File config = new File(parent, configFileName);
+ if (!config.exists()) {
+ throw new LogConfigException("read jar path failed");
+ }
+ try (FileInputStream fis = new FileInputStream(config)) {
+ return getLevelByInStream(fis);
+ } catch (IOException e) {
+ throw new LogConfigException("read jar path failed");
+ }
+ }
+
+ private static String getString() throws LogConfigException {
+ ProtectionDomain protectionDomain = LogUtils.class.getProtectionDomain();
+ if (protectionDomain == null) {
+ throw new LogConfigException("read jar path failed");
+ }
+ CodeSource codeSource = protectionDomain.getCodeSource();
+ if (codeSource == null) {
+ throw new LogConfigException("read jar path failed");
+ }
+ URL location = codeSource.getLocation();
+ if (location == null) {
+ throw new LogConfigException("read jar path failed");
+ }
+ String jarPath = location.getFile();
+ if (jarPath == null) {
+ throw new LogConfigException("read jar path failed");
+ }
+ return new File(jarPath).getParent();
+ }
+
+ private static String getResourceConfig(String configFileName) {
+ try (InputStream inputStream = LogUtils.class.getClassLoader().getResourceAsStream(configFileName)) {
+ if (inputStream == null) {
+ return DEFAULT_LEVEL;
+ } else {
+ return getLevelByInStream(inputStream);
+ }
+ } catch (IOException e) {
+ return DEFAULT_LEVEL;
+ }
+ }
+
+ private static String getLevelByInStream(InputStream is) throws IOException {
+ Properties prop = new Properties();
+ prop.load(is);
+ Object levelConfig = prop.get("level");
+ if (levelConfig instanceof String) {
+ return (String) levelConfig;
+ }
+ return DEFAULT_LEVEL;
+ }
+
+
+ /**
+ * format log utils constructor.
+ *
+ * @param clazz class
+ */
+ public LogUtils(Class> clazz) {
+ logger = Logger.getLogger(clazz.getName());
+ logger.setUseParentHandlers(false);
+ ConsoleHandler consoleHandler = new ConsoleHandler();
+ SignToolFormatter signToolFormatter = new SignToolFormatter();
+ consoleHandler.setFormatter(signToolFormatter);
+ logger.addHandler(consoleHandler);
+ logger.setLevel(level);
+ }
+
+ /**
+ * print info log
+ *
+ * @param log log string
+ */
+ public void info(String log) {
+ logger.info(" INFO - " + log);
+ }
+
+ /**
+ * print warn log
+ *
+ * @param log log string
+ */
+ public void warn(String log) {
+ logger.warning(" WARN - " + log);
+ }
+
+ /**
+ * print warn log
+ *
+ * @param log log string
+ * @param e throwable
+ */
+ public void warn(String log, Throwable e) {
+ logger.log(Level.WARNING, e, () -> " DEBUG - " + log);
+ }
+
+ /**
+ * print debug log
+ *
+ * @param log log string
+ */
+ public void debug(String log) {
+ logger.config(" DEBUG - " + log);
+ }
+
+ /**
+ * print debug log
+ *
+ * @param log log string
+ * @param e throwable
+ */
+ public void debug(String log, Throwable e) {
+ logger.log(Level.CONFIG, e, () -> " DEBUG - " + log);
+ }
+
+ /**
+ * print error log
+ *
+ * @param log log string
+ */
+ public void error(String log) {
+ logger.severe(" ERROR - " + log);
+ }
+
+ /**
+ * print error log
+ *
+ * @param log log string
+ * @param e throwable
+ */
+ public void error(String log, Throwable e) {
+ logger.log(Level.SEVERE, e, () -> " ERROR - " + log);
+ }
+}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/ParamProcessUtil.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/ParamProcessUtil.java
index 875560b1e4278a3e795fb4719e9b04d386383544..b62b7ae8d0df2ba03f5295568af0bc29715f1438 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/ParamProcessUtil.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/ParamProcessUtil.java
@@ -17,8 +17,6 @@ package com.ohos.hapsigntool.utils;
import com.ohos.hapsigntool.entity.ParamConstants;
import com.ohos.hapsigntool.entity.SignatureAlgorithm;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import java.io.File;
import java.io.IOException;
@@ -33,7 +31,7 @@ import java.util.Set;
* @since 2021/12/21
*/
public class ParamProcessUtil {
- private static final Logger LOGGER = LogManager.getLogger(ParamProcessUtil.class);
+ private static final LogUtils LOGGER = new LogUtils(ParamProcessUtil.class);
private ParamProcessUtil() {
}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/SignToolFormatter.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/SignToolFormatter.java
new file mode 100644
index 0000000000000000000000000000000000000000..6591c7fd2d47e6a89bec193d2ab930ee5d861040
--- /dev/null
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/SignToolFormatter.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2024-2024 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.ohos.hapsigntool.utils;
+
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.logging.Formatter;
+import java.util.logging.LogRecord;
+
+/**
+ * Hap Sign Tool Log Formatter
+ *
+ * @since 2024/12/08
+ */
+public class SignToolFormatter extends Formatter {
+ private final static DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
+
+
+ /**
+ * format log.
+ *
+ * @param record record
+ * @return Log Format String
+ */
+ @Override
+ public String format(LogRecord record) {
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder
+ .append(DATE_FORMAT.format(new Date(record.getMillis())))
+ .append(" ")
+ .append(formatMessage(record))
+ .append(System.lineSeparator());
+ return stringBuilder.toString();
+ }
+}
diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/zip/Zip.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/zip/Zip.java
index ee69e770c1ac6a8c132ec7e5fb99d52822018a9a..5b010636ac2b9d515369419a39319b266adcfb69 100644
--- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/zip/Zip.java
+++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/zip/Zip.java
@@ -20,8 +20,7 @@ import com.ohos.hapsigntool.error.ERROR;
import com.ohos.hapsigntool.error.ZipException;
import com.ohos.hapsigntool.utils.FileUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import com.ohos.hapsigntool.utils.LogUtils;
import java.io.File;
import java.io.FileOutputStream;
@@ -38,7 +37,7 @@ import java.util.Optional;
* @since 2023/12/02
*/
public class Zip {
- private static final Logger LOGGER = LogManager.getLogger(Zip.class);
+ private static final LogUtils LOGGER = new LogUtils(Zip.class);
/**
* file is uncompress file flag
@@ -80,11 +79,11 @@ public class Zip {
endOfCentralDirectory = getZipEndOfCentralDirectory(inputFile);
cDOffset = endOfCentralDirectory.getOffset();
long eocdEnd = System.currentTimeMillis();
- LOGGER.debug("getZipEndOfCentralDirectory use {} ms", eocdEnd - start);
+ LOGGER.debug("getZipEndOfCentralDirectory use " + (eocdEnd - start) + "ms");
// 2. use eocd's cd offset, get cd data
getZipCentralDirectory(inputFile);
long cdEnd = System.currentTimeMillis();
- LOGGER.debug("getZipCentralDirectory use {} ms", cdEnd - start);
+ LOGGER.debug("getZipCentralDirectory use " + (cdEnd - start) +" ms");
// 3. use cd's entry offset and file size, get entry data
getZipEntries(inputFile);
ZipEntry endEntry = zipEntries.get(zipEntries.size() - 1);
@@ -92,7 +91,7 @@ public class Zip {
ZipEntryData endEntryData = endEntry.getZipEntryData();
signingOffset = endCD.getOffset() + endEntryData.getLength();
long entryEnd = System.currentTimeMillis();
- LOGGER.debug("getZipEntries use {} ms", entryEnd - start);
+ LOGGER.debug("getZipEntries use " + (entryEnd - start) +" ms");
// 4. file all data - eocd - cd - entry = sign block
signingBlock = getSigningBlock(inputFile);
} catch (IOException e) {
diff --git a/hapsigntool/pom.xml b/hapsigntool/pom.xml
index bd3ee165a63d443543147eaad1ef3009e93d9727..4c6137b7d639d9e5031e615406fc6c5b184beb39 100644
--- a/hapsigntool/pom.xml
+++ b/hapsigntool/pom.xml
@@ -14,7 +14,6 @@
8
UTF-8
4.0
- 2.23.1
5.9.2
@@ -35,16 +34,6 @@
bcpkix-jdk18on
1.78.1
-
- org.apache.logging.log4j
- log4j-core
- ${log4j-version}
-
-
- org.apache.logging.log4j
- log4j-api
- ${log4j-version}
-
org.junit.jupiter
junit-jupiter-engine