GOOGLE最新的GTS要求targetSdkVersion 大于30的APK必须使用V2及以上签名。
但实际在预装过程中,GTS测试会失败。
后面发现这是由于预装方式的原因造成的。原来的预装方式是使用APK,指定APK使用预签名的方式。Android.mk如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := DKTest
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
#LOCAL_BUILT_MODULE_STEM := DKTest.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#LOCAL_PRIVILEGED_MODULE := true
LOCAL_CERTIFICATE := PRESIGNED
#PRESIGNED platform
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
#LOCAL_REQUIRED_MODULES :=
#LOCAL_PREBUILT_JNI_LIBS :=
#LOCAL_DEX_PREOPT := false
$(shell cp $(LOCAL_PATH)/../DKAsphaltNitro/*.apk $(TARGET_OUT)/system/app/)
include $(BUILD_PREBUILT)
但是编译出来,从手机中PULL出来的APK,验证签名结果如下:
~/Android/Sdk/build-tools/28.0.3$ ./apksigner verify -v a.apk
DOES NOT VERIFY
ERROR: JAR signer CERT.RSA: JAR signatur