报错
12-28 18:53:50.019 1183 1183 W System.err: com.android.server.pm.PackageManagerException: No APK Signature Scheme v2 signature in package /system/app/SougouIME/SougouIME.apk
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.ScanPackageUtils.collectCertificatesLI(ScanPackageUtils.java:968)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.InstallPackageHelper.scanSystemPackageLI(InstallPackageHelper.java:4004)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.InstallPackageHelper.addForInitLI(InstallPackageHelper.java:3650)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.InstallPackageHelper.installPackagesFromDir(InstallPackageHelper.java:3504)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.InitAppsHelper.scanDirTracedLI(InitAppsHelper.java:386)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.InitAppsHelper.scanSystemDirs(InitAppsHelper.java:358)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.InitAppsHelper.initSystemApps(InitAppsHelper.java:194)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.PackageManagerService.<init>(PackageManagerService.java:2050)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.pm.PackageManagerService.main(PackageManagerService.java:1531)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.SystemServer.startBootstrapServices(SystemServer.java:1266)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.SystemServer.run(SystemServer.java:961)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.server.SystemServer.main(SystemServer.java:665)
12-28 18:53:50.019 1183 1183 W System.err: at java.lang.reflect.Method.invoke(Native Method)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:703)
12-28 18:53:50.019 1183 1183 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:889)
12-28 18:53:49.985 698 698 E : SPRDDEBUG gpu core power on polling SUCCESS !
12-28 18:53:50.019 209 209 E : GPU_DVFS kbase_platform_modify_target_freq gpu_boost_level:10 min_freq=850MHz max_freq=850MHz target_freq=850MHz
12-28 18:53:50.023 1183 1183 W System.err: Caused by: android.util.apk.SignatureNotFoundException: No APK Signing Block before ZIP Central Directory
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSigningBlockUtils.findApkSigningBlock(ApkSigningBlockUtils.java:722)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSigningBlockUtils.findSignature(ApkSigningBlockUtils.java:82)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureSchemeV2Verifier.findSignature(ApkSignatureSchemeV2Verifier.java:155)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureSchemeV2Verifier.verify(ApkSignatureSchemeV2Verifier.java:142)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureSchemeV2Verifier.verify(ApkSignatureSchemeV2Verifier.java:127)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureVerifier.verifyV2Signature(ApkSignatureVerifier.java:346)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureVerifier.verifyV3AndBelowSignatures(ApkSignatureVerifier.java:168)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureVerifier.verifySignaturesInternal(ApkSignatureVerifier.java:141)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureVerifier.verifySignatures(ApkSignatureVerifier.java:99)
12-28 18:53:50.023 1183 1183 W System.err: at android.util.apk.ApkSignatureVerifier.unsafeGetCertsWithoutVerification(ApkSignatureVerifier.java:88)
12-28 18:53:50.023 1183 1183 W System.err: at com.android.server.pm.pkg.parsing.ParsingPackageUtils.getSigningDetails(ParsingPackageUtils.java:3115)
12-28 18:53:50.024 1183 1183 W System.err: at com.android.server.pm.pkg.parsing.ParsingPackageUtils.getSigningDetails(ParsingPackageUtils.java:3063)
12-28 18:53:50.024 1183 1183 W System.err: at com.android.server.pm.ScanPackageUtils.collectCertificatesLI(ScanPackageUtils.java:964)
12-28 18:53:50.024 1183 1183 W System.err: ... 14 more
12-28 18:53:50.024 1183 1183 W PackageManager: Failed to scan /system/app/SougouIME: No APK Signature Scheme v2 signature in package /system/app/SougouIME/SougouIME.apk
原因
android sdk 30后不支持v1版本签名
解决方法
修改/framework/base/core/java/android/util/apk/ApkSignatureVerifier.java,中的getMinimumSignatureSchemeVersionForTargetSdk方法。
public static int getMinimumSignatureSchemeVersionForTargetSdk(int targetSdk) {
//modify add start
//default allow v1 signature app
/*
if (targetSdk >= Build.VERSION_CODES.R) {
return SignatureSchemeVersion.SIGNING_BLOCK_V2;
}*/
//modify add end
return SignatureSchemeVersion.JAR;
}
注意:预装输入法时,一定要保留LatinIME输入法。因为在开机未解锁时出于加密状态,第三方输入法未设置directBootAware="true"无法启动,导致开机锁屏输入密码时无法弹出。
详见: