aosp中预装应用,按照配置方案进行配置,不懂配置的可以看我以往的帖子.现在遇到的问题是配置好后,刷机系统没有该应用。安装编译后的apk失败。最后发现是未签名的,在此记录,方便日后查阅。
预装应用 看讯飞语音引擎预装以及授权异常的处理
只是应用名称不同,预装方案是相同的。帖子是基于A13写的。接下来我们处理下当前预装失败的问题。
现象:刷机后找不到该应用,桌面没有显示该应用,设置-应用列表中也米有。
adb 安装编译后的apk 错误提示如下:
顺便贴下应用预装配置的Android.mk文件如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := lexin
LOCAL_MODULE_STEM := lexin.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform //PRESIGNED(自身签名)
LOCAL_MODULE_PATH := $(TARGET_OUT)/vital-app
LOCAL_SRC_FILES := app-release.apk
#LOCAL_PRIVILEGED_MODULE := true
LOCAL_ENFORCE_USES_LIBRARIES := false
#LOCAL_PREBUILT_JNI_LIBS := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/lib/arm64-v8a/*.so))
include $(BUILD_PREBUILT)
#==================================================
# Install default-app default-permisison file
#==================================================
include $(CLEAR_VARS)
LOCAL_MODULE := default_permissions_lexin.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/default-permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
#==================================================
# Install priv-app permisison file
#==================================================
include $(CLEAR_VARS)
LOCAL_MODULE:=privapp-permissions-lexin.xml
LOCAL_MODULE_TAGS:=optional
LOCAL_MODULE_CLASS:=ETC
LOCAL_MODULE_PATH:=${TARGET_OUT_ETC}/permissions
LOCAL_SRC_FILES:=${LOCAL_MODULE}
include ${BUILD_PREBUILT}
这是编译正常的。刚开始使用的签名是PRESIGNED模式(默认apk自己签名)
adb: failed to install .\lexin.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl352740104.tmp/base.apk: Attempt to get length of null array]
错误提示,没有签名。最后和同事确认,给的包没有签名,修改使其使用系统签名编译就可以了
方案:修改如下
LOCAL_CERTIFICATE := platform //PRESIGNED(自身签名)
OVER!~~