Android13编译报错 PRODUCT_PACKAGES error cannot assign to readonly variable

前言全局说明

Android13编译报错 PRODUCT_PACKAGES readonly variable


一、说明

1.1 环境:

Android 13

二、问题

高通定制版 Android 13里增加第三方模块,将家哟加入的模块 写入到 config.mk 中,使用 PRODUCT_PACKAGES 变量,将要打包的模块告诉系统。

并将 config.mk 加入到上层的 Android.mk 中。

但编译过程成中提示 "PRODUCT_PACKAGES error cannot assign to readonly variable"


三、 config.mk 文件内容

CONFIG_APP := true

ifeq ($(CONFIG_APP), true)
	PRODUCT_PACKAGES += qtxa-comm
endif

四、问题分析

4.1 原因一:

问题:

第三方文件放置的位置不对,不是官方推荐的路径。

解决方法:

第三方模块,通常会放到
vendor/<公司名>/prebuilts/third_party/<项目名>/<第三方模块文件夹>

4.2 原因二:

问题:

config.mk 文件想要Android编译调用时,可能出现在不合适的位置,
可能是系统模块或其他第三方模块还没编译完,检测到 config.mk 又加入继续编译。

解决方法:

在源码 device/google/raviole/device-oriole.mk

在源码 device/<公司名>/<项目名>/ 目录下的 atlas.mk、device.mk 和 device_qssi.mk 里尝试添加调用config.mk 。
推荐先在device.mk里尝试,

注意:加入位置不要写到别的模块 ifeq 判断里

4.2 原因三:

问题:

PRODUCT_PACKAGES 可能是系统级变量,第三方模块目录没有权限操作

解决方法:
参看,原因二



免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:



posted @ 2025-01-05 16:31  悟透  阅读(560)  评论(0)    收藏  举报