前言全局说明
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/<公司名>/<项目名>/ 目录下的 atlas.mk、device.mk 和 device_qssi.mk 里尝试添加调用config.mk 。
推荐先在device.mk里尝试,
注意:加入位置不要写到别的模块 ifeq 判断里
4.2 原因三:
问题:
PRODUCT_PACKAGES 可能是系统级变量,第三方模块目录没有权限操作
解决方法:
参看,原因二
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源: