您的位置:首页 > 其它

MT6573台开发分支下配置多个项目的规范说明_mi

2012-09-18 08:43 288 查看
MT6573台开发分支下配置多个项目的规范说明_mi
http://xzlx.s227.cnaaa1.com/forum.php?mod=viewthread&tid=182&fromuid=43
关于MTK6573平台开发分支下配置多个项目的规范说明

1.涉及的目录结构:共计7处,尤其第四处非常容易遗漏,请特别小心。

1.1)build/target/product/$(project_name).mk

1.2)mediatek/config/$(project_name)

1.3)mediatek/custom/$(project_name)

1.4)mediatek/custom/$(project_name)/uboot/inc/configs/$(project_name).h //这里特别注意,容易遗漏的点

1.5)vendor/mediatek/$(project_name)

1.6)vendor/mediatek/$(project_name)/artifacts/out/target/product/$(project_name)

1.7)MI/$(project_name)

其中$(project_name)均为新增的项目。如mi等。

2.LINK或者COPY原则(涉及以上第一点的目录结构增加对于内容的,请遵循2个凡是)

凡是2个项目一致的内容使用link. 凡是2个项目不一致的内容使用copy。

建议操作:

使用MI/tools/工具箱下提供的lns脚步,对新增的每个文件均采用单独link的模式,

如果遇到因为项目不同而需要单独区分的情况,请取消link为copy文件接口。

copy的情况下请特别注意,升级补丁需要照顾到多个项目。

3.其他一些需要配置多项目的内容涉及到的修改点

3.1 项目的宏定义文件,包含makefile,cpp,h,java(没有宏,使用静态class的形式)

makefile,cpp,h中的宏定义处

mediatek/config/$(project_name)/ProjectConfig.mk中

AUTO_ADD_GLOBAL_DEFINE_BY_NAME

AUTO_ADD_GLOBAL_DEFINE_BY_VALUE

AUTO_ADD_GLOBAL_DEFINE_BY_NAME_VALUE

在以上三个变量中增加对于的宏定义,分别代表宏是否定义,以及宏定义是否带有字符串值;定义

在##MI Support##

之后增加的譬如MTK_PRO_PROJECT_MI= yes主要使用makefile文件中,这里会有一个脚本来处理,

简单的说,就是临时export到环境变量中去,让所有的makefile文件不需要include就可以使用。

java代码区分静态的增加;

MI/$(project_name)/frameworks/featureoption/java/com/MI/MIfeatureoption/MIFeatureOption.java

这个会编译到frameworks中,当作全局变量供平台使用,用来在java代码中区分。

简单的说:

C代码中:MTK_PRO_PROJECT_MI_3 / MTK_PRO_PROJECT_MI_4.

JAVA代码中:由于JAVA中无法使用宏,大家可使用 MIFeatureOption.java 中定义的:MTK_PRO_PRODUCT_NAME_STR 字符串来区分。

3.2----如果需要区分多项目的APN文件以及AGPS文件还需要修改以下2处

首先需要在vendor/mediatek/etc增加多个项目的目录配置

其次需要build/target/product/$(project_name).mk中修改

原先的

PRODUCT_COPY_FILES += vendor/mediatek/etc/apns-conf.xml:system/etc/apns-conf.xml

PRODUCT_COPY_FILES += vendor/mediatek/etc/spn-conf.xml:system/etc/spn-conf.xml \

ifeq ($(MTK_AGPS_APP),yes)

PRODUCT_COPY_FILES += vendor/mediatek/etc/agps_profiles_conf.xml:system/etc/agps_profiles_conf.xml

endif

修改为

PRODUCT_COPY_FILES += vendor/mediatek/etc/$(MTK_PROJECT)/apns-conf.xml:system/etc/apns-conf.xml

PRODUCT_COPY_FILES += vendor/mediatek/etc/$(MTK_PROJECT)/spn-conf.xml:system/etc/spn-conf.xml \

ifeq ($(MTK_AGPS_APP),yes)

PRODUCT_COPY_FILES += vendor/mediatek/etc/$(MTK_PROJECT)/agps_profiles_conf.xml:system/etc/agps_profiles_conf.xml

endif

3.3 多项目蓝牙名称修改点,通过宏控制的形式来区分不同项目的蓝牙名称

frameworks/base/core/jni/android_bluetooth_common.h

具体修改为#define BTMTK_ANDROID_DEFAULT_LOCAL_NAME "ANDROID BT"配置为多个项目的。

3.4 多项目的USB名称修改点,通过宏控制的形式来区分不同项目的USB名称

mediatek/custom/mt6573/kernel/usb/src/mtk_usb_custom.h

具体修改为

#define VENDOR_ID 0x2006 /*MI USB vendor id */

#define MANUFACTURER_STRING "MI"

#define PRODUCT_STRING "MI"

#define USB_ETH_VENDORID 0

#define USB_ETH_VENDORDESCR "MI"

#define USB_MS_VENDOR "MI"

#define USB_MS_PRODUCT "MI MS"

3.5多项目的factory mode名称修改点,通过宏控制的形式来区分不同项目的USB名称

mediatek\source\factory\src\factory.c

具体修改为

print_verinfo(info, &len, "SW Ver. ", val);

3.6 多项目配置的uboot启动页面修改

---------------------------------------

首先需要增加目录

mediatek/custom/common/uboot/logo/$(project_name)

---------------------------------------

mediatek/source/external/boot_logo_updater/Android.mk中的修改点

原先的

LOCAL_SRC_FILES := custom/$(LOCAL_MODULE)

修改之后的

LOCAL_SRC_FILES := custom/$(MTK_PROJECT)/$(LOCAL_MODULE)

--------------------------------------

mediatek/build/android/permfix.sh中修改点

原先的

mediatek/custom/common/uboot/logo/update

mediatek/custom/common/uboot/logo/tool/*

mediatek/custom/common/uboot/logo/boot_logo

修改之后的

mediatek/custom/common/uboot/logo/${MTK_PROJECT}/update

mediatek/custom/common/uboot/logo/${MTK_PROJECT}/tool/*

mediatek/custom/common/uboot/logo/${MTK_PROJECT}/boot_logo

--------------------------------------

bootable/bootloader/uboot/build.sh中修改点

原先的:

UBOOT_LOGO_PATH="${CUR_DIR}/${MTK_PATH_CUSTOM}/logo"

修改为:

UBOOT_LOGO_PATH="${CUR_DIR}/${MTK_PATH_CUSTOM}/logo/${MTK_PROJECT}"

--------------------------------------

3.7 多项目的型号,版本,以及第三方APK等信息的配置,均集中在MI目录下对应的工程目录

MI/$(project_name)/config/ProjectConfig.mk中的

PRODUCT_PACKAGE_OVERLAYS多项目不同资源的配置

MTK_PRO_DISPLAY_ID 版本号

MTK_PRO_PRODUCT_MODEL 型号

PRODUCT_LOCALES 语言分辨率

$(call inherit-product, vendor/google/products/gms.mk google服务以及市场等

PRODUCT_PACKAGES 自开发源码的apk应用

注意:project_name为项目编译输入名称,如mi等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: