From fd13e20a981291e4e8f819c187333f9cddd37c5f Mon Sep 17 00:00:00 2001 From: SuperMonster003 Date: Fri, 3 Jan 2025 18:12:02 +0800 Subject: [PATCH] =?UTF-8?q?6.6.2=20-=20Alpha=20-=20=E5=A2=9E=E5=BC=BA=20AP?= =?UTF-8?q?K=20=E6=96=87=E4=BB=B6=20V1=20=E7=AD=BE=E5=90=8D=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E7=9A=84=E6=A3=80=E6=B5=8B=E5=87=86=E7=A1=AE=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changelog/lang_zh-Hans.json | 2 +- .../ui/main/scripts/ApkInfoDialogManager.kt | 25 ++++++++++++++++++- version.properties | 6 ++--- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json index 561df72e..3aa2a0ad 100644 --- a/.changelog/lang_zh-Hans.json +++ b/.changelog/lang_zh-Hans.json @@ -1,7 +1,7 @@ { "$data": { "v6.6.2": { - "released_date": "2025/01/02", + "released_date": "2025/01/03", "improvement": [ "精简打包应用模板 APK 文件大小", "打包页面支持 Pinyin 库选项", diff --git a/app/src/main/java/org/autojs/autojs/ui/main/scripts/ApkInfoDialogManager.kt b/app/src/main/java/org/autojs/autojs/ui/main/scripts/ApkInfoDialogManager.kt index f3efa626..83577ada 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/scripts/ApkInfoDialogManager.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/scripts/ApkInfoDialogManager.kt @@ -24,6 +24,8 @@ import org.autojs.autojs.util.IntentUtils import org.autojs.autojs6.R import org.autojs.autojs6.databinding.ApkFileInfoDialogListItemBinding import java.io.File +import java.util.jar.JarEntry +import java.util.jar.JarFile object ApkInfoDialogManager { @@ -207,7 +209,7 @@ object ApkInfoDialogManager { private fun getApkSignatureInfo(apkFile: File): String? = runCatching { ApkVerifier.Builder(apkFile).build().verify().run { listOfNotNull( - "V1".takeIf { isVerifiedUsingV1Scheme }, + "V1".takeIf { isVerifiedUsingV1Scheme || hasV1Signature(apkFile) }, "V2".takeIf { isVerifiedUsingV2Scheme }, "V3".takeIf { isVerifiedUsingV3Scheme }, "V4".takeIf { isVerifiedUsingV4Scheme }, @@ -215,6 +217,27 @@ object ApkInfoDialogManager { } }.getOrNull() + private fun hasV1Signature(apkFile: File): Boolean { + if (!apkFile.isFile) return false + JarFile(apkFile).use { jar -> + var hasManifest = false + var hasSF = false + var hasRSA = false + for (entry: JarEntry in jar.entries()) { + val name = entry.name.uppercase() + when { + name == "META-INF/MANIFEST.MF" -> hasManifest = true + name.endsWith(".SF") && name.startsWith("META-INF/") -> hasSF = true + name.endsWith(".RSA") && name.startsWith("META-INF/") -> hasRSA = true + } + if (hasManifest && hasSF && hasRSA) { + return true + } + } + return false + } + } + private data class ApkInfo( val label: String?, val packageName: String?, diff --git a/version.properties b/version.properties index f3801b08..2e9d2e80 100644 --- a/version.properties +++ b/version.properties @@ -1,5 +1,5 @@ -#Fri Jan 03 16:34:34 CST 2025 -BUILD_TIME=1735893274360 +#Fri Jan 03 18:02:21 CST 2025 +BUILD_TIME=1735898541894 COMPILE_SDK_VERSION=34 JAVA_VERSION=23 JAVA_VERSION_MIN_RADICAL=0 @@ -17,6 +17,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13 RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3 TARGET_SDK_VERSION=34 TARGET_SDK_VERSION_INRT=29 -VERSION_BUILD=2955 +VERSION_BUILD=2956 VERSION_NAME=6.6.2 Alpha VSCODE_EXT_REQUIRED_VERSION=1.0.8