技术领域\n本发明属于移动电话技术领域,更具体地说涉及短信息、通话记录和 电话簿菜单加密的手机。\n 背景技术\n已有的手机,其短信息、通话记录和电话簿等菜单均没有加密。也就 是说,如果手机被别人借用,或者因随意放置、供人观赏、不慎丢失等原 因落入他人手中时,手机上的短信息、通话记录和电话簿等菜单极易被他 人进入阅读。这类短信息、通话记录和电话簿等信息可能涉及机主的军政 机密、商业秘密、个人隐私等不宜为他人所知的内容。因此,轻则会因个 人隐私被暴光而导致尴尬,重则会因泄密而给企业、单位甚至国家带来重 大损失。\n本发明的目的,就在于克服上述缺点和不足,提供一种可以防止他人 进入机主的短信息、通话记录和电话簿等菜单,避免个人隐私、商业秘密、 军政机密等为他人所知,使用方便、操作简单的短信息、通话记录和电话 簿菜单加密的手机。\n 发明内容\n为了达到上述目的,本发明由用户模组,与用户模组互连的键盘和液 晶显示器和振铃,与用户模组互连的系统模组,与系统模组互连的SIM卡 电路、用户识别模块、电池、充电器、天线、发射与接收电路、话筒、听 筒以及数/模和模/数转换电路构成。系统模组由ULYSSE17UBGA型超大 规模集成电路组成,它还和KSA3240VTA型存储器互连。ULYSSE17UBGA 型超大规模集成电路和KSA3240VTA型存储器均为专用集成电路,性能优 良,设计合理,价格也较便宜。\n上述部件中还包括下列程序输入部件:\n键入设置-安全检查-保护功能的键盘;\n用于当不需加密时输入默认密码设定程序的存储器;\n用于当需要加密时输入短信息、通话记录和电话簿菜单选项程序的存 储器;\n用于输入变更或不变更密码选项程序的存储器;\n如不需变更时用于输入确认程序的存储器;\n如需变更密码时用于输入新密码程序的存储器;\n用于输入确认新密码程序的存储器;\n用于输入进入设定菜单时要求输入密码的程序的存储器;\n用于输入确认密码程序的存储器;\n用于输入密码错误时禁止进入程序的存储器;\n用于输入密码正确时进入菜单程序的存储器;\n上述程序的输入均通过ULYSSE17UBGA型超大规模集成电路及其内 含的微处理器并由其进行处理。\n将上述加密程序输入、固化在上述电子硬件里,便使手机具有了短信 息、通话记录和电话簿菜单加密的功能。机主可自行设定4位保护密码, 使得进入短信息、通话记录和电话簿等菜单时需输入密码,经确认无误时 才能进入所保护的菜单。\n本发明的目的就是这样实现的。\n本发明提供了一种可以防止他人进入机主的短信息、通话记录和电话 簿等菜单,避免个人隐私、商业秘密、军政机密等为他人所知,保密性强, 使用方便、操作简单的短信息、通话记录和电话簿菜单加密的手机。它可 广泛应用于移动通讯中。\n 附图说明\n图1为本发明系统模组的电子线路原理图。\n图2为存储器的原理图。\n图3为其程序流程图。\n图1~图2所示,本发明系统模组由ULYSSE17UBGA型超大规模集成 电路1及其外围电路组成,它还和KSA3240VTA型存储器2互连。\n图3示出了本发明的流程。进入设置-安全设定-保护功能后,接着是 加密选项的“是”或“否”。如选择“否”,则各菜单的保护功能设定全部 关闭,亦即默认密码“0000”。此时进入待机状态,或直接正常进入菜单。 如选择加密选项的“是”,菜单的保护功能设定为“开”,则进入短信息/ 通话记录/电话簿菜单/改变密码选项。接着要求输入密码确认。如输入密码 错误,则提示密码错误,无法进入菜单。如输入密码正确,则进入待机状 态或直接正常进入菜单。如进入密码改变选项,则先要求输入密码确认。 如输入密码错误,则提示密码错误,无法改变密码。如输入密码正确,则 输入新密码,然后进入新密码确认。接着进入待机状态或直接正常进入菜 单。\n保护功能的密码设定为“开”时,进入下述所选菜单时应进行密码确 认:进入主菜单“短信息”时应确认密码;进入主菜单“通话记录”时应 确认密码:待机状态下,按快捷健(下方向键)进入“短信息”时应确认 密码;待机状态下,按右软健进入“电话簿”时应确认密码;待机状态下, 按快捷健(上方向键)进入“电话簿列表”时应确认密码;新短信存在时, 待机状态下为了读取信息按快捷健(左软键),进入信息读取模式时应确认 密码;待机状态下,按快捷健(左、右方向键,拨号键)进入“通话记录” 时应确认密码。\n 具体实施方式\n实施例1.一种短信息、通话记录和电话簿菜单加密的手机。它由用 户模组,与用户模组互连的键盘和液晶显示器和振铃,与用户模组互连的 系统模组,与系统模组互连的SIM卡电路、用户识别模块、电池、充电器、 天线、发射与接收电路、话筒、听筒以及数/模和模/数转换电路构成。系统 模组由ULYSSE17UBGA型超大规模集成电路组成,它还和KSA3240VTA 型存储器互连。\n上述部件中包括下列程序输入部件:键入设置-安全检查-保护功能的 键盘;用于当不需加密时输入默认密码设定程序的存储器;用于当需要加 密时输入短信息、通话记录和电话簿菜单选项程序的存储器;用于输入变 更或不变更密码选项程序的存储器;如不需变更时用于输入确认程序的存 储器;如需变更密码时用于输入新密码程序的存储器;用于输入确认新密 码程序的存储器;用于输入进入设定菜单时要求输入密码的程序的存储器; 用于输入确认密码程序的存储器;用于输入密码错误时禁止进入程序的存 储器;用于输入密码正确时进入菜单程序的存储器;上述程序的输入均通 过ULYSSE17UBGA型超大规模集成电路及其包括的微处理器并由其进行 处理。实施例1保密性强,使用方便、操作简单,可给短信息、通话记录 和电话簿菜单加密。它可广泛应用于移动通讯中。\n实施例1的主要源程序如下:\n1.定义和库文件\ntypedef enum { PSCR_PW_NO_NEED PSCR_PW_OK, PSCR_PW_FAIL, PSCR_PW_CANCEL, PSCR_PW_FLIPCLOSED, PSCR_PW_HUP }PhoneSecurityCheckResult; #define MAX_DIGIT_PSC 4 #define PHONESECURITY_SMS 0x01 //use each bit values #define PHONESECURITY_PB 0x02 #define PHONESECURITY_RECENTCALLS 0x04 #define PHONESECURITY_CALENDAR 0x08 typedef void(*sMmiPhoneSecurityCB)(PhoneSecurityCheckResult res); MfwWin*StartPhoneSecurityCheck(MfwWin*callWin,UINT8 checkItem, sMmiPhoneSecurityCB cbPSC); MfwWin*StartPhoneSecurityCheckAlways(MfwWin*callWin,sMmiPhoneSecurityCB cbPSC); MfwWin*PSC_NewPW_Editor(MfwWin*parentWin); MfwWin*StartPhoneSecurityCheckAlwaysManualDestroy(MfwWin*callWin, sMmiPhoneSecurityCB cbPSC); #include<stdio.h> #include<string.h> #define ENTITY_MFW #if defined(NEW_FRAME) #include"typedefs.h" #include"vsi.h" #include"custom.h" #include"gsm.h" #else #include"stddefs.h" #include"custom.h" #include"gsm.h" #include"vsi.h" #endif #include"p_sim.h" #include"mfw_sys.h" #include"mfw_mfw.h" #include"mfw_kbd h" #include"gdi.h" #include"dspl.h" #include"mfw_lng.h" #include"mfw_icn.h" #include"mfw_mnu.h" #include"mfw_win.h" #include"mfw_tim.h" #include"mfw_edt.h" #include"mfw_sat.h" #include"mmidummy.h" #include"MmiResources.h"//JVJE #include"mmieditor.h" #include"mmiffs.h" #include"mmisat_i.h" #include"mmibookutils.h" #include"smmiPhoneSecurity.h" #define PSC_PW_BUFFER_SIZE 20 char gPhoneSecCodeBuff[PSC_PW_BUFFER_SIZE]={0}; char gPhoneSecCodeNew[PSC_PW_BUFFER_SIZE]={0}; sMmiPhoneSecurityCB gPSC_Callback; MfwHdr*gSecurityEditorWinHdr; static MfwWin*PSC_ConfirmPW_Editor(MfwWin*parentWin); #if0 //Phone PW Checking!! #endif\n2.保护功能“关”时的密码默认\nstatic void cb_PSC_Check(T_MFW_HDR*win,UINT32identifier,SHORT reason) { switch(reason) { case INFO_KCD_LEFT://OK Pressed! { char pcmPW[5]={0}; char masterPW[5]={′5′,′4′,′6′,′0′}; strncpy(pcmPW,(char*)(gPCM_MMI->phone_passwd),MAX_DIGIT_PSC); gPhoneSecCodeBuff[4]=0; if(strncmp(pcmPW,gPhoneSecCodeBuff,MAX_DIGIT_PSC)EQ NULL OR strncmp(masterPW,gPhoneSecCodeBuff,MAX_DIGIT_PSC) EQ NULL)//password OK (*gPSC_Callback)(PSCR_PW_OK); else (*gPSC_Callback)(PSCR_PW_FAIL); break; } case INFO_KCD RIGHT://DELETE Pressed! (*gPSC__Callback)(PSCR_PW_CANCEL); break; case INFO_KCD HUP://END Pressed! (*gPSC_Callback)(PSCR_PW_HUP); break; case INFO__KCD_FLIP://FLIP Closed! (*gPSC_Callback)(PSCR_PW_FLIPCLOSED); break; default:break; } }\n3.保护功能“开”时的密码确认\nstatic MfwWin*createPhoneSecurityEditor(MfwWin*parentWin,BOOL destroyFlag) { T_EDITOR_DATA editor_data={0}; memset(gPhoneSecCodeBuff,0,PSC_PW_BUFFER_SIZE);//password buffer clear bookSetEditAttributes(5,Mmi_layout_third_line(),116,25,0, FONTID_Century_Gothic_24, edtCurBar1ledtCenterAlign,0,(char*)gPhoneSecCodeBuff,MAX_DIGIT_PSC, &(editor_data.editor_attr)); editor_data.hide=TRUE; editor_data.TextId=TxtEnterPassword; editor_data.LeftSoftKey=TxtSoftOK; editor_data.AlternateLeftSoftKey=TxtNull; editor_data.RightSoftKey=TxtSoftBack; editor_data.Identifier=NULL; editor_data.mode=E_EDIT_DIGITS_MODE; editor_data.TextString=NULL; editor_data.min_enter=MAX_DIGIT_PSC; editor_data.timeout=FOREVER; editor_data.Callback=(T_EDIT_CB)cb_PSC_Check; editor_data.destroyEditor=destroyFlag; gSecurityEditorWinHdr=editor_number_create_new(parentWin->hWnd,&editor_data ); return gSecurityEditorWinHdr->win; }\n4.密码确认后的启动和运行\nMfwWin*StartPhoneSecurityCheck(MfwWin*callWin,UINT8checkItem, sMmiPhoneSecurityCB cbPSC) { MfwWin securityDialogWin; if(cbPSC EQ NULL) retum NULL; if(!(gPCM_MMI->phone_securityStatus & checkItem))//′Phone Security Check′ (*cbPSC)(PSCR_PW_NO NEED); gPSC_Callback=NULL; return NULL; } else//PSC′On′ { gPSC_Callback=cbPSC; return createPhoneSecurityEditor(callWin,TRUE); } MfwWin*StartPhoneSecurityCheckAlways(MfwWin*callWin,sMmiPhoneSecurityCB cbPSC) { MfwWin securityDialogWin; if(cbPSC EQ NULL) return NULL;//Callback gPSC_Callback=cbPSC; return createPhoneSecurityEditor(callWin,TRUE); } ****************/ MfwWin*StartPhoneSecurityCheckAlwaysManualDestroy(MfwWin*callWin, sMmiPhoneSecurityCB cbPSC) { MfwWin securityDialogWin; if(cbPSC EQ NULL) return NULL;//Callback. gPSC_Callback=cbPSC; return createPhoneSecurityEditor(callWin,TRUE); } #if0//Phone PW Change!! #endif\n5.新密码的设定和确认\nstatic void cb_PSC_NewPW(T_MFW_HDR*win,UINT32identifier,SHORT reason) { sWitch(reason) { case INFO_KCD_LEFT://OK Pressed! { memset((char*)gPhoneSecCodeNew,0,PSC_PW_BUFFER_SIZE); strncpy(gPhoneSecCodeNew,gPhoneSecCodeBuff,MAX_DIGIT_PSC); //SendMessage(gSecurityEditorWinHdr->win,WM_COMMAND, EV_EDITOR_DESTROY,NULL); PSC_ConfirmPW_Editor((MfwWin*)getwBookMenuWin());//Create comfirm editor break; } smmiPhoneSecurity case INFO_KCD_RIGHT://DELETE Pressed! //SendMessage(gSecurityEditorWinHdr->win,WM_COMMAND, EV_EDITOR_DESTROY,NULL); NotifyDialog_text(NULL,(INT8*)MmiRsrcGetText(TxtNotChanged),3,NULL); break; case INFO_KCD_FLIP://FLIP Closed! case INFO_KCD_HUP://END Pressed! SendMessage(getwBookMenuWin(),WM_EXIT,NULL,NULL); break; default:break; } } ****************/ MfwWin*PSC_NewPW_Editor(MfwWin*parentWin) { T_EDITOR_DATA_editor_data={0}; memset(gPhoneSecCodeBuff,0,sizeof(gPhoneSecCodeBuff));//password buffer clear bookSetEditAttributes(5,Mmi_layout_third_line(),116,25,0, FONTID_Century_Gothic_24, edtCurBar1ledtCenterAlign,0,(char*)gPhoneSecCodeBuff,MAX_DIGIT_PSC, &(editor_data.editor_attr)); editor_data.hide=TRUE; editor_data.TextId=TxtNewPassword; editor_data.LeftSoftKey=TxtSoftOK; editor_data.AlternateLeftSoftKey=TxtNull; editor_data.RightSoftKey=TxtSoftBack; editor_data.Identifier=NULL; editor_data.mode=E_EDIT_DIGITS_MODE; editor_data.TextString=NULL; editor_data.min_enter=MAX_DIGIT_PSC; editor_data.timeout=FOREVER; editor_data.Callback=(T_EDIT_CB)cb_PSC_NewPW; editor_data.destroyEditor=TRUE; gSecurityEditorWinHdr=editor_number_create_new(parentWin->hWnd,&editor_data ); return gSecurityEditorWinHdr->win; } ****************/ static void cb_PSC_ConfirmPW(T_MFW_HDR*win,UINT32identifier,SHORT reason) { switch(reason) { case INFO_KCD_LEFT://OK Pressed! { char ConfirPW[5]={0}; strncpy(ConfirPW,gPhoneSecCodeBuff,MAX_DIGIT_PSC); //SendMessage(gSecurityEditorWinHdr->win,WM_COMMAND, EV_EDITOR_DESTROY,NULL); if(strcmp(ConfirPW,gPhoneSecCodeNew)EQ 0)//ok! { strncpy((char*)gPCM_MMI->phone_passwd,ConfirPW,MAX_DIGIT_PSC); Req_PCMMMI_to_PCM(); NotifyDialog_text(NULL,(INT8*)MmiRsrcGetText(TxtChanged),3,NULL); } else//(new code)!=(confirm code) { NotifyDialog_text(NULL,(INT8*)MmiRsrcGetText(TxtFailed),3,NULL); } break; } case INFO_KCD_RIGHT:c//DELETE Pressed! //SendMessage(gSecurityEditorWinHdr->win,WM_COMMAND, EV_EDITOR_DESTROY,NULL); NotifyDialog_text(NULL,(INT8*)MmiRsrcGetText(TxtNotChanged),3,NULL); break; case INFO_KCD_FLIP://FLIP Closed! case INFO_KCD_HUP://END Pressed! SendMessage(getwBookMenuWin(),WM_EXIT,NULL,NULL); break; default:break; } }\n6.密码转换后的运行\nstatic MfwWin*PSC_ConfirmPW_Editor(MfwWin*parentWin) { T_EDITOR_DATA editor_data={0}; memset(gPhoneSecCodeBuff,0,sizeof(gPhoneSecCodeBuff));//password buffer clear bookSetEditAttributes(5,Mmi_layout_third_line(),116,25,0, FONTID_Century_Gothic_24, edtCurBar1ledtCenterAlign,0,(char*)gPhoneSecCodeBuff, MAX_DIGTT_PSC,&(editor_data.editor_attr));, editor_data.hide=TRUE; editor_data.TextId=TxtConfirmPassword; editor_data.LeftSoftKey=TxtSoftOK; editor_data.AlternateLeftSoftKey=TxtNull; editor_data.RightSoftKey=TxtSoftBack; editor_data.Identifier=NULL; editor_data.mode=E_EDIT_DIGITS_MODE; editor_data.TextString=NULL; editor_data.min_enter=MAX_DIGIT_PSC; editor_data.timeout=FOREVER; editor_data.Callback=(T_EDIT_CB)cb_PSC_ConfirmPW; editor_data.destroyEditor=TRUE; gSecurityEditorWinHdr=editor_number_create_new(parentWin->hWnd,&editor_data ); return gSecurityEditorWinHdr->win; }