如何查看编译launcher的版本

文章介绍了如何在Android系统中确定apk的安装位置,通过adbshell命令和包名来查找对应资源。当修改apk资源或xml配置无效时,可以通过mk文件了解编译过程,定位到源码位置。文章还提到设备.mk文件中关于GMS和Launcher的相关配置,以及如何处理自定义修改后的包名加载问题。
摘要由CSDN通过智能技术生成

时间:2020/08/31
之前公司不允许csdn,笔记写在其它地方。最近整理过来

问题背景:

有时候,我们发现修改apk中的资源或者xml配置,无法生效,全局搜索同明的文件,rom里发现各种路径下存在相同文件。
如何判断我们使用的是哪个文件?

1、如何确定的知道是哪个版本

E:\Desktop>adb shell pm path com.android.launcher3
package:/product/priv-app/Launcher3Go/Launcher3Go.apk

E:\Desktop>adb shell pm path com.google.android.gmsintegration
package:/product/app/GmsSampleIntegrationGo/GmsSampleIntegrationGo.apk

如上,刷了rom之后,按照包名打印出apk的安装位置。
从apk的命名可以知道mk文件编译的那个变量,以GmsSampleIntegrationGo为例子

打开包名为com.google.android.gmsintegration的工程的mk文件(如何得到这个包名见launcher加载流程

...
# GmsSampleIntegration
include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := GmsSampleIntegration
LOCAL_MODULE_OWNER := google
LOCAL_MODULE_TAGS := optional
LOCAL_PRODUCT_MODULE := true
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res_dhs_full $(LOCAL_PATH)/res
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)

# GmsSampleIntegrationGo
include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := GmsSampleIntegrationGo
LOCAL_MODULE_OWNER := google
LOCAL_MODULE_TAGS := optional
LOCAL_PRODUCT_MODULE := true
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res_dhs_go $(LOCAL_PATH)/res
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)
...

找到对应的编译部分,可以查到res和src使用的哪个目录,方便定位修改文件。
LOCAL_PACKAGE_NAME属性为make GmsSampleIntegrationGo时的名字和编译生成的目录以及apk名字

====================================
以上分析都是从结果出发,逆向推理。

2、它们配置在什么位置

device/mediatek/mt6765/device.mk中

#init gms build
include build/buildplus/target/spr_target.min
ifneq ($(wildcard vendor/partner_gms),)
   #ifeq ($(strip $(TARGET_BUILD_VERSION)),gms)
     ifeq (go_edition,$(strip $(CONFIG_BUILD_GMS_PACKAGE_EDITION)))
       $(call inherit-product, vendor/partner_gms/products/gms_go_2gb.mk)
     else
       $(call inherit-product, vendor/partner_gms/products/gms.mk)
     endif
   #endif
endif

上面会走到gms****.mk vendor/partner_gms/products/gms****.mk
里面配置了各种gms的包,例如launcher相关的如下:

# GMS sample application packages
PRODUCT_PACKAGES += \
    GmsSampleIntegrationGo \
    Launcher3Go

以上是源码的位置

==================

mtk会默认往手机里写Launcher apk,和上面的路径不同

/device/mediatek/common/ago/device.mk
/device/mediatek/vendor/common/ago/device.mk
/device/mediatek/system/common/ago/device.mk

# Add MtkLauncher3 to replace Launcher3 when vendor code is available
ifneq ($(wildcard vendor/mediatek/proprietary/packages/apps/Launcher3/Android.mk),)
    PRODUCT_PACKAGES += MtkLauncher3QuickStep
endif

/device/mediateksample/k65v1_32_bsp/ProjectConfig.mk

MTK_GMO_RAM_OPTIMIZE = no

尾注

如果定制修改过过launcher包名和launcher加载流程,上面命令里的包名需要根据具体定制修改一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值