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