MTK10A添加新模块,绝对原创

合集下载

MTK手机平台添加资源和菜单的方式

MTK手机平台添加资源和菜单的方式
}
void HighlightMySetting1(void)
{
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
MTK手机平台添加资源和菜单的方式.txt18拥有诚实,就舍弃了虚伪;拥有诚实,就舍弃了无聊;拥有踏实,就舍弃了浮躁,不论是有意的丢弃,还是意外的失去,只要曾经真实拥有,在一些时候,大度舍弃也是一种境界。MTK手机平台添加资源和菜单的方式
一、 菜ห้องสมุดไป่ตู้的修改或增加:
以一个例子的方式介绍如何添加一个菜单,例子如下:
在主菜单的“设置”菜单下增加一个“我的设定”子菜单,“我的设定”下有两个子菜单:“我
的设定1”和“我的设定2”,打开这两个菜单,分别显示一幅动画。
步骤如下:
1.在..\plutommi\mmi\Setting\SettingInc目录下的SettingDefs.h文件中增加如下内容:
nNumofItem= GetNumOfChild(MENU_MY_SETTING);
/* 4. Retrieve string ids in sequence of given menu item to be displayed */
GetSequenceStringIds(MENU_MY_SETTING,nStrItemList);
3. 在.. \plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下的Res_Setting.c增加如下
资源:

MTK——10A金拇指矢量文字引擎集成说明书

MTK——10A金拇指矢量文字引擎集成说明书

MTK手机开发之——金拇指矢量文字引擎集成说明(10A v2.0 )第一部分:代码集成1. <项目配置.mak>文件设置FONT_ENGINE = FONT_ENGINE_SCRIPTEASY2. 目录拷贝:拷贝make\scripteasy到对应目录拷贝vendor\vectorfont\scripteasy到对应目录3. 查找__MMI_SCRIPT_EASY__宏合并代码make\Option.makMoDIS_VC9\createMoDIS.plvenusmmi\framework\ui_core\mvc\vfx_text_frame.hplutommi目录下的所有文件(尤其要注意PixcomFontEngine.c这个文件,注意不要合并错误)vendor\font\MTK\official\project\plutommi\content\src\MainLcd240X400\FontRes.c注: 如果你的屏幕size不是240x400, 请将该文件与您对应的MainLcd...x...\FontRes.c 文件合并。

4. 将vendor\vectorfont\scripteasy\res\ref_list_scripteasy.txt 中的字符串资源添加到平台ref_list.txt文件。

5. 金拇指矢量文字引擎库在vendor\vectorfont\scripteasy\lib 下, scripteasy.a是arm库, scripteasy.lib是modis库.金拇指库有DEMO版和正式版之分,请先集成DEMO版,一切具备后再换正式库。

6. 执行new命令.7. 在手机或模拟器上看矢量文字效果1)系统的文字显示全部应为矢量字, 矢量字有灰度特性,点阵字一般全黑。

2) 在电子书和短信编辑时,可以使用音量键进行文字的无级缩放。

8. 在系统菜单上添加字体和字号设置详情请进下面字库配置部分。

MTK_10a教程

MTK_10a教程

一.10A MMI主要新特征一.10A MMI主要新特征1.新Event机制API:#define MMI_FRM_SEND_EVENT(_evt, _proc, _user_data) \mmi_frm_send_event((mmi_event_struct *)(_evt), (mmi_proc_func)(_proc), (void *)(_user_data))#define MMI_FRM_POST_EVENT(_evt, _proc, _user_data) \mmi_frm_post_event((mmi_event_struct *)(_evt), (mmi_proc_func)(_proc), (void *)(_user_data))mmi_frm_send_event = 直接函数调用mmi_frm_post_event 发消息稍后调用(据MTK说是为了防止循环调用)mmi_frm_invoke_post_event可以处理队列里的消息,这个mtk已经做好了在一些必要的地方调用Event处理机制在MTK 10A mmi framework代码中很重要,在后续特征中会有体现2.Callback管理机制10A中callback其实还是用event机制实现的在mmi_cb_mgr_cfg.h中可以看到如何注册一个event的callback,也可以通过调用mmi_ret mmi_frm_cb_reg_event(U16 evt_id, mmi_proc_func call_back, void *user_data)来注册,一个event可以注册多个callback,会依次调用,如果有需要截断后面的处理,则不能返回MMI_RET_OKMTK新版本中已有的event数量已经非常多,也可以自己添加,需要在以后熟悉代码中慢慢熟悉已有的event的意义此时的callback event和上面1中的event有些区别的,使用mmi_frm_cb_emit_post_event来发送,在mmi_frm_invoke_post_event中会判断然后和1中的event区别处理3.Screen Group机制见图形化文档跟原来的screen机制并不能完全兼容,如需移植代码需要注意,独立的功能最好添加一个group id,否则可以使用已有的group id4.CUICommon UI5.添加XML 方式描述Mmi Resource可见代码:phonebook.res MTK会解析*.res文件生成mmi_rp_{APP_NAME}_def.h 兼容以前的添加资源方式6.新按键处理static void process_key_event_routing(mmi_frm_key_evt_struct *key_evt_p)参考PRST_FRM_NewInputHandler.pdf7.新屏幕刷新机制MTK为了避免屏幕闪的问题,改在特定的时间刷新屏幕,如果需要马上刷新需要设置mmi_frm_set_curr_scr_blt_mode(MMI_FRM_SCR_BLT_IMMEDIATE);(有些需要频繁刷新屏幕的应用需要)8.怎样添加一个新应用见文档PRST_FRM_HOW_TO_WRITE_APP_10A.pdf二.MTK History机制深入分析1.10A的屏幕架构10A中的屏幕管理,不再像以前那样简单的管理一个数组,出栈入栈,而是维护一个树,如下图:这个是总的屏幕集合的一部分,基本上是主菜单一个应用有自己的一个总的group(也不排除特殊情况,比如设置菜单),在这个group下有许多子group(就好像一个菜单中有很多子菜单),子group中又会有用来显示的screen以及其它的group,依次类推,不过最底部(叶子节点)一定会是个screen,用作显示。

MTK刷机教程(自制刷机工具给手机解锁)

MTK刷机教程(自制刷机工具给手机解锁)

楼主发表于: 2010-12-23倒序阅读┊只看楼主┊小中大来源于教程类分类MTK刷机教程(自制刷机工具给手机解锁)管理提醒: 本帖被發騷友设置为精华(2010-12-23)有好几个朋友的手机都想解锁,而且都是MTK的。

后来想想,有朋友用诺基亚DK-5的数据线刷机我就打算买个USB转TTL的小板回来刷机用。

淘宝上很多,不过都说是升级中九用的,有两种,因为我的是笔记本就买USB的了,还有一种COM口的。

