Android 系统865虚拟化集成无源码apk示例
一、环境
高通865虚拟化Android 10 版本
二、具体修改的文件
以集成OppoAnonymousId.apk为例
1、新建OppoAnonymousId目录,将apk放到该目录
vendorqcomproprietaryprebuilt_HY11targetproductqssisystemappOppoAnonymousIdOppoAnonymousId.apk
2、vendorqcomproprietaryprebuilt_HY11targetproductqssiAndroid.mk中添加
include $(CLEAR_VARS)
LOCAL_MODULE := OppoAnonymousId
LOCAL_MODULE_OWNER := qcom
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform #这里注意下,因为这里集成的apk,manifest节点添加的是
#android:sharedUserId="android.uid.system",故这里使用
platform
LOCAL_MODULE_SUFFIX := .apk
LOCAL_SRC_FILES := ../../.././target/product/qssi/system/app/OppoAnonymousId/OppoAnonymousId.apk
LOCAL_MULTILIB := 64
LOCAL_MODULE_PATH := $(PRODUCT_OUT)/system/app
include $(BUILD_PREBUILT)
#系统中五类签名文件说明
#PRESIGNED:仍然使用原本第三方应用签名
#platform:平台的核心应用签名,签名的apk是完成系统的核心功能。这些apk所在的进程UID是system。#manifest节点中有添加android:sharedUserId="android.uid.system"。
#media: 这个签名的apk是media/download的一部分。manifest节点中有添加#android:sharedUserId="android.media"。
#shared:这个签名的apk可以和home/contacts进程共享数据。manifest节点中有添加#android:sharedUserId="android.uid.shared"。
#testkey/releasekey:平台默认key。在编译中未指定LOCAL_CERTIFICATE的,默认是用testkey。因为#testkey是公开的,任何人都可以获取,不安全,所以一般使用 自己创建releasekey作为默认key。
3、vendorqcomproprietaryprebuilt_HY11targetproductqssiprebuilt.mk中添加
PRODUCT_PACKAGES += OppoAnonymousId
4、device/qcom/kona/apps_white_list.txt和device/qcom/qssi/apps_white_list.txt中添加
OppoAnonymousId
5、如果需要增加系统属性,则在device/qcom/qssi/system.prop中增加需要的属性即可(此步骤不是必须)