(57)【要約】【課題】  携帯電話機内のメモリにロード（ソフトロード）するためのプログラムが記憶された外部メモリが流出した場合でも、第三者がこの流出した外部メモリを用いて行う不正なソフトロードを極力防止可能とする。【解決手段】  ソフトロードするプログラムが記憶された外部メモリには、当該外部メモリに記憶されているプログラムのソフトロードを許可する期間を示す有効期間情報が付されている。この外部メモリからソフトロードを行う場合、携帯電話機は、ＲＴＣで計時されている現在時刻を取得し、この取得した現在時刻の日付が、上記外部メモリに付されている有効期間内である場合のみ、ソフトロードを実行する。これにより、外部メモリが流出した場合でも、この外部メモリを用いたソフトロードが実行可能な期間を、上記有効期間内に制限することができ、第三者が不正にソフトロードを実行する不都合を極力防止することができる。【選択図】  図６
2009140398.tif 000002
【特許請求の範囲】
【請求項１】
所定の機器のメモリ装着部に対して着脱自在とされた外部メモリであって、
上記機器内のメモリにロードするためのプログラムと、
上記機器内のメモリに対する上記プログラムのロードを実行するように、該機器の制御手段を機能させるためのロード実行制御プログラムと、
上記プログラムを記憶させた時間情報であるタイムスタンプ情報と、
上記プログラムのロードを許可する期間を示す有効期間情報とが記憶されており、
上記ロード実行制御プログラムは、
上記機器の計時手段から現在時刻情報を取得するプログラムと、
上記取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間内であった場合に、上記機器内のメモリに対する上記プログラムのロードを実行するように上記機器の制御手段を機能させるプログラムと、
上記取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記機器内のメモリに対する上記プログラムのロードの実行を拒否するように上記機器の制御手段を機能させるプログラムとを含むこと
を特徴とする外部メモリ。
【請求項２】
請求項１に記載の外部メモリであって、
上記有効期間情報の有効或いは無効を示す有効／無効情報が記憶されており、
上記ロード実行制御プログラムは、
上記有効／無効情報が上記有効期間情報の無効を示す場合、上記計時手段から取得した現在時刻が、上記有効期間情報で示される有効期間内であるか否かの確認処理を行うことなく、上記機器内のメモリに対する上記プログラムのロードを実行するように上記機器の制御手段を機能させるプログラムと、
上記有効／無効情報が上記有効期間情報の有効を示す場合、上記計時手段から取得した現在時刻が、上記有効期間情報で示される有効期間内であるか否かの確認処理の結果に応じて、上記機器内のメモリに対する上記プログラムのロードの実行、或いは該ロードの拒否を行うように上記機器の制御手段を機能させるプログラムとを含むこと
を特徴とする外部メモリ。
【請求項３】
請求項１又は請求項２に記載の外部メモリであって、
固有の識別情報が記憶されており、
上記ロード実行制御プログラムは、
上記識別情報を取得するように上記機器の制御手段を機能させるプログラムと、
上記機器内に設けられており、上記プログラムのロードに用いられる各外部メモリの識別情報がリスト化されて記憶された外部メモリ識別情報リストを、上記取得した識別情報に基づいて参照することで、上記取得した識別情報が上記外部メモリ識別情報リストに存在するか否かを判別するように上記機器の制御手段を機能させるプログラムと、
上記取得した識別情報が上記外部メモリ識別情報リストに存在しない場合に、上記機器の計時手段に対して、現在時刻の日付よりも大きく過去に遡った所定の日付の時間情報を設定するように上記機器の制御手段を機能させるプログラムと、
上記機器の計時手段に対して設定された上記所定の日付の時間情報と上記有効期間情報とを加算処理することで、上記プログラムのロードを許可する新たな有効期間を算出するように上記機器の制御手段を機能させるプログラムと、
上記所定の日付の時間情報が設定された上記機器の計時手段から現在時刻情報を取得し、この取得した現在時刻情報で示される現在時刻が、上記新たに算出した有効期間内であった場合に、上記機器内のメモリに対する上記プログラムのロードを実行するように上記機器の制御手段を機能させるプログラムとを含むこと
を特徴とする外部メモリ。
【請求項４】
請求項１又は請求項２に記載の外部メモリであって、
上記ロードするプログラムのバージョン情報が記憶されており、
上記ロード実行制御プログラムは、
上記機器内のメモリにロード済みのプログラムのバージョン情報を取得するように上記機器の制御手段を機能させるプログラムと、
上記ロードするプログラムのバージョン情報と、上記取得したロード済みのプログラムのバージョン情報とを比較し、上記ロードするプログラムの方が新しいプログラムである場合に、上記機器内のメモリに対する上記プログラムのロードを実行するように上記機器の制御手段を機能させるプログラムとを含むこと
を特徴とする外部メモリ。
【請求項５】
当該携帯電話機の内部に設けられたメモリと、
上記メモリにロードするためのプログラムと、上記メモリに対する上記プログラムのロードの実行を制御するためのロード実行制御プログラムと、上記プログラムを記憶させた時間情報であるタイムスタンプ情報と、上記プログラムのロードを許可する期間を示す有効期間情報とが記憶された外部メモリが装着されるメモリ装着部と、
計時を行う計時手段と、
上記外部メモリに記憶されている上記ロード実行制御プログラムに基づいて動作することで、上記計時手段から現在時刻情報を取得し、この取得した現在時刻情報で示される現在時刻が、上記外部メモリに記憶されている上記タイムスタンプ情報及び上記有効期間情報で示される有効期間内であった場合に、上記外部メモリに記憶されている上記プログラムを、当該携帯電話機の内部に設けられた上記メモリにロードし、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記内部のメモリに対する上記プログラムのロードを拒否する制御手段と
を有する携帯端末装置。
【請求項６】
請求項５に記載の携帯端末装置であって、
無線通信ネットワークを介して無線通信を行うための無線通信手段を有し、
上記制御手段は、上記無線通信ネットワークに対して無線通信回線の接続を図るように上記無線通信手段を制御した際に該無線通信ネットワーク介して取得される現在時刻情報を上記計時手段に設定すること
を特徴とする携帯端末装置。
【請求項７】
請求項６に記載の携帯端末装置であって、
上記制御手段は、上記無線通信ネットワークに対する無線通信回線の接続を図る機会が無かったことで、上記計時手段に対して現在時刻が未設定の場合、現在時刻の日付よりも大きく過去に遡った所定の日付の時間情報を上記計時手段に設定し、この計時手段に設定した上記所定の日付の時間情報に上記有効期間情報を加算処理することで有効期間を算出すると共に、上記計時手段から現在時刻情報を取得し、この取得した現在時刻情報で示される現在時刻が、上記算出した有効期間内であった場合に、上記外部メモリに記憶されている上記プログラムを、当該携帯電話機の内部に設けられた上記メモリにロードし、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記算出した有効期間外であった場合に、上記内部のメモリに対する上記プログラムのロードを拒否すること
を特徴とする携帯端末装置。
【請求項８】
所定の機器のメモリ装着部に装着された外部メモリに記憶されているプログラムを、該機器の内部に設けられたメモリにロードするためのプログラムのロード方法であって、
上記内部のメモリにロードするためのプログラムと、上記メモリに対する上記プログラムのロードの実行を制御するためのロード実行制御プログラムと、上記プログラムを記憶させた時間情報であるタイムスタンプ情報と、上記プログラムのロードを許可する期間を示す有効期間情報とを上記外部メモリに記憶し、
制御手段が、上記外部メモリに記憶されている上記ロード実行制御プログラムに基づいて動作することで、計時を行う計時手段から現在時刻情報を取得し、この取得した現在時刻情報で示される現在時刻が、上記外部メモリに記憶されている上記タイムスタンプ情報及び上記有効期間情報で示される有効期間内であった場合に、上記外部メモリに記憶されている上記プログラムを上記内部のメモリにロードし、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記内部のメモリに対する上記プログラムのロードを拒否すること
を特徴とするプログラムのロード方法。
【請求項９】
所定の機器のメモリ装着部に対して着脱自在とされた外部メモリに記憶されているロード対象プログラムを、上記機器の内部に設けられたメモリにロードするためのソフトロードプログラムであって、
上記機器の計時手段から現在時刻情報を取得する現在時刻取得手段としてコンピュータを機能させ、
コンピュータを上記現在時刻取得手段として機能させることで、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記外部メモリに記憶されている、上記外部メモリに対して上記ロード対象プログラムを記憶させた時間情報であるタイムスタンプ情報、及び上記ロード対象プログラムのロードを許可する期間を示す有効期間情報で示される有効期間内であった場合に、上記機器内のメモリに対する上記ロード対象プログラムのロードを実行し、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記機器内のメモリに対する上記ロード対象プログラムのロードの実行を拒否する制御手段としてコンピュータを機能させること
を特徴とするソフトロードプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部メモリに記憶された所定のプログラムを、例えば携帯電話機、ＰＨＳ電話機（PHS：Personal Handyphone System）、ＰＤＡ装置（PDA：Personal Digital Assistant）等の携帯機器に対してロードする際に用いて好適な外部メモリ、携帯端末装置、プログラムのロード方法、及びソフトロードプログラムに関し、特に、外部メモリに記憶されているプログラムのロードを許可する期間を示す有効期間を設定しておき、この有効期間の経過後は、上記プログラムのロードを拒否することで、当該外部メモリが流出した際に、第三者により不正に上記プログラムのロードが行われる不都合を極力防止した外部メモリ、携帯端末装置、プログラムのロード方法、及びソフトロードプログラムに関する。
【背景技術】
【０００２】
従来、ソフトウェアプログラムの不正使用を防止する技術として、特開２００４−１０２３３５号公報（特許文献１）に開示されたソフトウェアのライセンス管理方法が知られている。このソフトウェアのライセンス管理方法の場合、メディアに格納されたインストーラ作成ソフトウェアを実行したユーザ装置は、パッケージソフトウェアのインストールを行う際に、各メディア毎のインストールの管理を行っている販売元サーバに対してインストーラのダウンロード要求を行う。
【０００３】
販売元サーバは、このダウンロード要求がなされると、現在、このダウンロード要求がなされているユーザ装置に対して、パッケージソフトウェアのインストールを行う際に必要となるインストーラが既に配信済みであるか否かを判別する。このインストーラは、一つのメディアに対して一つのインストーラ等のように、各メディア毎に関連付けされており、販売元サーバは、そのメディアに対するインストーラの配信を行っていないものと判別した場合に、上記ユーザ装置に対してインストーラを配信する。ユーザ装置は、この販売元サーバから配信されたインストーラを用いて、メディアに格納されているパッケージソフトウェアをインストールする。
【０００４】
販売元サーバは、このインストーラを配信したメディアを、上記パッケージソフトウェアのインストールが完了したメディアとして管理し、以後、当該メディアに対するインストーラの配信要求がなされた場合には、この配信要求を拒否する。これにより、一方のユーザ装置でパッケージソフトウェアのインストールがなされたメディアを、他方のユーザ装置に装着し、この他方のユーザ装置から販売元サーバに対してインストーラのダウンロード要求がなされた場合でも、当該メディアに対するインストーラは配信済みであることから、上記他方のユーザ装置に対するインストーラの配信を拒否することができ、ソフトウェアプログラムの不正使用を防止することができる。
【０００５】
ここで、今日において広く普及している携帯電話機は、工場から出荷される際に、ＵＳＢケーブル等を介して接続されたパーソナルコンピュータ装置から、例えば通信プログラム等の所定のソフトウェアプログラムがロード（＝ソフトロード）された後に出荷されるのが一般的であったが、近年においては、外部メモリ装着部を有する携帯電話機も多いため、上記所定のソフトウェアプログラムを記憶させた外部メモリ１００を上記外部メモリ装着部に装着し、この装着した外部メモリからソフトロードを行うことが多くなってきている。
【０００６】
この外部メモリを用いたソフトロードを、ＮＡＮＤブート方式で動作する携帯電話機に基づいて説明する。なお、このＮＡＮＤブート方式は、図８に示すように内部のＮＡＮＤメモリ１０１に格納したプログラムを、ブート時にＳＤＲＡＭ１０２上に展開して実行する動作方式であり、ＣＤＭＡ通信方式で通信を行う携帯電話機に多く用いられている。
【０００７】
まず、携帯電話機に内蔵されたＮＡＮＤメモリ１０１は、図９に示すようにブートプログラムが記憶されたブートプログラム格納領域１１０と、外部メモリからロードされたプログラムコードが格納されるプログラムコード格納領域１１１と、ソフトロードを実行するためのブートローダプログラムが格納されたブートローダ領域１１２と、ユーザデータ領域１０３とを有している。
【０００８】
また、外部メモリには、図１０に示すようにソフトロードを実行制御するためのソフトロード実行プログラム（Progrun）と、ソフトロード実行用のシーケンスファイルと、ロードするプログラムコード（Rombuild.bin）と、同じくロードする文字フォントデータ等の固定データ（Font.bin）とが記憶されている。
【０００９】
図１１のフローチャートは、ソフトロード時におけるユーザ（携帯電話機の生産者）の操作、及び携帯電話機の制御部の動作の流れを示している。ソフトロードを行う場合、携帯電話機の生産者は、この図１１のフローチャートのステップＳ１０１に示すように、上記ソフトロード実行プログラム（Progrun）やロードするプログラムコード（Rombuild.bin）等が記憶された外部メモリを携帯電話機の外部メモリ装着部に装着し、ソフトロードの実行を指定するための所定のキーを押圧操作した状態で電源の投入操作を行う。
【００１０】
携帯電話機の制御部は、この所定のキーが押圧操作された状態における電源の投入操作を検出すると、ソフトロードの実行が指定されたものと認識し、ステップＳ１０２において、外部メモリ装着部に外部メモリが装着済みであることを確認した後、ＮＡＮＤメモリ１０１のブートローダ格納領域１１２に格納されているブートローダプログラムの読み込みを行う。  
制御部は、このブートローダプログラムの読み込むことでブートローダとして機能し、ステップＳ１０３において、図１０に示す外部メモリからソフトロード実行プログラム（Progrun）を読み込み、このソフトロード実行プログラム（Progrun）を図８に示すＳＤＲＡＭ１０２に展開して実行する。そして、ステップＳ１０４において、図１０に示すシーケンスファイルに記述されているコマンドに従って、外部メモリに記憶されているプログラムコード（Rombuild.bin）及び固定データ（Font.bin）をＮＡＮＤメモリ１０１のプログラム格納領域１１１にロードする。これにより、外部メモリを用いたソフトロードが終了する。なお、制御部は、このようなソフトロードが終了した際に、表示部に対して当該ソフトロードの終了メッセージを表示する等の終了通知を行う。
【００１１】
【特許文献１】特開２００４−１０２３３５号公報（第１４頁〜第１６頁、図４、図７）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、外部メモリは取り扱いが容易であり、また、この外部メモリを用いてソフトロードを行うことで、上述のパーソナルコンピュータ装置やＵＳＢケーブル等のソフトロード環境を不要とすることができるのであるが、上記取り扱いが容易であるが故に、紛失や盗難等により、簡単に第三者の手に渡るおそれがある。このような外部メモリの流出があると、携帯電話機に対する管理義務や製造責任を負うことの無い第三者が、簡単に不正なソフトロードを実行可能となり、好ましいことではない。
【００１３】
本発明は、上述の課題に鑑みてなされたものであり、ソフトロード用の外部メモリが第三者の手に渡った場合でも、該第三者による不正なソフトロードを極力防止することができるような外部メモリ、携帯端末装置、プログラムのロード方法、及びソフトロードプログラムの提供を目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る外部メモリは、所定の機器のメモリ装着部に対して着脱自在とされた外部メモリであって、
上記機器内のメモリにロードするためのプログラムと、
上記機器内のメモリに対する上記プログラムのロードを実行するように、該機器の制御手段を機能させるためのロード実行制御プログラムと、
上記プログラムを記憶させた時間情報であるタイムスタンプ情報と、
上記プログラムのロードを許可する期間を示す有効期間情報とを記憶しておき、
上記ロード実行制御プログラムが、
上記機器の計時手段から現在時刻情報を取得するプログラムと、
上記取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間内であった場合に、上記機器内のメモリに対する上記プログラムのロードを実行するように上記機器の制御手段を機能させるプログラムと、
上記取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記機器内のメモリに対する上記プログラムのロードの実行を拒否するように上記機器の制御手段を機能させるプログラムとを備えることで上述の課題を解決する。
【００１５】
また、本発明に係る携帯端末装置は、上述の課題を解決するための手段として、
当該携帯電話機の内部に設けられたメモリと、
上記メモリにロードするためのプログラムと、上記メモリに対する上記プログラムのロードの実行を制御するためのロード実行制御プログラムと、上記プログラムを記憶させた時間情報であるタイムスタンプ情報と、上記プログラムのロードを許可する期間を示す有効期間情報とが記憶された外部メモリが装着されるメモリ装着部と、
計時を行う計時手段と、
上記外部メモリに記憶されている上記ロード実行制御プログラムに基づいて動作することで、上記計時手段から現在時刻情報を取得し、この取得した現在時刻情報で示される現在時刻が、上記外部メモリに記憶されている上記タイムスタンプ情報及び上記有効期間情報で示される有効期間内であった場合に、上記外部メモリに記憶されている上記プログラムを、当該携帯電話機の内部に設けられた上記メモリにロードし、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記内部のメモリに対する上記プログラムのロードを拒否する制御手段と
を有する。
【００１６】
また、本発明に係るプログラムのロード方法は、所定の機器のメモリ装着部に装着された外部メモリに記憶されているプログラムを、該機器の内部に設けられたメモリにロードするためのプログラムのロード方法であって、
上記内部のメモリにロードするためのプログラムと、上記メモリに対する上記プログラムのロードの実行を制御するためのロード実行制御プログラムと、上記プログラムを記憶させた時間情報であるタイムスタンプ情報と、上記プログラムのロードを許可する期間を示す有効期間情報とを上記外部メモリに記憶しておき、
制御手段が、上記外部メモリに記憶されている上記ロード実行制御プログラムに基づいて動作することで、計時を行う計時手段から現在時刻情報を取得し、この取得した現在時刻情報で示される現在時刻が、上記外部メモリに記憶されている上記タイムスタンプ情報及び上記有効期間情報で示される有効期間内であった場合に、上記外部メモリに記憶されている上記プログラムを上記内部のメモリにロードし、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記内部のメモリに対する上記プログラムのロードを拒否することで上述の課題を解決する。
【００１７】
また、本発明に係るソフトロードプログラムは、所定の機器のメモリ装着部に対して着脱自在とされた外部メモリに記憶されているロード対象プログラムを、上記機器の内部に設けられたメモリにロードするためのソフトロードプログラムであって、
上記機器の計時手段から現在時刻情報を取得する現在時刻取得手段としてコンピュータを機能させ、
コンピュータを上記現在時刻取得手段として機能させることで、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記外部メモリに記憶されている、上記外部メモリに対して上記ロード対象プログラムを記憶させた時間情報であるタイムスタンプ情報、及び上記ロード対象プログラムのロードを許可する期間を示す有効期間情報で示される有効期間内であった場合に、上記機器内のメモリに対する上記ロード対象プログラムのロードを実行し、上記計時手段から取得した現在時刻情報で示される現在時刻が、上記タイムスタンプ情報及び上記有効期間情報で示される有効期間外であった場合に、上記機器内のメモリに対する上記ロード対象プログラムのロードの実行を拒否する制御手段としてコンピュータを機能させることで上述の課題を解決する。
【００１８】
このような本発明は、外部メモリに対して有効期間を設定し、計時手段から取得した現在時刻の日付が、外部メモリに設定されている有効期間である場合のみ、該外部メモリに記憶されているプログラムを、機器内部のメモリにロードする。これにより、外部メモリが第三者の手に渡った場合でも、上記有効期間により、プログラムのロードが可能な期間を制限することができ、該第三者による不正なソフトロードを極力防止することができる。
【発明の効果】
【００１９】
本発明は、ソフトロード用の外部メモリが第三者の手に渡った場合でも、該第三者による不正なソフトロードを極力防止することができる。
【発明を実施するための最良の形態】
【００２０】
本発明は、ＣＤＭＡ通信方式(CDMA：Code Division Multiple Access)に対応して無線通信を行う携帯電話機に適用することができる。
【００２１】
［携帯電話機の構成］
この本発明を適用した実施の形態となる携帯電話機は、図１に示すように無線基地局との間で上記ＣＤＭＡ通信方式に基づく音声通話、テレビ電話通話、電子メール、Ｗｅｂデータ（Web：World Wide Web）等の無線通信を行うアンテナ１及び通信回路２と、操作メニュー、電子メール、画像（静止画像及び動画像）等を表示するための表示部３と、所望のメニューの選択操作や後述するソフトロードの実行指定操作や所定のパスワードの入力操作等を行うための操作部４と、受話音声等を出力するためのスピーカ部５と、送話音声等を集音するためのマイクロホン部６と、所望の被写体の静止画像や動画像を撮像するためのカメラ部７と、発着信等を光でユーザに通知するための発光部８（LED：Light Emitting Diode）とを有している。
【００２２】
また、この携帯電話機は、当該携帯電話機の筐体を振動させて発着信等をユーザに通知するためのバイブレーションユニット９と、内蔵電池である二次電池１１や図示しないバッテリから供給される電源で動作して現在時刻をカウントするＲＴＣ１０（Real Time Clock）と、ソフトロード時に外部メモリ１４からのＣＤＭＡ通信プログラムや各種アプリケーションプログラム等がロードされるＮＡＮＤメモリ１２（NAND：NOT-AND）と、プログラム実行時において、ＮＡＮＤメモリ１２から読み出された所定のプログラム等が展開されるＳＤＲＡＭ１３（Synchronous Dynamic Random Access Memory）と、ソフトロード制御用のプログラムやロードするプログラムコード等が記憶された外部メモリ１４が装着される外部メモリインターフェイス１５（外部メモリＩＦ）と、上記ソフトロード制御の他、当該携帯電話機全体の動作を制御する制御部１６とを有している。
【００２３】
すなわち、この実施の形態の携帯電話機は、図８を用いて説明したＮＡＮＤブート方式で動作するようになっており、ソフトロードによりＮＡＮＤメモリ１２に格納した各種プログラムを、ブート時にＳＤＲＡＭ１３上に展開して実行するようになっている。
【００２４】
〔ＮＡＮＤメモリの構成〕
ＮＡＮＤメモリ１２は、図９を用いて説明したようにブートプログラムが格納されたブートプログラム格納領域（１１０）と、プログラム格納領域（１１１）と、ソフトロードを実行するためのブートローダプログラムが格納されたブートローダ領域（１１２）と、ユーザデータ領域（１１３）とを有している。
【００２５】
プログラム格納領域は、後述するソフトロードにより外部メモリ１４からロードされたＣＤＭＡ通信プログラムの他、例えば電子メールの作成や送受信を制御するための電子メール管理プログラム、カメラ部７の撮像制御を行うカメラ制御プログラム、ユーザのスケジュールが登録されたスケジュール帳の管理を行うためのスケジュール帳管理プログラム、電話帳の管理を行うための電話帳管理プログラム、音楽コンテンツの再生を行うための音楽プレーヤプログラム、所望のＷｅｂページの閲覧を行うためのＷｅｂブラウジングプログラム等の各種アプリケーションプログラム等が格納される領域となっている。
【００２６】
また、ユーザデータ領域は、当該携帯電話機のユーザのスケジュールが登録されるスケジュール帳、ユーザの知人や友人等のユーザ名、静止画像（顔写真等）、住所、電話番号、電子メールアドレス、生年月日等が登録された電話帳、音楽プレーヤプログラムに基づいて再生される音楽コンテンツ、カメラ制御プログラムのビューワ機能に基づいて再生される静止画像コンテンツ及び動画像コンテンツ、送受信された電子メールコンテンツ、電話及び電子メールの発着信履歴等が記憶される領域となっている。
【００２７】
〔外部メモリの構成〕
外部メモリ１４には、図２に示すようにソフトロードを実行制御するためのソフトロード実行プログラム（Progrun）と、ソフトロード実行用のシーケンスファイルと、ロードする上記ＣＤＭＡ通信プログラムやカメラ制御プログラム等のプログラムコード（Rombuild.bin）と、同じくロードする文字フォントデータ等の固定データ（Font.bin）とが記憶されている。また、この外部メモリ１４には、上記プログラムコード（Rombuild.bin）や固定データ（Font.bin）を当該外部メモリ１４に記憶させた際にパーソナルコンピュータ装置等から付された時刻情報であるタイムスタンプ情報と、当該外部メモリ１４を用いたソフトロードを許可する期間を示す有効期間情報と、この有効期間情報が有効であるか或いは無効であるかを示す有効／無効情報と、当該外部メモリ１４の固有の識別情報（外部メモリＩＤ）とが記憶されている。
【００２８】
上記ソフトロード実行プログラム（Progrun）、上記プログラムコード（Rombuild.bin）及び上記固定データ（Font.bin）に対しては、例えばＭＤ５（Message Digest Algorithm 5）等のハッシュ関数が付加されたうえで、パーソナルコンピュータ装置から外部メモリ１４に書き込まれるようになっている。
【００２９】
具体的には、上記ソフトロード実行プログラム（Progrun）、上記プログラムコード（Rombuild.bin）及び上記固定データ（Font.bin）を外部メモリ１４に書き込む際、図３に示すようにパーソナルコンピュータ装置２１は、上記ソフトロード実行プログラム（Progrun）に対応するハッシュ関数、上記プログラムコード（Rombuild.bin）に対応するハッシュ関数、及び上記固定データ（Font.bin）に対応するハッシュ関数をそれぞれ計算し、上記ソフトロード実行プログラム（Progrun）に対応するハッシュ関数を該ソフトロード実行プログラム（Progrun）に付加し、上記プログラムコード（Rombuild.bin）に対応するハッシュ関数を該プログラムコード（Rombuild.bin）に付加し、上記固定データ（Font.bin）に対応するハッシュ関数を該固定データ（Font.bin）に付加したうえで外部メモリ１４に書き込む。
【００３０】
パーソナルコンピュータ装置は、外部メモリ１４に対してソフトロード実行プログラム（Progrun）、プログラムコード（Rombuild.bin）及び固定データ（Font.bin）の書き込みを行うと、該ソフトロード実行プログラム（Progrun）やプログラムコード（Rombuild.bin）に付した各ハッシュ関数に基づいて、この外部メモリ１４に書き込んだ上記プログラムコード等の内容と、パーソナルコンピュータ装置側に記憶されている上記プログラムコード等の内容との整合性のチェックを行う。
【００３１】
当該携帯電話機の制御部１６は、ソフトロード時にソフトロード実行プログラム（Progrun）、プログラムコード（Rombuild.bin）、固定データ（Font.bin）を外部メモリ１４から読み込んだ際に、各プログラムやデータに付されているハッシュ関数を分離すると共に、当該ハッシュ関数を分離した後のソフトロード実行プログラム（Progrun）、プログラムコード（Rombuild.bin）、固定データ（Font.bin）に基づいて、新たにハッシュ関数をそれぞれ計算する。そして、この新たに計算した各ハッシュ関数と、上記ソフトロード実行プログラム（Progrun）やプログラムコード（Rombuild.bin）等から分離した各ハッシュ関数とをそれぞれ比較し、両者がそれぞれ同じ値であった場合に、外部メモリ１４から当該携帯電話機のＮＡＮＤメモリ１２に対するソフトロードを実行する。
【００３２】
また、当該携帯電話機の制御部１６は、ＮＡＮＤメモリ１２に対してソフトロード実行プログラム（Progrun）、プログラムコード（Rombuild.bin）及び固定データ（Font.bin）のロードを行うと、該ソフトロード実行プログラム（Progrun）やプログラムコード（Rombuild.bin）に付した各ハッシュ関数に基づいて、このＮＡＮＤメモリ１２にロードした上記プログラムコード等の内容と、外部メモリ１４側に記憶されている上記プログラムコード等の内容との整合性のチェックを行う。
【００３３】
ここで、上記ソフトロード実行プログラム（Progrun）は、外部メモリ１４に記憶されているプログラムコード（Rombuild.bin）や固定データ（Font.bin）を当該携帯電話機のＮＡＮＤメモリ１２にソフトロード制御するための重要なプログラムとなっている。このため、このソフトロード実行プログラム（Progrun）には、上記ハッシュ関数の他、図４に示すように所定のパスワードが付加されている。このパスワードは、例えば当該携帯電話機の生産者等の当該外部メモリ１４を正当に用いる権限を有する者のみが知り得るパスワードとなっている。後述するが、制御部１６は、ソフトロードを実行する前に、このパスワードの入力を求め、当該入力されたパスワードが、ソフトロード実行プログラム（Progrun）に付されているパスワードと一致しない場合は、ソフトロードの実行を拒否するようになっている。これにより、上記重要なプログラムであるソフトロード実行プログラム（Progrun）を、第三者が不正に実行することを防止可能となっている。
【００３４】
［ソフトロード動作］
次に、当該実施の形態の携帯電話機における外部メモリ１４を用いたソフトロード動作を説明する。
【００３５】
〔ブート時の動作〕
まず、図５のフローチャートに、当該実施の形態の携帯電話機におけるブート時の処理の流れを示す。この携帯電話機の制御部１６は、メイン電源の投入操作を検出すると、このフローチャートの処理を開始し、ステップＳ１において、図１に示すＲＴＣ１０に設定されている現在時刻情報の読み取りを行い、ステップＳ２において、このＲＴＣ１０に設定されている現在時刻は不定値であるか否かを判別する。
【００３６】
ＲＴＣ１０に設定されている現在時刻が不定値であるものと判別した場合（＝ＲＴＣ１０に現在時刻が設定されていない場合）、制御部１６は、ステップＳ３に処理を進め、協定世界時刻である「１９８０年１月６日００時００分００秒」を現在時刻としてＲＴＣ１０に設定し、ステップＳ４に処理を進める。
【００３７】
このようなステップＳ１〜ステップＳ３の処理を詳細に説明すると、まず、ＲＴＣ１０に現在時刻を設定するためには、メイン電源が投入された際に、当該携帯電話機のコミュニケーションネットワークにエアー接続を図り、シンクチャンネルメッセージ等を受信してシステムタイムを検出して設定することが必要となる。
【００３８】
しかし、ソフトロード前の当該携帯電話機に対して、必ずしもＲＴＣ１０に現在時刻が設定されているとは限らない。このようなことから、ＲＴＣ１０に現在時刻が設定されていない場合、制御部１６は、上記ステップＳ２において、ＲＴＣ１０に設定されている現在時刻は不定値であるものと判別することとなる。そして、ＲＴＣ１０に設定されている現在時刻が不定値であるものと判別した場合、制御部１６は、上記ステップＳ３において、現在時刻から大きく遡った過去の時刻を現在時刻としてＲＴＣ１０に設定する。
【００３９】
すなわち、このブート時における真の現在時刻が、例えば２００７年９月２０日であった場合、制御部１６は、この２００７年９月２０日よりも大きく遡った過去の時刻である「１９８０年１月６日００時００分００秒」を現在時刻としてＲＴＣ１０に設定する。この不定値であった場合にＲＴＣ１０に設定する時刻は、真の現在時刻から大きく離れた過去の時刻（＝ユーザにより設定されるとは考え難い時刻）であれば、どのような時刻を設定してもよいのであるが、当該実施の形態の携帯電話機の場合、上記協定世界時刻である「１９８０年１月６日００時００分００秒」を現在時刻としてＲＴＣ１０に設定するようになっている。
【００４０】
これにより、ソフトロード前であるがために、一度もコミュニケーションネットワークにエアー接続を図っていない場合でも（＝システムタイムを取得できない場合でも）、当該携帯電話機のＲＴＣ１０は上記「１９８０年１月６日００時００分００秒」から計時を開始することとなる。ＲＴＣ１０は、図１に示すように当該携帯電話機に内蔵されている二次電池１１で動作可能となっており、バッテリが取り外された場合でも計時動作を続行可能となっているため、当該携帯電話機の２回目以降のブート時には、制御部１６は、上記ステップＳ２において、ＲＴＣ１０に現在時刻が設定済みであるものと判別し、処理をステップＳ４に進めることとなる。
【００４１】
なお、ＲＴＣ１０に対しては、通常、ユーザが手動で所望の時刻を設定可能となっているが、ユーザが上記協定世界時刻等の現在の日付から２０年以上も過去の日付をＲＴＣ１０に手動で設定するということは考え難い。このため、当該実施の形態の携帯電話機の場合、ユーザが手動で設定可能な日付を制限しており、制御部１６は、例えば２０００年以前の日付の時刻がユーザによりＲＴＣ１０に対して設定操作された場合、この設定を拒否する。このため、ＲＴＣ１０に対する上記協定世界時刻の設定は、制御部１６がシステムとして動作することでのみ可能ということとなる。これにより、外部メモリ１４の不正使用を意図したＲＴＣ１０の時刻の書き換えを防止することができる。
【００４２】
次に、ステップＳ４に処理を進めると、制御部１６は、外部メモリＩＦ１５に対する外部メモリ１４の装着の有無を検出して処理をステップＳ５に進め、このステップＳ５において、外部メモリＩＦ１５に外部メモリ１４が装着されているか否かを判別する。そして、外部メモリＩＦ１５に外部メモリ１４が装着されていないものと判別した場合、外部メモリ１４を用いたソフトロードを行うことができないため、当該ソフトロード制御を終了する。
【００４３】
これに対して、外部メモリＩＦ１５に外部メモリ１４が装着されているものと判別した場合、制御部１６は、処理をステップＳ６に進めて操作部４の操作状態を検出し、ステップＳ７において、ソフトロードの実行を指定するための所定のキー操作がなされているか否かを判別する。そして、所定のキー操作を検出しない場合には、ユーザによりソフトロードの実行が指定されていないことを意味するため、制御部１６は、そのまま当該ソフトロード制御を終了し、所定のキー操作を検出した場合には、ソフトロードを実行すべく、処理を図６のフローチャートのステップＳ１１へ進める。
【００４４】
〔ブートローダプログラムに基づく動作〕
次に、上記図５のフローチャートのステップＳ６及びステップＳ７において、ソフトロードの実行を指定する所定のキー操作を検出することで、処理を図６のフローチャートのステップＳ１１に進めると、制御部１６は、ＮＡＮＤメモリ１２に記憶されているブートローダプログラム（図９参照）に基づいてブートローダとして機能し、外部メモリ１４を初期化してステップＳ１２に処理を進める。
【００４５】
ステップＳ１２では、ブートローダとして機能する制御部１６が外部メモリ１４にアクセスし、ステップＳ１３において、該外部メモリ１４に上記ソフトロード実行プログラム（Progrun）が記憶されているか否かを判別する。外部メモリ１４に上記ソフトロード実行プログラム（Progrun）が記憶されていない場合はソフトロードを行うことができないため、制御部１６は、表示部３にエラーメッセージを表示して当該ソフトロード制御を終了する。
【００４６】
これに対して、外部メモリ１４に上記ソフトロード実行プログラム（Progrun）が記憶されている場合、制御部１６は、外部メモリ１４にアクセスし、図２に示す上記プログラムコード（Rombuild.bin）や固定データ（Font.bin）を当該外部メモリ１４に記憶させた際にパーソナルコンピュータ装置２１から付された時刻情報であるタイムスタンプ情報、当該外部メモリ１４を用いたソフトロードを許可する期間を示す有効期間情報、及びこの有効期間情報が有効であるか或いは無効であるかを示す有効／無効情報を読み出すと共に、ステップＳ１５において、当該外部メモリ１４に固有に付されている外部メモリＩＤを読み出してステップＳ１６に処理を進める。
【００４７】
当該携帯電話機に内蔵されているＮＡＮＤメモリ１２には、ソフトロードに用いられる各外部メモリの外部メモリＩＤがリスト化されて記憶されている（外部メモリＩＤリスト）。このため、制御部１６は、ステップＳ１６に処理を進めると、上記ステップＳ１４の処理で取得した外部メモリ１４の外部メモリＩＤに基づいて上記外部メモリＩＤリストを参照し、該外部メモリ１４の外部メモリＩＤが上記外部メモリＩＤリストに存在するか否かを判別する。
【００４８】
外部メモリ１４の外部メモリＩＤが上記外部メモリＩＤリストに存在する場合、制御部１６は、処理をステップＳ１８に進めて、該外部メモリＩＤリストを更新処理し、外部メモリ１４の外部メモリＩＤが上記外部メモリＩＤリストに存在しない場合は、処理をステップＳ１７に進め、後述する理由により、ＲＴＣ１０に対して、再度、上記協定世界時刻を設定する（＝設定時刻のリセット）。
【００４９】
次に、制御部１６は、ステップＳ１９及びステップＳ２０において、上記ステップＳ１４で外部メモリ１４から取得したタイムスタンプ情報、有効期間情報、及び有効／無効情報に基づいて、この外部メモリ１４を用いたソフトロードの実行の是非を判別する。そして、後述する外部メモリ１４の有効期間の経過等の理由でソフトロードの実行を拒否する場合には、表示部３にエラーメッセージを表示して当該ソフトロード制御を終了する。
【００５０】
また、有効／無効情報が有効期間の無効を示すことで、外部メモリ１４に設定された有効期間が解除されている場合や、有効／無効情報が有効期間の有効を示しているが、ＲＴＣ１０から取得された現在時刻の日付が、外部メモリ１４に設定された有効期間内であった場合、制御部１６は、ソフトロードを実行してもよいものと判別し、ステップＳ２１及びステップＳ２２において、図４に示したＭＤ５等のハッシュ値に基づいて、外部メモリ１４に記憶されているソフトロード実行プログラム（Progrun）のチェックを行うと共に、ステップＳ２３及びステップＳ２４において、表示部３にパスワードの入力画面を表示し、ユーザに対してパスワードの入力を求める。この入力されたパスワードが、図４を用いて説明したようにソフトロード実行プログラム（Progrun）に付されているパスワードと一致した場合、制御部１６は、外部メモリ１４に記憶されているソフトロード実行プログラム（Progrun）をＳＤＲＡＭ１３上に展開して実行し、外部メモリ１４に記憶されているソフトロード実行用のシーケンスファイルに従って、プログラムコード（Rombuild.bin）及び固定データ（Font.bin）をＮＡＮＤメモリ１２のプログラムコード格納領域（図９の符号１１１）にロードして、図５及び図６の各フローチャートに示すソフトロード制御を終了する。
【００５１】
このような外部メモリ１４に設定された有効期間に基づくソフトロード制御を詳細に説明すると（主に、ステップＳ１４〜ステップＳ２０の各処理）、制御部１６は、「ＲＴＣに協定世界時刻よりも大きく離れた日付が設定されている場合」と「ＲＴＣに協定世界時刻近辺の日付が設定されている場合」とで、その処理を異にする。
【００５２】
〔ＲＴＣに協定世界時刻よりも大きく離れた日付が設定されている場合〕
上述のように、携帯電話機は、一度でもコミュニケーションネットワークにエアー接続を図ると、当該携帯電話機のＲＴＣ１０に対して正確な現在時刻であるシステムタイムの設定がなされ、該ＲＴＣ１０は、バッテリが取り外された場合でも上記二次電池１１から供給される電力により正確な計時動作を行う。このため、ＲＴＣ１０に対して上記協定世界時刻を設定した場合でも、コミュニケーションネットワークに対するエアー接続後は、ＲＴＣ１０に対して正確な現在時刻が設定されることとなるため（＝協定世界時刻が正確な現在時刻に設定し直されるため）、該ＲＴＣ１０から取得される現在時刻は、上記協定世界時刻から例えば２７年間経過した日付の時刻等のように、該協定世界時刻から大きく離れた日付の時刻となる。
【００５３】
制御部１６は、ＲＴＣ１０から取得した現在時刻が、このように協定世界時刻から大きく離れた日付の時刻であった場合、この携帯電話機は、コミュニケーションネットワークに対するエアー接続により、現在の正確な時刻が設定されているものと認識する。そして、この場合、外部メモリ１４から読み込んだタイムスタンプ情報で示される日付に、有効期間情報で示される日付を加算処理して外部メモリ１４の有効期間を算出し、ＲＴＣ１０から取得した現在時刻が、この有効期間内であった場合に、上述のソフトロードを実行制御する。
【００５４】
具体的には、ＲＴＣ１０から取得した現在時刻が、協定世界時刻から大きく離れた日付の時刻であった場合において、外部メモリ１４から読み込んだタイムスタンプ情報が例えば「２００７年９月１８日」の日付であり、該外部メモリ１４から読み込んだ有効期間情報が「７日間」の有効期間を示していた場合、制御部１６は、「２００７年９月１８日〜２００７年９月２４日（計７日間）」を、その外部メモリ１４を用いたソフトロードが許可されている期間として認識する。そして、ＲＴＣ１０から現在時刻を取得し、この現在時刻が「２００７年９月１８日〜２００７年９月２４日」の有効期間内であった場合にのみ、上述のソフトロードを実行制御する。
【００５５】
これにより、外部メモリ１４が、当該外部メモリ１４を正当に用いる権限の無い第三者の手に渡ることで、当該外部メモリ１４を用いた不正なソフトロードを行おうとした場合でも、大抵の場合、この不正なソフトロードを行おうとしている携帯電話機は、工場出荷後の、ＲＴＣ１０に対してシステムタイムが設定された携帯電話機であり、協定世界時刻から大きく離れた日付の時刻がＲＴＣ１０に設定されているため、外部メモリ１４の有効期間経過後はソフトロードの実行を拒否することができ、不正なソフトロードが可能な期間を極短期間に抑えることができる（上述の例の場合、最大でも７日間に抑えることができる。）。
【００５６】
〔ＲＴＣに協定世界時刻近辺の日付が設定されている場合〕
次に、ＲＴＣ１０に対して協定世界時刻近辺の日付の時刻が設定されている場合、これは、コミュニケーションネットワークに対して一度もエアー接続がなされていないことを意味するため、制御部１６は、外部メモリ１４から読み込んだタイムスタンプ情報は用いずに有効期間情報のみを用い、上記協定世界時刻の日付から上記有効期間情報で示される有効期間に対応する日付までの期間を、その外部メモリ１４を用いたソフトロードが許可された期間として認識する。
【００５７】
具体的には、ＲＴＣ１０に対して協定世界時刻近辺の日付の時刻が設定されている場合において、外部メモリ１４から読み込んだ有効期間情報が７日間であった場合、制御部１６は、１９８０年１月６日（協定世界時刻）から１９８０年１月１２日までの期間を、その外部メモリ１４を用いたソフトロードが許可されている期間として認識する。そして、ＲＴＣ１０から取得した現在時刻が、この「１９８０年１月６日〜１９８０年１月１２日」の期間内の日付の時刻であった場合は、上述のソフトロードを実行制御する。
【００５８】
ここで、当該携帯電話機は、上述のようにメイン電源が投入された際に、ＲＴＣ１０に対して協定世界時刻が設定されるのであるが（図５のフローチャートのステップＳ３参照）、ＲＴＣ１０は、この時刻設定直後から計時を開始する。このため、例えばソフトロード対象となるプログラムコードの変更作業、通信試験の結果待ち、設置部品の変更作業等により日にちが経過すると、ソフトロードを行う際に、外部メモリ１４の有効期間を経過した日付の時刻がＲＴＣ１０から取得される不都合が生ずることが考えられる。
【００５９】
すなわち、ソフトロードを行う携帯電話機に対してメイン電源を投入すると、ＲＴＣ１０に対して１９８０年１月６日の協定世界時刻が設定されるのであるが、実際にソフトロードを実施するまでの間に、ソフトロード対象となるプログラムコードの変更作業等により例えば１５日間が経過してしまい、この時点におけるＲＴＣ１０の現在時刻が１９８０年１月２１日であった場合、上記有効期間が「１９８０年１月６日〜１９８０年１月１２日」に設定されている外部メモリ１４を用いたソフトロードは、該外部メモリ１４の有効期間が経過していることから、拒否されることとなる。
【００６０】
しかし、ソフトロードを正当に行う権限を有する者に対しては、このような有効期間を経過した外部メモリ１４を用いた場合でもソフトロードを実行可能とすることが好ましい。このため、ＲＴＣ１０に協定世界時刻近辺の日付が設定されている場合において、ＲＴＣ１０から取得した日付の時刻が、外部メモリ１４の有効期間を経過している場合、制御部１６は、直ちにソフトロードを拒否することはせずに、図６のフローチャートのステップＳ１５及びステップＳ１６に示したように、外部メモリ１４から外部メモリＩＤを取得し、この外部メモリＩＤが、ＮＡＮＤメモリ１２に記憶されている外部メモリＩＤリストに存在するか否かを判別する。
【００６１】
外部メモリ１４から取得した外部メモリＩＤが、外部メモリＩＤリストに存在するということは、この外部メモリ１４を第三者が不正に用いてソフトロードを実行しようとしている可能性が高い。このため、制御部１６は、上述の有効期間の経過を理由にソフトロードを拒否する。
【００６２】
これに対して、外部メモリ１４から取得した外部メモリＩＤが、外部メモリＩＤリストに存在しないということは、この外部メモリ１４に記憶されているプログラムコード等は新規に開発されたプログラムコード等であり、正当権利者がソフトロードを実行しようとしている可能性が高い。このため、制御部１６は、ＲＴＣ１０に対して、再度、上記協定世界時刻を設定する（＝設定時刻のリセット）。これにより、ＲＴＣ１０は、上記「１９８０年１月６日００時００分００秒」の協定世界時刻から再度計時を開始することとなり、制御部１６は、外部メモリ１４に設定された有効期間内の日付の時刻を上記ＲＴＣ１０から取得してソフトロードを実行することができる。
【００６３】
〔外部メモリに長期間の有効期間が設定されている場合〕
次に、ここまでは、外部メモリ１４に対して７日間等の短めの有効期間が設定されている例を用いて説明を行ってきたが、外部メモリ１４に対して例えば１年間等の長めの有効期間を設定する場合も有り得る。ただ、このように外部メモリ１４に対して長めの有効期間を設定すると、当該有効期間の間に、いくつかの新しいプログラムコード等が開発され、ソフトロードの対象となるプログラムがバージョンアップすることが考えられる。そして、プログラムのバージョンアップがなされた場合には、最新バージョンのプログラムをソフトロードすることが好ましい。
【００６４】
このため、当該実施の形態の携帯電話機の場合、過去にソフトロードが実行されたＮＡＮＤメモリ１２に対して、再度、ソフトロードを行う場合、このソフトロード済みのプログラムのバージョン番号と、新たにソフトロードを行うプログラムのバージョン番号とを比較し、この新たにソフトロードを行うプログラムのバージョン番号の方が新しいバージョン番号である場合に、ソフトロードを実行するようになっている。
【００６５】
図７のフローチャートに、このバージョン番号に基づくソフトロードの実行動作の流れを示す。なお、この図７のフローチャートは、図６のフローチャートを簡略的に図示したフローチャートとなっており、図６のフローチャートに示した各処理に、ステップＳ３１〜ステップＳ３３の各処理が追加されたものとなっている。また、この図７のフローチャートでは、図６のフローチャートに示した処理と同じ処理を行うステップに、同じステップ番号を付している。このため、この図７のフローチャートの説明において、図６のフローチャートと同じステップ番号が付してあるステップの処理の説明は、図６のフローチャートの説明を参照いただき、重複した説明は省略する。
【００６６】
図７のフローチャートにおいて、ＮＡＮＤメモリ１２上にソフトロード実行プログラム（Progrun）が記憶されていることを確認すると、制御部１６は、ステップＳ３１に処理を進め、外部メモリ１４に記憶されているプログラムのバージョン番号を取得する。また、ステップＳ３２において、ＮＡＮＤメモリ１２にソフトロード済みのプログラムのバージョン番号を取得する。
【００６７】
そして、制御部１６は、ステップＳ３２において、両者を比較し、外部メモリ１４に記憶されているプログラムのバージョン番号の方が、ＮＡＮＤメモリ１２にソフトロード済みのプログラムのバージョン番号よりも新しいバージョン番号である場合に、ソフトロードの実行制御を行う。これにより、外部メモリ１４に対して長めの有効期間が設定されている場合でも、常に最新バージョンのプログラムをソフトロードすることを可能とすることができる。
【００６８】
［実施の形態の効果］
以上の説明から明らかなように、この実施の形態の携帯電話機は、外部メモリ１４に対して有効期間を設定し、ＲＴＣ１０から取得した現在時刻の日付が、外部メモリ１４に設定されている有効期間である場合のみ、該外部メモリ１４に記憶されているプログラムコード等を携帯電話機内のＮＡＮＤメモリ１２にソフトロードする。
【００６９】
ソフトロード用の外部メモリ１４は、その取り扱いが容易であるため、プログラム開発に関与する様々な場所に配布される。このため、各場所に配布された全ての外部メモリ１４を厳重に管理することは困難となるが、当該実施の形態の携帯電話機で使用される外部メモリ１４の場合、ソフトロードを許可する有効期間が設定されているため、当該外部メモリ１４の管理を容易化することができる。また、ソフトロード用の外部メモリ１４が第三者の手に渡った場合でも、上記有効期間により、その使用を制限することができるため、セキュリティーの向上を図ることができる。
【００７０】
また、例えば開発途中のプログラムが記憶された外部メモリ１４が流出した場合、このような開発途中のプログラムは不具合を含んでいる場合が多く、第三者がソフトロードを行うと、場合によってはネットワークに影響を及ぼす恐れがある。しかし、このような開発途中のプログラムのバージョンは、完成したプログラムのバージョンよりも古いバージョンとなり、大抵の場合、この古いバージョンのプログラムが記憶された外部メモリの有効期間は経過しているため、開発途中のプログラムが記憶された外部メモリが流出した場合でも、これを用いたソフトロードを略々実行不可とすることができる。
【００７１】
また、ソフトロードを行う際に、外部メモリ１４に記憶されているプログラムのバージョンと、携帯電話機内にソフトロード済みのプログラムのバージョンとを比較し、外部メモリ１４に記憶されているプログラムのバージョンの方が新しい場合にソフトロードを実行することで、上記開発途中のプログラムがソフトロードされる不都合を防止可能となるが、当該実施の形態の携帯電話機に用いられる外部メモリ１４の場合、前述のように古いバージョンのプログラムが記憶された外部メモリは、大抵の場合、その有効期間が経過したものとなるため、上記バージョンを比較する処理を行わなくても、上記開発途中のプログラムがソフトロードされる不都合を略々防止することができる。このため、外部メモリ１４を用いたソフトロードの一連の処理から、上記バージョンを比較する処理を省略することができ、該外部メモリ１４を用いたソフトロードシーケンスを簡略化することができる。
【００７２】
また、これとは反対に、外部メモリ１４に対して長期間の有効期間を付した場合には、ソフトロード前に、上記バージョンを比較する処理を実行することで、常に最新バージョンのソフトロードを可能とすることができる。
【００７３】
また、例えば製品管理が十分に実施されており、盗難等の心配が少ない場所で外部メモリ１４を用いる場合には、外部メモリ１４に設定された有効期間を有効／無効情報で解除することで、有効期間が付された外部メモリ１４を用いながらにして、従前どおりの自由なソフトロードを可能とすることができる。
【００７４】
［変形例］
上述の実施の形態の説明では、ソフトロードの対象が携帯電話機であることとしたが、外部メモリの装着部とタイマを備えた機器であれば、ＰＨＳ電話機（PHS：Personal Handyphone System）、ＰＤＡ装置（PDA：Personal Digital Assistant）、携帯ゲーム機、ノート型のパーソナルコンピュータ装置等の他の機器をソフトロードの対象としてもよい。いずれの場合でも、上述と同じ効果を得ることができる。
【００７５】
最後に、上述の実施の形態は、本発明の一例である。このため、本発明は上述の実施の形態に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論であることを付け加えておく。
【図面の簡単な説明】
【００７６】
【図１】本発明を適用した実施の形態となる携帯電話機のブロック図である。
【図２】実施の形態の携帯電話機に対して着脱自在の外部メモリに記憶されているソフトロード用の各種データを説明するための図である。
【図３】実施の形態の携帯電話機に対して着脱自在の外部メモリに記憶されているソフトロード用のデータに対してハッシュ関数が付される様子を示す図である。
【図４】実施の形態の携帯電話機に対して着脱自在の外部メモリに記憶されているソフトロード実行プログラムに対して付されているハッシュ関数及びパスワードを説明するための図である。
【図５】実施の形態の携帯電話機におけるブート時の処理の流れを示すフローチャートである。
【図６】実施の形態の携帯電話機内のＮＡＮＤメモリに記憶されているブートローダプログラムに基づく処理の流れを示すフローチャートである。
【図７】実施の形態の携帯電話機において、ＮＡＮＤメモリに記憶済みのソフトウェアプログラムが、外部メモリに記憶されているソフトウェアプログラムよりも古いソフトウェアプログラムであった場合に、ソフトロードを実行する処理の流れを示すフローチャートである。
【図８】ＮＡＮＤブート方式におけるプログラム実行処理を説明するための図である。
【図９】ＮＡＮＤメモリに記憶されているデータの種類を説明するための図である。
【図１０】従来のソフトロード用の外部メモリに記憶されているプログラム及びデータを説明するための図である。
【図１１】外部メモリを用いて行う従来のソフトロードの流れを説明するためのフローチャートである。
【符号の説明】
【００７７】
１  アンテナ、２  通信回路、３  表示部、４  操作部、５  スピーカ部、６  マイクロホン部、７  カメラ部、８  発光部（ＬＥＤ）、９  バイブレーションユニット、１０  ＲＴＣ（タイマ）、１１  携帯電話機に内蔵されている二次電池、１２  ＮＡＮＤメモリ、１３  ＳＤＲＡＭ、１４  外部メモリ、１５  外部メモリインターフェイス（外部メモリＩＦ）、１６  制御部
【図１】
2009140398.tif 000003
【図２】
2009140398.tif 000004
【図３】
2009140398.tif 000005
【図４】
2009140398.tif 000006
【図５】
2009140398.tif 000007
【図６】
2009140398.tif 000008
【図７】
2009140398.tif 000009
【図８】
2009140398.tif 000010
【図９】
2009140398.tif 000011
【図１０】
2009140398.tif 000012
【図１１】
2009140398.tif 000013