1PL2303的芯片2配送的杜邦线3刷机用的TXD RXD GND 4COM口的56连上电脑7打开破解平台89选择验证仪器选东震三号用户10本帖最近评分记录: 共19条评分记录 沐雨玲珑 M 币 +5 04-11 谢谢分享M 币+10 04-11 看了好几页的回复 小杰是个好同志 值得我尊敬 liu5213855 M 币 +10 04-11 謝謝分享 zhaoxunzhu M 币 +3 01-22 小杰。

好样的 0 M 币 +3 01-22高人~~江攀 M 币 +20 2010-12-28 優秀文章 淡水渔 M 币 +5 2010-12-25 歡迎探討 夜猫子 M 币 +10 2010-12-24 原創內容 东方龙 M 币 +8 2010-12-24 謝謝分享 7 M 币+32010-12-24 謝謝分享隐藏评分记录查看更多维修必备 ★数码维修配件总批发入口:手机配件、U 盘配件、MP3配件、数码配件、充电器、数据线、读卡器、常用工具等 ★相关话题电信联通订制家庭网关的福音(ZTE H118B H618B刷机软件及固件)关键词: MTK刷机解锁时尚创意U盘、礼品U盘。

,手机:回复引用举报顶端~小杰~离线1楼发表于: 2010-12-23只看该作者┊小中大继续这是以前买的面包板插线刚好可以和杜邦线配合使用11级别: 数码1段UID: 798720精华: 1发帖: 572M币: 190 M专家: 7 级贡献值: 1 点在线时间: 790(时)注册时间: 2010-05-08最后登录: 2011-05-2212131415161718连接好了1920下面是买的手机尾插2122232425262728为了使用方便每个焊接一根地线29303132常见的10P 3334358P 3637数码总汇★ 数码电子维修配件详细报价:电子稳压管、晶振电感、主控内存、电池喇叭、液晶屏、触摸屏、MP3/4耳机、种类齐全★时尚创意U盘、礼品U盘。

MTK模块添加步骤

MTK模块添加步骤

MTK模块添加步骤1、在plutommi\mmi目录下添加模块名:java2、在java目录下新建头文件文件夹:include3、在java目录下新建源文件夹:source4、在plutommi\mmi\Java\include添加以下几个文件:JavaDefs.h:本模块的资源IDJavaGprot.h:需引出的函数及全局变量JavaProt.h:本模块需要调用的函数及变量JavaTypes.h :类型、结构、常量定义5、将文件加入项目:a)修改make\plutommi\mmi_app\mmi_app.lis文件在最后添加:plutommi\mmi\Java\source\JavaMain.cb)修改make\plutommi\mmi_app\mmi_app.inc文件在最后添加:plutommi\mmi\Java\includec)修改make\plutommi\mmi_app\mmi_app.pth文件在最后添加:plutommi\mmi\Java\source6、模块控制开关:修改plutommi\Customer\CustResource\PLUTO_MMI\ MMI_features_switchPLUTO.h,修改plutommi\Customer\CustResource\PLUTO_MMI\ MMI_features_switch.h,添加#define CFG_MMI_JAVA_APP (__ON__)7、修改plutommi\mmi\Inc\MMI_features.h,在最后添加:#if defined( CFG_MMI_JAVA_APP) && ((CFG_MMI_JAVA_APP == __ON__) || (CFG_MMI_JAVA_APP == __AUTO__) )#ifndef __MMI_JAVA_APP__#define __MMI_JAVA_APP__#endif#endif修改build\NEOTEL25_GEMINI\MMI_features.h,在最后添加#if defined( CFG_MMI_JAVA_APP) && ((CFG_MMI_JAVA_APP == __ON__) || (CFG_MMI_JAVA_APP == __AUTO__) )#ifndef __MMI_JAVA_APP__#define __MMI_JAVA_APP__#endif#endif8、在plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI文件夹下新建Res_Java.c9、修改\plutommi\Customer\ResGenerator\Makefile文件,添加一行:-I "../../mmi/Java/include"10、修改\plutommi\mmi\Resource\PopulateRes.c文件,在函数PopulateResData中添加:#ifdef __MMI_JAVA_APP__PRINT_INFORMATION(("Populating java Resource\n"));PopulateJavaRes();#endif11、在plutommi\mmi\Inc\MMIDataType.h的RESOURCE_BASE_ENUM枚举中添加:RESOURCE_BASE_RANGE(JAVAAPP, 100),在文件末尾添加宏定义:#define JAVAAPP_BASE ((U16) RESOURCE_BASE_JAVAAPP)#define JAVAAPP_BASE_MAX ((U16) RESOURCE_BASE_JAVAAPP_END)12、添加字符串资源:a)在JavaDefs.h里添加:typedef enum{STR_JAVA_MENU_TEXT = JAVAAPP_BASE + 1,} STRINGID_LIST_JAVA;b)在plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中添加字符串ID及值使用MCT打开ref_list.txt文件,插入一行,添加字符串c)在plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_Java.c的PopulateJavaRes函数中添加:ADD_APPLICATION_STRING2(STR_JAVA_MENU_TEXT, "java", "java");13、添加菜单资源:a)在plutommi\mmi\Inc\GlobalMenuItems.h文件中的GLOBALMENUITEMSID枚举添加:MENU_ID_JAVAAPP_ENTRY,b)在plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_MainMenu.c的OrganizerMenu枚举中添加:#ifdef __MMI_JAVA_APP__MENU_ID_JAVAAPP_ENTRY,#endif在PopulateMainMenuRes函数中ADD_APPLICATION_MENUITEM((MAIN_MENU_ORGANIZER_MENUID这里添加:#if defined(__MMI_JAVA_APP__)MENU_ID_JAVAAPP_ENTRY,#endifc)在plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_Java.c的PopulateJavaRes函数中添加:ADD_APPLICATION_MENUITEM((MENU_ID_JAVAAPP_ENTRY,MAIN_MENU_ORGANIZER_MENUID, 0, SHOW, SHORTCUTABLE, DISP_LIST,STR_JAVA_MENU_TEXT, 0));d)在plutommi\mmi\Java\source\JavaMain.c中添加函数:void mmi_java_app_hilite(void){SetLeftSoftkeyFunction( mmi_java_app_entry, KEY_EVENT_UP );}void mmi_java_app_init( void ){SetHiliteHandler(MENU_ID_JAVAAPP_ENTRY, mmi_java_app_hilite);}在JavaProt.h中添加:extern void mmi_java_app_hilite(void);在JavaGprot.h中添加:extern void mmi_java_app_init( void );e)在plutommi\mmi\Framework\Tasks\TasksSrc\ MMITask.c中添加:#if defined(__MMI_JAVA_APP__)#include "JavaGprot.h"#endif在InitAllApplications函数中添加:#if defined(__MMI_JAVA_APP__)mmi_java_app_init();#endif修改make\plutommi\mmi_framework\mmi_framework.inc在最末尾添加:plutommi\mmi\Java\includef)14、。

