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中增加需要的属性即可(此步骤不是必须)