6.6.2 - Alpha - 增强 APK 文件 V1 签名方案的检测准确性

This commit is contained in:
SuperMonster003
2025-01-03 18:12:02 +08:00
parent 0ccee0b288
commit fd13e20a98
3 changed files with 28 additions and 5 deletions

View File

@@ -1,7 +1,7 @@
{
"$data": {
"v6.6.2": {
"released_date": "2025/01/02",
"released_date": "2025/01/03",
"improvement": [
"精简打包应用模板 APK 文件大小",
"打包页面支持 Pinyin 库选项",

View File

@@ -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?,

View File

@@ -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