MTK字库添加说明

MTK字库添加说明

添加MTK平台的字库,一般可以按以下几个步骤实现:一、矢量字库转换为点阵字库使用字库转换工具ts2.exe,将矢量字库转换成bdf点阵字库文件,在生成字库之前,可以根据需要,设置字体、大小、宽、高等参数,其中,在下拉式菜单中,必须选择:生成文泉驿字体文件BDF,参数设置完后,点击生成按钮,保存生成的BDF字库文件;在添加字库的过程中,将矢量字库转换为点阵字库是很关键的一步,矢量字库的转换工具有很多,目前在网上已搜索到的工具主要有:ts2、FontEditor V1.25、FontEditor V1.33,但这些转换工具都是有偿使用,即需要注册才能正常使用,工具ts2不注册也能使用,只是转换出来的字库,每个文字都有1道斜线,暂未找到其它能正常使用的免费转换工具;二、点阵字库转换为MTK平台可用的字库文件使用MCT工具,该工具可将步骤1生成的BDF字库文件转换成MTK平台可以使用的文件:FontRes.c *.h,具体如下:1.打开MCT工具,选择菜单:Tools\Font tools\Font Customizer,点击Add按钮,输入字库语言名,如:MFChinese(或者其它名字,不宜过长),然后点击OK 按钮;2.然后选择:Lang Identifier:*#0086#Language type:IdeographicLang Country Code:CHINESE(SIMPLIFIED)选择完后,点击右下角的Next -->>按钮;3.输入:Font Family Name,如:f20_20(或者其它名字,不宜过长),输入完成后,点击右下角的Next -->>按钮;4.点击Ideographic条目的Load按钮,点击Fixed按钮,Load步骤一生成的BDF文件;5.如果Load BDF文件成功(如果Load不成功,说明BDF文件的格式等可能有问题,需要重新生成该文件),点击右下角的Next -->>按钮;6.本页有2个选项:Action、Output,均选择默认选项即可(分别为:Generatethe font data now、By Input)然后点击右下角的Next -->>按钮;7.选择输出文件路径,点击确定按钮,最后生成2个字库文件:FontRes.c*.h;三、把字库文件Merge到MTK平台1、把生成的*.h头文件COPY至工程的如下位置:\A600_IdleGame_Simulator_1020\vendor\font\MTK\official\project\plutommi\c ontent\inc\MainLcd240X320\2、把生成的FontRes.c文件Merge到文件:A600_IdleGame_Simulator_1020\plutommi\Customer\CustResource\FontRes.c 先在该文件中添加一个MF字库的开关定义:#define MF_FONT_SWITCH 1然后合并宏控:MF_FONT_SWITCH 部分的代码;若要去除新添加的字库,只要修改宏控定义即可:#define MF_FONT_SWITCH 03、编译资源,然后remake整个工程,即可看到新字库的效果;Make a600 gprs resgenMake a600 gprs r以上Merge步骤,适用于手机版本和模拟器版本;四、参考文档及相关工具:1、《User_Manual_for_MCT_v6.0.pdf》2、矢量字库转换工具,在网上搜索到的工具有:ts2、FontEditor V1.25、FontEditor V1.33,这些转换工具都是有偿使用,即需要注册才能正常使用;3、MCT工具,使用MCT 6.0即可;附:表1 添加字库后的容量统计表。

MTK开发--资源添加

MTK开发--资源添加

资源添加流程1. 确定目录结构结构及模块相关文件既然是在为MMI添砖加瓦,那么我们的程序模块也就放在/plutommi/mmi目录下,取名为FirstApp。

按照规则,我们的模块的目录结构如下:/plutommi/mmi/FirstApp :模块总目录;/plutommi/mmi/FirstApp/FirstAppInc :模块头文件目录;/plutommi/mmi/FirstApp/FirstAppSrc :模块源文件目录。

如图所示。

图FirstApp的目录结构其中Inc目录下我们需要根据上述代码结构新建4个头文件,分别是FirstAppDef.h,FirstAppGprot.h,FirstAppProt.h,FirstAppTypes.h。

在FirstAppSrc目录下建立FirstApp.c文件,将来程序的实现就完全在该文件中进行描述。

2. 将相关文件路径加入plutommi的编译配置文件下面我们来关注make\plutommi\mmi_app\目录下的3个文件。

1)mmi_app.lis :该文件用来指明MMI所要编译的具体源文件。

将我们的\plutommi\mmi\FirstApp\FirstAppSrc\FirstApp.c附加在文件末尾。

如图所示。

图mmi_app.lis文件末尾2)mmi_app.inc :该文件用来指明源文件所需要的头文件的目录。

将我们的\plutommi\mmi\FirstApp\FirstAppInc目录附加在文件末尾。

3)mmi_app.pth :该文件用来指明要编译的源文件目录。

将我们的\plutommi\mmi\FirstApp\FirstAppSrc目录附加在文件末尾。

3. 为新增模块增加编译开关在这里,我们推荐开发人员为自己的模块增加一个宏开关,这样在不需要自己的模块的时候,可以关闭它,减少编译后的Bin文件大小,以节省空间。

打开文件\make\Option.mak,在末尾添加宏__MMI_FIRSTAPP__,如图所示。

MTK平台学习笔记+03-增加菜单项的流程

MTK平台学习笔记+03-增加菜单项的流程

MTK平台学习笔记(三)-增加菜单项的流程翁加平说明:红色部分为新增部分;蓝色部分为修改部分。

以增加菜单“防火墙”为例,说明增加一个菜单的具体流程。

