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等。

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

  1. Nodejs搭建前后端分离开发模式下的微信网页项目

    原文链接:<Nodejs搭建前后端分离开发模式下的微信网页项目>- 陈帅华 本文涉及对前后端分离及微信网页项目中的前端如何在本地环境中开发与调试的思考. 主要问题 1.如何配置微信公众平台 ...

  2. mac p配置android开发,Mac 下配置Android 环境变量

    这里配置的是 android platform-tools 以及 tools 0. 首先,确定配置路径, 这里我的路径: /Users/用户名/downloads/adt-bundle-mac-x86 ...

  3. idea 连接云mysql_IDEA开发环境下配置JDBC连接MySQL

    一.MySQL数据库下载并安装 主要参考的是这篇文章 Blessy_Zhu的博客_CSDN博客-Python基础,机器学习,Python爬虫领域博主​blog.csdn.net 二.JDBC下载 链接 ...

  4. Ubuntu下配置运行yolov3项目的环境(数据集、上github、anaconda、vscode、nvidia驱动、cuda、cuda编译、cudnn)

    前面已经完成了windows下训练基于pytorch的yolov3,接下来学习在ubuntu下训练. 看了一点csdn,现在要解决的问题有两个: 1.ubuntu下的指令,怎么编译?怎么运行? 2.d ...

  5. Nginx同一个域名配置多个项目

    使用Nginx要在同一个域名下配置多个项目有两种方式: nginx按不同的目录分发给不同的项目 启用二级域名,不同的项目分配不同的二级域名 1.nginx按不同的目录分发给不同的项目: server ...

  6. vue在生产环境、测试环境和开发环境,三种环境下配置不同的api地址

    vue在生产环境.测试环境和开发环境,三种环境下配置不同的api地址 我们大多数在开发的时候,都会有三种环境,一个是开发环境,一个是测试环境,一个是生产环境,我们打包的时候需要根据不同的环境去加载不同 ...

  7. Linux下配置Golang开发环境

    前几天无意间看到了微信推送的golang开发的消息,看到golang那么牛逼,突然心血来潮想学习一下go.工欲善其事必先利其器,想做go开发,必须先配置好go的开发环境(就像开发Java先安装配置jd ...

  8. windows 下配置 react native 开发环境

    windows 下配置 react native 开发环境 安装nvm 由于react native 需要使用 NodeJs 4.0以上版本,为了方便切换NodeJs,首先我们需要安装nvm. 你可以 ...

  9. Mac环境下配置Java开发环境(jdk+maven+tomcat+idea)

    记录下在Mac环境下配置java开发环境,包括jdk,maven,tomcat和idea 下载及安装jdk 首先到官网下载jdk,这里就用目前官网最新的9.0.4 无脑双击安装就可以: 配置jdk 进 ...

  10. proc除了能用于oracle开发_能不能用于mysql开发_Oracle数据库开发(二).Linux下配置使用ProC...

    一.提要 上文简单介绍了Windows下ProC配置开发,这次我们使用Linux平台再次配置Oracle ProC开 发环境(RedHat Linux 9 + Oracle 92). <ORAC ...

最新文章

  1. document对象详解
  2. 八、深入JavaScript的条件语句和循环语句(四)
  3. c语言 office 二级成绩查询,【2019年9月辽宁计算机二级考试成绩查询入口】- 环球网校...
  4. 图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能
  5. ELK详解(二)——Elasticsearch安装与部署
  6. application跟消息相关的东东
  7. websocket-shap 函数Broadcast的使用方法
  8. Spring Boot 菜鸟教程 1 HelloWorld
  9. 记一个用PyPDF2裁剪pdf文件并用latex插入后出现大量空白的问题
  10. 官方教你如何为centos 7.x 安装Broadcom无线网卡驱动
  11. C#进阶系列——使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)
  12. 网页开发工具VSCode的使用
  13. [JZOJ4274] [NOIP2015模拟10.28B组] 终章-剑之魂 解题报告(二进制)
  14. 关于网络游戏《诛仙》中9级铁玉赠送任务的思考
  15. 新闻推荐系统:深度知识感知网络DKN
  16. virtualhackinglabs靶机 ANTHONY 10.12.1.113
  17. 对已有apk进行重新签名
  18. 如何在Win7中查看安装软件的文件夹位置
  19. 奥的斯 蓝牙模块 全套制作资料
  20. 杰理AC692X---692X系列的SDK运行

热门文章

  1. 洛谷 P4093 [HEOI2016/TJOI2016]序列
  2. 公开说说别人看不到_空间设置了权限说说所有人可见
  3. c语言简单的图案设计,分形艺术图案设计
  4. 用户‘Sa’登录失败原因
  5. 使用 Pixel 3 的 Photobooth 自动拍摄最美自拍照
  6. CentOS7 Docker 端口映射
  7. win10用账户登录计算机,Win10没有改用本地账户登录选项的解决方案
  8. c语言地址符作用,理解C语言取地址符
  9. mysql外文文献中英文3千字_MySQL数据库管理外文中英文翻译文献.doc
  10. c# spire.xls 设置文字为微软雅黑_微软推出的逆天神器,让我抛弃用了5年的 Chrome。...