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