防火墙菜单:MainMenuSettingsFirewallSeparateNoneModeRedName ModeModeBlackNameRedNameAddEditCallDelDelAllBlackNameAddEditCallDelDelAll1 增加字符串在文件“.\ plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt”中,按照规则增加字符串:STR_MENU_FIREWALLSTR_MENU_FIREWALL_SEPARATESTR_MENU_FIREWALL_SEPARATE_NONEMODESTR_MENU_FIREWALL_SEPARATE_REDMODESTR_MENU_FIREWALL_SEPARATE_BLACKMODESTR_MENU_FIREWALL_REDNAMESTR_MENU_FIREWALL_BLACKNAMESTR_MENU_FIREWALL_SEPARATE_NONEMODE_SHOWSTR_MENU_FIREWALL_SEPARATE_REDMODE_SHOWSTR_MENU_FIREWALL_SEPARATE_BLACKMODE_SHOWSTR_MENU_FIREWALL_REDNAME_OPERATESTR_MENU_FIREWALL_BLACKNAME_OPERATESTR_MENU_FIREWALL_ADD_REDNAMESTR_MENU_FIREWALL_ADD_BLACKNAMESTR_MENU_FIREWALL_EDIT_REDNAMESTR_MENU_FIREWALL_EDIT_BLACKNAMESTR_MENU_FIREWALL_CALL_REDNAMESTR_MENU_FIREWALL_CALL_BLACKNAMESTR_MENU_FIREWALL_DEL_REDNAMESTR_MENU_FIREWALL_DEL_BLACKNAMESTR_MENU_FIREWALL_ALLDEL_REDNAMESTR_MENU_FIREWALL_ALLDEL_BLACKNAMESTR_MENU_FIREWALL_DEL_NOTIFYSTR_MENU_FIREWALL_ALLDEL_NOTIFYSTR_MENU_FIREWALL_OPERATESTR_MENU_FIREWALL_ADDSTR_MENU_FIREWALL_EDITSTR_MENU_FIREWALL_CALLSTR_MENU_FIREWALL_DELSTR_MENU_FIREWALL_ALLDEL2 增加与菜单条、字符串、屏幕和图片相关的枚举值在文件“”中增加enum GLOBALMENUITEMSID{IDLE_SCREEN_MENU_ID=1,。

MTK Android添加驱动模块

MTK Android添加驱动模块

∙ 1 [编写linux驱动程序]1.1 一、编写驱动核心程序1.2 二、配置Kconfig1.3 三、配置Makefile1.4 四、配置系统的autoconfig1.5 五、编译∙ 2 [编写hal模块]2.1 一、新建xxx.h文件2.2 二、新建xxx.c文件2.2.1 1、包含相关头文件和定义相关结构2.2.2 2、定义hello_device_open函数2.2.3 3、定义自定义的api函数2.3 三、在hello目录下新建Android.mk文件2.4 四、编译、重新打包Android系统镜像system.img3 [编写jni]3.1 一、新建com_android_server_HelloService.cpp文件3.1.1 1、包括头文件3.1.2 2、编写jni接口3.1.3 3、定义jni加载函数,注册jni方法表3.2 二、修改onload.cpp,使系统启动时自动加载JNI方法调用表3.3 三、修改Android.mk文件,添加编译路径3.4 四、编译和重新生成system.img∙ 4 [编写Framework接口]4.1 一、定义通信接口4.1.1 1、新增接口文件4.1.2 2、添加编译路径4.1.3 3、编译接口文件4.2 二、建立java文件,编写Framework接口4.3 三、在ServerThread::run函数中增加加载代码4.4 四、编译、重新打包system.img5 [App访问][编写linux驱动程序]编写驱动核心程序这里说的驱动核心程序是指运行在内核空间的,完全按linux驱动格式编写的,基本上与android没什么关系,一般包括xxx.h和xxx.c文件。

进入到kernel/drivers目录,新建snsled目录,然后建立对应的snsled.h和snsled.c文件://snsled.h//snsled.creturn 0; } static int snsled_read_proc(char *buf, char **start, off_t offset, int count, int *eof, void *data) { int len =sprintf(buf, "snsled read proc.\n"); return len; } static int snsled_create_proc_file(void) { struct proc_dir_entry *entry = NULL; entry = create_proc_read_entry(SNSLED_PROC_NAME, 0, NULL, snsled_read_proc, NULL); if(entry) { return 0; } else { return -1; } } static int snsled_delete_proc_file(void) { remove_proc_entry(SNSLED_PROC_NAME, NULL); return 0; } MODULE_LICENSE("GPL"); static int snsled_init(void) { int err = -1; dev_t devt = 0; //[1] alloc node number err = vircdex_alloc_major(); if(0 > err) { printk(KERN_ALERT"alloc major failed.\n"); goto ALLOC_MAJOR_ERR; } devt = MKDEV(g_snsled_major, g_snsled_minor);//[2] device object init g_snsled_ptr = kmalloc(sizeof(struct snsled_cntx), GFP_KERNEL); if(!g_snsled_ptr) { err = -ENOMEM; printk(KERN_ALERT"kmalloc failed.\n"); goto KMALLOC_ERR; } memset(g_snsled_ptr, 0, sizeof(struct snsled_cntx)); //[3] setup device err = snsled_setup_dev(g_snsled_ptr); if(0 > err) { printk(KERN_ALERT"device setup failed.\n"); goto DEVICE_SETUP_ERR; } //[4] create files in directory "/dev/" and "/sys/" ///err = snsled_create_devfiles(devt, attr); err = snsled_create_devfiles(devt); if(0 > err) { printk(KERN_ALERT"devfiles create failed.\n"); goto DEVFILES_CREATE_ERR; } //[5] create proc file err = snsled_create_proc_file(); if(0 > err) { printk(KERN_ALERT"proc file create failed.\n"); goto PROC_FILE_CREATE_ERR; } return 0; PROC_FILE_CREATE_ERR: snsled_delete_devfiles(devt); DEVFILES_CREATE_ERR: snsled_unsetup_dev(g_snsled_ptr); DEVICE_SETUP_ERR: kfree(g_snsled_ptr); ALLOC_MAJOR_ERR: snsled_release_major();KMALLOC_ERR: return err; } static void snsled_exit(void) { dev_t devt = MKDEV(g_snsled_major, g_snsled_minor); snsled_delete_proc_file(); snsled_delete_devfiles(devt); snsled_unsetup_dev(g_snsled_ptr); kfree(g_snsled_ptr); snsled_release_major(); } module_init(snsled_init); module_exit(snsled_exit);二、配置 Kconfig在 snsled 目录中,新建 Kconfig 文件: config SNSLED tristate "snsled Driver" default n #y ? help This is the sns led driver.其中,tristate 表示编译选项 HELLO 支持在编译内核时,hello 模块支持以模块、内建和不 编译三种编译方法。

MTK 起步

MTK 起步
FirstAppSrc.c程序的主源文件
2、将文件加入项目:
修改make\plutommi\mmi_app\下的三个文件:
1)mmi_app.lis:此文件用来申明MMI所要编译的所有源文件,添加如下一行:
plutommi\MMI\FirstApp\FirstAppSrc\FirstAppSrc.c
MTK编程起步——建立新APP和资源定义
一、添加新程序的步骤:
1、创建目录及文件:
目录一:plutommi\MMI\FirstApp
目录二:plutommi\MMI\FirstApp\FirstAppInc
文件列表:
FirstAppDefs.h:用于存放本程序所需要的类型,结构,常量的定义
ADD_APPLICATION_MENUITEM((
ORGANIZER_FIRSTAPP_MENU,//当前菜单ID
MAIN_MENU_ORGANIZER_MENUID,//父级菜单ID
#endif
2)找到如下定义块:
/* Beginning of resource table */
RESOURCE_BASE_TABLE_BEGIN()
……
/* End of resource table */
RESOURCE_BASE_TABLE_END()
在块中间末尾位置添加:
/****************************************************************************
DISP_LIST:列表显示,绝大部份普通菜单都是用此风格。
DISP_MATRIX:矩阵显示,如九宫格,十二宫格等等,一般主菜单都是用此风格。

刷手机不求人,MTK国产刷机软件自己做

刷手机不求人,MTK国产刷机软件自己做

刷手机不求人,MTK国产刷机软件自己做最近公司的项目差不多都做完了,趁新项目还没来的时候学学东西。

从朋友那里搞来一套mtk的源代码学学mtk的开发。

选择mtk是因为,它跟我的工作所用的平台相似,学起来方便一点,另外一点是它可以在PC上跑,不用自己去买硬件,成本不高。

呵呵,从朋友那里搞来的源代码,不用硬件,成本就只有时间了。

我的那个朋友还真绝,丢给我一个源代码就什么都不管了。

我问他一些问题一律不答,还美其名曰:“你不是学习么,自己去找答案呀,什么都我告诉你,你还学什么呀?!!”气得我,不过也是,学东西还得自己动手!搞开发当然是要先建开发环境了。

在网上找了一些资料,整理一下,也算搞定了。

首先当然是找到要用的软件了。

一.安装编译工具1. ADS1.2和ADS1.2_update_848.exe,mtk是arm7核的,所以用ads编译当然会比较好一点,当然应该是可以用其他编译器的,但不想去试,太麻烦了。

到网上下了这两个软件,装上。

注意:最好是按默认目录安装。

不然后面还得有事做,按默认目录装可以省事不少!2. 安装perl,mtk编译脚本是用perl来完成的。

3. 到了这里,很多时候应该是可以了。

因为很多release版本的源代码已经有其它第三方工具了。

你先检查一下有没有下面的工具,如果没有就装。

MSYS 版本:1.0.10,MinGW 版本:3.1.0,Gcc-core-3.3.1,Gcc-g++-3.3.1,ImageMagick 版本:6.3.6 Q16,7-zip 版本:3.13。

注意:版本最好是要求的版本,这些是已经通过测试的不会有问题。

4. 朋友可能是想考验我,把一个工具删除了,害我一开始编译不了。

这个工具是convert.exe提示找不到这个文件。

后来装了,ImageMagick后,把convert.exe放在\plutommi\Customer\ResGenerator里面就行了。

二.测试开发环境1. 进入DOS命令提示行里2. 进入你源代码目录下的tools目录3. 运行chk_ev.exe,如果你看到“Build environment is ready!”的提示说明你的编译环境好了三.开始编译1.在编译手机程序,在源代码的根目录里输入make –h可以看到编译帮助下面是我这里的提示:Usage:make ["customer"|"mt62xx"] "project" "action" ["modules"]Description:customer = mtk (Default customer)= firefly17_demo (FIREFL Y17_DEMO project)= [mt6217|mt6219|mt6226|mt6227|mt6228|mt6229] (EVB only)= ...project = l1s (Layer 1 stand-alone)= gsm (GSM only)= gprs (GPRS only)= basic (Basic Framework)action = new (codegen, resgen, clean, update) (default)= update or u (scan, compile, link)= remake or r (compile, link)= clean or c (clean)= resgen (resgen)= c,u (clean then update)= c,r (clean then remake)= codegen (codegen)= viewlog (open edit to view build log)module(s) = modules' name (kal, l1, ...)=> OPTIONAL when action is one of (clean c remake r update u c,r c,u)Example:make gsm new (MT6205B EVB new)make gprs codegen (MT6218B EVB codegen)make mt6219 gprs update (MT6219 EVB update)make firefly17_demo gprs newmake milan_demo gprs c,u init custommake mt6219 gprs r init custom drv也就是说只要输入make XXX gprs new之类的命令就可以编译了,这里XXXX指你的项目名。

MTK教程详细教程

MTK教程详细教程

MTK使用教程1.驱动安装。

解压,然后选择驱动自动安装:完成上一步,可直接到下一步软件包选择。

以下为刷机时读取不到端口时手动安装教程:计算机右键,打开设备管理器,手机关机状态插入数据线。

2.以32位系统为例,双击打开端口,手动安装驱动3.检查设备是否正确安装。

个别电脑由于驱动签名问题需要关闭驱动签名,百度即可。

(64位系统安装下面那个)驱动安装时需等待,选择始终安装程序,若安装失败,检查是不是驱动签名问题,可关闭驱动签名/article/7c6fb42879543380642c9036.htm l4.打开工具,开始升级,可选择语言为中文5.点击右侧配置文件,选择升级软件包(包需解压)注意看文件名,必要时可以选择两次项不要选可以按音量键,个别手机不用电池也可)8.出现红色滚动条时说明连接成功9.当出现黄色滚动条开始走,并且达到100时即升级完成,升级过程中耐心等待,中途不要断电。

10.拔数据线,重新插拔下电池,开机。

首次开机需要更新系统,耐心等待3到5分钟,中途不要动手机,以防断电。

11.手机开机,测试没问题时,关机重启,再正常使用。

更多的详细资料,和最新原厂升级救砖包,可来群2463595找我解答,由于群是免费群,各维修界的同僚,可进群来帮下忙,我可免费提供你更多的最新原厂救砖包,个人力量有限,多靠大家支持。

群官网/。

升级常见错误分析1、刷机过了红条,到了紫色条卡住。

(错误代码4008)这种情况出现的话,大家可以把电池拿下来,然后重新安装上,进入REC后选择关机。

然后重新刷。

2、驱动安装好了,一点刷机就弹出错误提示。

这种情况一般是USB口的供电问题,使用PC后面的USB插口,或者拔掉几个用电量大的设备。

3、正常操/作情况下,和步骤2出现的问题提示不一样的。

(典型的3013问题,出现率最高的)这个问题就是大家经常问的,出现这个问题基本上都是因为大家升级到了4.1.2然后想刷回4.0.4的情况,大家使用4.1.2刷机时候用的SP_Flash_Tool重新刷4.0.4即可,或者用甲鱼官方4.1.2的SP_Flash_Tool。

MTK 10A编译环境的搭配

MTK 10A编译环境的搭配

10A编译环境的搭配1.必备编译工具RVDS_3_1 (I)(RVDS编译器3.1及以上版本)rvds4.crack (RVDS编译器的破解机)VS2008 (模拟器编译的开发环境)2.搭建过程1.在C:\Program Files\目录下新建文件夹ARM22.将rvds4.crack目录下的文件全部拷贝到C:\ProgramFiles\ARM2文件夹中3.找到本机网卡地址:开始-> 运行-> CMD -> ipconfig/all,Physical Address一项为MAC地址4.用记事本打C:\Program Files\ARM2下的rvds.dat,找到“HOSTID=”,共有19处,后面的数字替换成本机的MAC地址。

5.安装RVDS_3_1 (I),注意安装选项选择RVCT ONLY,安装目录为C:\Program Files\ ARM26.安装至弹出ARM License Wizard 窗口时,选择InstallLicense,浏览选择刚才修改的C:\Program Files\ARM2、rvds.dat,Add添加,完成安装。

7.运行C:\Program Files\ARM2\crack.bat ,直至完成。

运行到ecc时会暂时无反应,请耐心等待。

完成后会自动关闭的。

(争取一次就好,多次可能会有问题)8.10A工程目录下面\tools\XGConsole.xml中<Tool Filename="perl" AllowRemote="false" /><Tool Filename="make" AllowIntercept=" false " /><Tool Filename="tcc" AllowRemote=" false " /><Tool Filename="tcpp" AllowRemote=" false " /><Tool Filename="armasm" AllowRemote=" false " /><Tool Filename="armcc" AllowRemote=" false " /><Tool Filename="armcpp" AllowRemote=" false " /><Tool Filename="strcmpex" AllowRemote=" false " /><Tool Filename="warp" AllowRemote=" false " /><Tool Filename="armar" AllowRemote="false" /><Tool Filename="armlink" AllowRemote="false" /><Tool Filename="fromelf" AllowRemote="false" />因为10AARM版不能联编所以此设置是10A编译的时候默认为单编(模拟器可以联编)9.注意事项功能目录\make\option.mak里面ifeq ($(strip $(COMPILER)),RVCT)ifndef RVCT_VERSION$(call DEP_ERR_SETA_OR_ONB,COMPILER,non RVCT,RVCT_VERSION)DEPENDENCY_CONFLICT = TRUEendififeq ($(strip $(RVCT_VERSION)),NONE)$(call DEP_ERR_SETA_OR_ONB,COMPILER,non RVCT,RVCT_VERSION)DEPENDENCY_CONFLICT = TRUEendifDIR_ARM = C:\Progra~1\ARM2\RVCT 这个地方要保证路径正确DIR_ARM := $(strip $(DIR_ARM))3.编译工程如能成功编过手机版本和模拟器版本,则编译环境搭建完成。

MTK{智能}客户组装升级操作说明-新

MTK{智能}客户组装升级操作说明-新

MTK智能平台客户组装厂升级操作说明使用前提:1、首先确保电脑USB驱动安装正常,其次将CheckSum_Gen.exe文件拷贝至软件目录文件中,此时打开CheckSum_Gen.exe文件,会自动生成一个Checksum.ini的文件,注:软件文件夹中必须保证有Checksum.ini的文件,一切设置OK后,按照以下操作步骤进行使用。

2、端口设置:在电脑已插入USB线的情况下,打开升级工具,将软件选择成功后,同时将BootRom+PreLoader COM Aell All前进行勾选,前面操作完成后点击界面下方的Scan自动读取识别当前端口后,如读取成功后会显示如下图一样:一、打开升级工具SP_MDT_exe_v3.1328.00.rar进行解压,解压后在文件中选择SPMultiPortFlashDownloadProject.exe运行,出现下图显示:二、因首次打开此工具界面均为空白项,故需点击顶端Factory databas e中的Setup data source file中自带的MTK_DATABASE.mdb文件,如下图红色标示所示:三、在点击左上角File中的Open Download Agent File中选择相匹配的DA文件,如下图红色标示:注:这个文件是在您解压后的升级工具包SP_MDT_exe_v3.1328.00目录下的MTK_AllInOne_DA.bin四、接上操作后,点击顶端的Option出现以下红色区域提示框,同时需将Enable DA download all和Enable DA checksum 处进行打勾:五、如需多个PCB板和样机进行下载时,需Option菜单Settings中的Delete NVRAM backup data(Only for RID)处的勾去掉,同时需选择界面的USB COM port as folder name,如下图红色地方所示:六、上面操作OK后,点击Scatter File选择相应的软件,如下图红色区域所示:七、文件选择OK后,需选择右侧Type中的Fimware upgrade【此项为保留校准参数,注:内部测试及客户组装成品样机时必须选择此项,不然的话升级后手机将无相应的射频参数】,如下图红色标示区域所示:八、接上操作,在右侧DA download all处选择High speed,同时还可以选择Battery或No battery下载,Battery是有电池下载,No battery是无电池下载,如下图红色区域显示:十、以上设置完成后点击Start all,将USB线插入手机即可进行升级,下图为升级过程中的图片:十一、以下为升级完成的图片,如下图所示:。

MTK添加模块

MTK添加模块

MTK添加模块添加HelloWorld模块1.添加开关:添加编译模块时所需要的宏plutommi\customer\custresource\PLUTO_MMI\MMI_features.h2.在plutommi\mmi下建立目录HelloWorld在HelloWorld下建立三个目录:Inc:用于存放模块的.hHelloWorldGprot.hHelloWorldProt.hHelloWorldTypes.hHelloWorldDefs.hSrc:用于存放模块的.cHelloWorld.cRes:用于存放模块的资源文件HelloWorldGprot.h模块对外接口,供模块外部调用的函数原型在此申明,模块内部接口就不要放这里了/*************************************************************************/#ifndef __HELLOWORLD_GPROT_H__#define __HELLOWORLD_GPROT_H__#include "PixtelDataTypes.h"#include "HelloWorldTypes.h"extern voidmmi_HelloWorld_entry(void);/* 模块入口,理解成dos程序的main好了 */#endif /* __HELLOWORLD_GPROT_H__*//*************************************************************************/HelloWorldProt.h模块内部接口,供模块内部调用的函数原型在此申明/*************************************************************************/#ifndef __HELLOWORLD_PROT_H__#define __HELLOWORLD_PROT_H__#include "HelloWorldGprot.h"extern void mmi_HelloWorld_entry(void);/* 本模块主界面入口例程 */extern void mmi_HelloWorld_exit(void); /* 本模块主界面退出例程 */#endif /* __HELLOWORLD_PROT_H__ *//******************************************************* ******************/HelloWorldTypes.h本模块用到的一些常量、自定义数据类型、结构的定义HelloWorldDefs.h本模块用到的资源ID定义HelloWorld.c模块功能函数的实现部分3.修改的相关系统文件make\plutommi\plutommi.inc 所有mmi部分的头文件所在目录的相对路径列表:plutommi\mmi\HelloWorld\Incmake\plutommi\plutommi.pth 所有mmi部分的源文件所在目录的相对路径列表:plutommi\mmi\HelloWorld\Srcmake\plutommi\plutommi.lis 所有mmi部分的源文件(相对路径)列表:plutommi\mmi\HelloWorld\Src\HelloWorld.c。

MTK Android添加驱动模块

MTK Android添加驱动模块

∙ 1 [编写linux驱动程序]1.1 一、编写驱动核心程序1.2 二、配置Kconfig1.3 三、配置Makefile1.4 四、配置系统的autoconfig1.5 五、编译∙ 2 [编写hal模块]2.1 一、新建xxx.h文件2.2 二、新建xxx.c文件2.2.1 1、包含相关头文件和定义相关结构2.2.2 2、定义hello_device_open函数2.2.3 3、定义自定义的api函数2.3 三、在hello目录下新建Android.mk文件2.4 四、编译、重新打包Android系统镜像system.img3 [编写jni]3.1 一、新建com_android_server_HelloService.cpp文件3.1.1 1、包括头文件3.1.2 2、编写jni接口3.1.3 3、定义jni加载函数,注册jni方法表3.2 二、修改onload.cpp,使系统启动时自动加载JNI方法调用表3.3 三、修改Android.mk文件,添加编译路径3.4 四、编译和重新生成system.img∙ 4 [编写Framework接口]4.1 一、定义通信接口4.1.1 1、新增接口文件4.1.2 2、添加编译路径4.1.3 3、编译接口文件4.2 二、建立java文件,编写Framework接口4.3 三、在ServerThread::run函数中增加加载代码4.4 四、编译、重新打包system.img5 [App访问][编写linux驱动程序]编写驱动核心程序这里说的驱动核心程序是指运行在内核空间的,完全按linux驱动格式编写的,基本上与android没什么关系,一般包括xxx.h和xxx.c文件。

进入到kernel/drivers目录,新建snsled目录,然后建立对应的snsled.h和snsled.c文件://snsled.h//snsled.creturn 0; } static int snsled_read_proc(char *buf, char **start, off_t offset, int count, int *eof, void *data) { int len =sprintf(buf, "snsled read proc.\n"); return len; } static int snsled_create_proc_file(void) { struct proc_dir_entry *entry = NULL; entry = create_proc_read_entry(SNSLED_PROC_NAME, 0, NULL, snsled_read_proc, NULL); if(entry) { return 0; } else { return -1; } } static int snsled_delete_proc_file(void) { remove_proc_entry(SNSLED_PROC_NAME, NULL); return 0; } MODULE_LICENSE("GPL"); static int snsled_init(void) { int err = -1; dev_t devt = 0; //[1] alloc node number err = vircdex_alloc_major(); if(0 > err) { printk(KERN_ALERT"alloc major failed.\n"); goto ALLOC_MAJOR_ERR; } devt = MKDEV(g_snsled_major, g_snsled_minor);//[2] device object init g_snsled_ptr = kmalloc(sizeof(struct snsled_cntx), GFP_KERNEL); if(!g_snsled_ptr) { err = -ENOMEM; printk(KERN_ALERT"kmalloc failed.\n"); goto KMALLOC_ERR; } memset(g_snsled_ptr, 0, sizeof(struct snsled_cntx)); //[3] setup device err = snsled_setup_dev(g_snsled_ptr); if(0 > err) { printk(KERN_ALERT"device setup failed.\n"); goto DEVICE_SETUP_ERR; } //[4] create files in directory "/dev/" and "/sys/" ///err = snsled_create_devfiles(devt, attr); err = snsled_create_devfiles(devt); if(0 > err) { printk(KERN_ALERT"devfiles create failed.\n"); goto DEVFILES_CREATE_ERR; } //[5] create proc file err = snsled_create_proc_file(); if(0 > err) { printk(KERN_ALERT"proc file create failed.\n"); goto PROC_FILE_CREATE_ERR; } return 0; PROC_FILE_CREATE_ERR: snsled_delete_devfiles(devt); DEVFILES_CREATE_ERR: snsled_unsetup_dev(g_snsled_ptr); DEVICE_SETUP_ERR: kfree(g_snsled_ptr); ALLOC_MAJOR_ERR: snsled_release_major();KMALLOC_ERR: return err; } static void snsled_exit(void) { dev_t devt = MKDEV(g_snsled_major, g_snsled_minor); snsled_delete_proc_file(); snsled_delete_devfiles(devt); snsled_unsetup_dev(g_snsled_ptr); kfree(g_snsled_ptr); snsled_release_major(); } module_init(snsled_init); module_exit(snsled_exit);二、配置 Kconfig在 snsled 目录中,新建 Kconfig 文件: config SNSLED tristate "snsled Driver" default n #y ? help This is the sns led driver.其中,tristate 表示编译选项 HELLO 支持在编译内核时,hello 模块支持以模块、内建和不 编译三种编译方法。

MTK添加新的APP的总流程

MTK添加新的APP的总流程

MTK添加新的APP的总流程一、添加程序文件在plutommi\mmi\下建立MyAppInc(放头文件.h)MyAppRes(资源文件)MyAppSrc (源文件.c)。

1.在Inc下添加MyAppGprot.h对外接口,外部调用函数原型声明于此。

MyAppProt.h 内部接口,内部调用函数原型声明于此。

MyAppDefs.h 定义资源ID。

MyAppT ypes.h定义常量,自定义数据等。

2.在Src下添加MyAppSrc.c实现功能的函数。

二、在VC6.0下的FileView下的mmi_app files下add file to project。

三、将文件加入整个项目。

make\plutommi\mmi_app\mmi_app.inc 加一行/I"..\..\plutommi\mmi\MyApp\MyAppInc"make\plutommi\mmi_app\mmi_app.lis 加一行/I "..\..\plutommi\mmi\MyApp\MyAppSrc\MyAppSrc.cmake\plutommi\mmi_app\mmi_app.pth 加一行/I"..\..\plutommi\mmi\MyApp\MyAppSrc四、程序开关部分1、在plutommi\mmi\Inc\MMI_features_switch.h末尾添加#define CFG_MMI_MYAPP (__ON__)2、在plutommi\Customer\CustResource\PLUTO_MMI\MMI_features_switchPLUTO.h末尾添加#defineCFG_MMI_MYAPP (__ON__)3、在plutommi\Customer\CustResource\TELSDA25_08A_GEMINI_MMI\MMI_features_switch TELSDA25_08A_GEMINI.h末尾添加#define CFG_MMI_MYAPP (__ON__)其中,TELSDA25_08A_GEMINI_MMI为MTK源码的工程名4、在MTK\plutommi\mmi\Inc\MMI_features.h末尾添加#ifdefined(CFG_MMI_MYAPP) &&((CFG_MMI_MYAPP==__ON__)||(CFG_MMI_MYAPP== __AUTO__))#ifndef __MMI_MYAPP__#define __MMI_MYAPP__#endif#endif五、模拟器编译环境下添加头文件F:\sss\MTK\W180A_S_DriveOnly\MoDIS\mmi_app\mmi_app.ini下添加一行/I "..\..\plutommi\mmi\MyApp\MyAppInc"可以make xxxx gprs new了,如果编译成功,模拟器编不过出现错误1083,就查查看看在MoDIS会不会有重复的MyAppSrc.c文件,或者模拟器下编译环境有没有添加头文件。

mtk指南

mtk指南

mtk指南.txt爱,就大声说出来,因为你永远都不会知道,明天和意外,哪个会先来!石头记告诉我们:凡是真心爱的最后都散了,凡是混搭的最后都团圆了。

你永远看不到我最寂寞的时候,因为在看不到你的时候就是我最寂寞的时候!1. 如何确定你的山寨机是否支持MRP 软件?方法1:待机下输入输入*#777755999#或*#220807# 有反应的,就应该可以方法2:看看手机内存卡里是否存在[mulgame][mythroad][downdata/MR]三个中其中一个文件夹,(也就是mrp文件的地方,有少数手机的文件夹名称不是这样,有的还是中文的,例如长虹)2.把以下这几文件放进MulGame或者mythroad文件夹1.applist.mrp --应用程序接口文件2.dsm_gm.mrp --直接启动应用列表软件3.yyrj.mrp --应用软件列表文件西猫的手机这三个文件不在一个文件夹因为山寨大军的机型超级多无法总结出一个特定的规律只能根据我遇见的情况总结各位如果手机里没有这些文件而按指令码有反映那么请你在手机里自建一个MulGame文件夹或者mythroad文件夹————————————手机文件夹中的READER,cmsbrw,Phonebook是什么意思?Audio :铃声文件夹,用来储存铃声 Received :接收到的文件夹,别人发给你的文件信息都存在这里 Images :图片文件夹,用来储存待机画、屏保之类的 mms :用来存MMS信息的,就是彩信 Phbimage :这是个隐藏的文件夹,这个文件夹放着连接你的来电大头贴的的图片video :视频文件夹 photos :照片文件夹,储存相机拍摄的照片 my music :音乐文件夹brs :也是个隐藏文件,我还不清楚是做什么用的 download :下载的文件夹,用手机上网下载的文件存在这里 Ebook:存放电子书的,也就是TXT文件————————————MTK 6225 工程指令集关于MTK检测指令:目前MP3&MP4手机市场上的手机基本都只换了外壳,主板和平台就那么几个配套公司做的,拿到机器,输入版本指令便可以知道是那家的主板和平台了.为了很好的使用MTK智能王,在拿到用户手机时,通过指令来鉴别手机是否是MTK平台的手机就很有必要了,以下指令只要有一项指令能符合,那么就可以鉴别该手机是MTK平台的.MTK恢复原厂初始密码:112235E8D2H ---- 数据(数字):*#3646633#工程模式 *#66*#35E8E4H ---- 数据(数字):*#87# AUTO TEST35E8EAH ---- 数据(数字):*#33778#序号289BFCH ---- 数据(数字):*#0044#设为英文289C44H ---- 数据(数字):*#0086#设为简体2BA334H ---- 数据(数字):*#0886#繁体中文以下测试指令根据不同手机方案公司指令有所不同:方案配套指令 TEST指令MTK SIMCOM *#189# *#889#MTK 龙旗 *#8375#MTK手机工程模式和测试模式指令工程模式和测试模式指令工程模式: *#3646633# *#3656565#测试模式: *#66*#老机型US*#864322# 原厂设置*#86428# 自动测试*#864364# 工程模式*#864798# 查版本ENEV*#66*# 手动测试*#87# 自动测试*#3646633# 工程模式*#8375# 查版本*#0413*# 元件信息*#28526*# 防盗指令密码000000*#159# 软件测试*#951# 初始化*#357# 软件版本*#753#硬件测试*#3698741#选出厂设置下面是关于MTK芯片工程模式的介绍。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

首先在XXX\plutommi\mmi目录下新建新模块目录,及新建一个文件夹如Yaojian,下面的目录如图所示,分别为头文件目录INC,资源文件RES,源文件SRC
Inc下
YaojianResDef.h :存放本程序所需要的类型、结构、常量的定义
YaojianProt.h :存放本程序中的所有函数的声明,此文件只被本文件的源程序加载
YaojianGprot.h :存放函数声明,此文件用于别的程序加载,声明的都是对外接口
YaojianDefs.h :用于存放本资源的ID的定义接口
这些文件都不是必须的,只是较规范的做法,可以按照自己的需求来添加
Src下
Res下
.res文件可以在其它模块直接复制一个过来,如下图所示:红框内的
APP id
STRING id
IMAGE id
SCREEN id
MENU id
需要按自己需求更改
APP id 统一在mmi_res_prj_def.h中定义:
首先在
RESOURCE_BASE_ENUM_BEGIN()

RESOURCE_BASE_ENUM_END()
之间添加自己程序ID的定义
然后在
RESOURCE_BASE_TABLE_BEGIN()

RESOURCE_BASE_TABLE_END()
之间添加程序块的定义
STRING资源要在下面文件中添加,然后按上图.res文件中个格式在里面定义
IMAGE资源在目录
下对应分辨率的压缩包中添加,先解压,添加进去在压缩回来,然后按上图.res文件格式,写好路径,完成定义。

Menu的定义,由于我是把菜单添加在EXTRA菜单下,所以在mainmenures.res做如下添加
/* EXTRA */
<MENU id="MAIN_MENU_EXTRA_MENUID" type="APP_MAIN"
str="MAIN_MENU_EXTRA_TEXT" img="MAIN_MENU_EXTRA_ICON"
highlight="highlight_mainmenu_extra">
/* 下面是添加的代码
#if defined __YAOJIAN__
<MENUITEM_ID>MAIN_MENU_Y AOJIAN</MENUITEM_ID>
#endif
*/
</MENU>
具体.res文件中tag的用法,请参照10A_MMI_Resource_Training.pdf 这个文档
继续:
在make目录下新建yaojian 文件夹,在里面新建一个.mak的文件
也是在同目录其它模块copy一个过来,在里面做相应的修改,就是把你的源文件,头文件目录,源文件目录等添加进去。

添加开关:
{你的项目}.mak 文件中添加
然后在option.mak文件中添加
最后就是在你的头文件和源文件中添加具体代码了,从别处copy吧。

注意在相应文件中#include 对应的头文件。

相关文档
最新文档