(57)【要約】【課題】量産時にメモリの書き換えを効率的に行うことのできる情報処理端末を提供すること。【解決手段】情報処理端末は、ソフトウェアをそれぞれ格納するための第１の領域及び第２の領域を有するメモリと、量産化コマンドを実行する量産化コマンド実行部と、を備える。量産化コマンド実行部が量産化コマンドを実行する前のメモリが有する第１の領域には、情報処理端末を開発するための第１のソフトウェアが格納され、第２の領域には、情報処理端末が量産された後に実行される第２のソフトウェアが格納されている。量産化コマンド実行部は、量産化コマンドを実行することによって、第２の領域に格納されている第２のソフトウェアを第１の領域に上書きする。【選択図】図２
2009037511.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアをそれぞれ格納するための第１の領域及び第２の領域を有するメモリと、
量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末であって、
前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、
前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きすることを特徴とする情報処理端末。
【請求項２】
請求項１に記載の情報処理端末であって、
ベリファイコマンドを実行するベリファイコマンド実行部を備え、
前記ベリファイ実行部は、前記ベリファイコマンドを実行することによって、前記メモリの前記第１の領域の内容と前記第２の領域の内容を比較して、これら内容の一致又は不一致によって前記量産化コマンドが実行される前か実行された後かを判断することを特徴とする情報処理端末。
【請求項３】
暗号化されたソフトウェアをそれぞれ格納するための第１の領域及び第２の領域と、前記暗号化されたソフトウェアを復号するための鍵をそれぞれ格納するための第３の領域及び第４の領域とを有するメモリと、
量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末であって、
前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、前記第３の領域には、前記第１のソフトウェアを復号するための第１の鍵が格納され、前記第４の領域には、前記第２のソフトウェアを復号するための第２の鍵が格納され、
前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第４の領域に格納されている前記第２の鍵を前記第３の領域に上書きすることを特徴とする情報処理端末。
【請求項４】
請求項３に記載の情報処理端末であって、
ベリファイコマンドを実行するベリファイコマンド実行部を備え、
前記ベリファイ実行部は、前記ベリファイコマンドを実行することによって、前記メモリの前記第３の領域の内容と前記第４の領域の内容を比較して、これら内容の一致又は不一致によって前記量産化コマンドが実行される前か実行された後かを判断することを特徴とする情報処理端末。
【請求項５】
請求項３に記載の情報処理端末であって、
前記メモリの前記第３の領域に格納された鍵を用いて前記第１の領域に格納された前記第１のソフトウェアの復号が失敗すれば、前記第４の領域に格納された前記第２の鍵を用いて前記第２の領域に格納された前記第２のソフトウェアの復号を行う処理部を備えたことを特徴とする情報処理端末。
【請求項６】
暗号化されたソフトウェアをそれぞれ格納するための第１の領域及び第２の領域と、前記暗号化されたソフトウェアを復号するための鍵をそれぞれ格納するための第３の領域及び第４の領域とを有するメモリと、
量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末であって、
前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、前記第３の領域には、前記第１のソフトウェアを復号するための第１の鍵が格納され、前記第４の領域には、前記第２のソフトウェアを復号するための第２の鍵が格納され、
前記量産化コマンド実行部は、
前記第２のソフトウェアのプログラムサイズに応じて、異なる量産化コマンドを実行し、
前記第２のソフトウェアのプログラムサイズが第１のしきい値未満のときは、第１の量産化コマンドを実行して、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きし、かつ、前記第４の領域に格納されている前記第２の鍵を前記第３の領域に上書きし、
前記第２のソフトウェアのプログラムサイズが前記第１のしきい値以上のときは、第２の量産化コマンドを実行して、前記第４の領域に格納されている前記第２の鍵を前記第３の領域に上書きすることを特徴とする情報処理端末。
【請求項７】
請求項６に記載の情報処理端末であって、
前記メモリの前記第３の領域に格納された鍵を用いて前記第１の領域に格納された前記第１のソフトウェアの復号が失敗すれば、前記第４の領域に格納された前記第２の鍵を用いて前記第２の領域に格納された前記第２のソフトウェアの復号を行う処理部を備え、
前記量産化コマンド実行部は、前記第２の量産化コマンドを実行した後の前記処理部による処理時間を予測し、予測処理時間が第２のしきい値未満であれば前記量産化コマンドを実行し、前記予測処理時間が前記第２のしきい値以上であれば前記第１の量産化コマンドを実行することを特徴とする情報処理端末。
【請求項８】
ソフトウェアをそれぞれ格納するための第１の領域及び第２の領域を有するメモリと、
量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末の量産方法であって、
前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、
前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きすることを特徴とする情報処理端末の量産方法。
【請求項９】
ソフトウェアをそれぞれ格納するための第１の領域及び第２の領域を有するメモリと、
量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末で実行される量産プログラムであって、
前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、
前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きすることを特徴とする量産プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、量産時にメモリの書き換えを行う情報処理端末に関する。
【背景技術】
【０００２】
図１０は、開発段階から量産段階に移行する際に行われる従来のメモリの書き換えを示す図である。図１０に示すように、携帯電話等の端末１は内部にメモリ１５を備え、メモリ１５に格納されるソフトウェア及び当該ソフトウェアを暗号化又は復号する鍵は、開発段階と量産段階とでは異なる。すなわち、開発段階のメモリ１５には領域５１に開発用ソフトウェアが、領域５２に開発用鍵が格納されているが、量産化コマンド３が実行されると、メモリ１５の領域５１には量産用ソフトウェアが上書きされ、領域５２には量産用鍵が上書きされる。
【０００３】
なお、開発用ソフトウェアとは、開発中に行われるデバッギングのためのプログラムといった、端末１の開発に必要なプログラム及びデータである。また、量産用ソフトウェアとは、市場に売り出された端末１を起動するためのプログラムや、端末１を購入したユーザが実行するアプリケーションのプログラム等である。さらに、量産化コマンドとは、端末１の量産時に行われるメモリ１５の書き換えを指示するコマンドである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記説明したメモリ１５の書き換えを行うためには、量産用ソフトウェア及び量産用鍵を記憶する装置に端末１を接続し、メモリ１５に書き込むソフトウェア及び鍵を選択した後、量産化コマンド３を端末１に入力する。端末１が量産化コマンド３を実行すると、端末１は、上記装置から転送されたソフトウェア及び鍵をメモリ１５に書き込む。このとき、メモリ１５に書き込むソフトウェア又は鍵が誤って選択されてしまう恐れがある。ソフトウェア又は鍵が誤って選択されてしまうと、量産段階であるために、メモリ１５の再書き換えを大量の端末１に対して行わなければならない。
【０００５】
また、携帯電話等の端末に搭載されるソフトウェアのプログラムサイズは近年増大の傾向にある。量産用ソフトウェアのプログラムサイズが大きいと端末１へのデータ転送に時間がかかるため、量産のための時間が長くなる。
【０００６】
このため、端末の量産時にソフトウェア又は鍵の選択ミスが発生せず、かつ、メモリ書き換えのためのデータ転送を短時間で行うことのできるシステム又は方法が望まれていた。
【０００７】
本発明の目的は、量産時にメモリの書き換えを効率的に行うことのできる情報処理端末を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、ソフトウェアをそれぞれ格納するための第１の領域及び第２の領域を有するメモリと、量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末であって、前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きする情報処理端末を提供する。
【０００９】
上記情報処理端末は、ベリファイコマンドを実行するベリファイコマンド実行部を備え、前記ベリファイ実行部は、前記ベリファイコマンドを実行することによって、前記メモリの前記第１の領域の内容と前記第２の領域の内容を比較して、これら内容の一致又は不一致によって前記量産化コマンドが実行される前か実行された後かを判断する。
【００１０】
本発明は、暗号化されたソフトウェアをそれぞれ格納するための第１の領域及び第２の領域と、前記暗号化されたソフトウェアを復号するための鍵をそれぞれ格納するための第３の領域及び第４の領域とを有するメモリと、量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末であって、前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、前記第３の領域には、前記第１のソフトウェアを復号するための第１の鍵が格納され、前記第４の領域には、前記第２のソフトウェアを復号するための第２の鍵が格納され、前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第４の領域に格納されている前記第２の鍵を前記第３の領域に上書きする情報処理端末を提供する。
【００１１】
上記情報処理端末は、ベリファイコマンドを実行するベリファイコマンド実行部を備え、前記ベリファイ実行部は、前記ベリファイコマンドを実行することによって、前記メモリの前記第３の領域の内容と前記第４の領域の内容を比較して、これら内容の一致又は不一致によって前記量産化コマンドが実行される前か実行された後かを判断する。
【００１２】
上記情報処理端末は、前記メモリの前記第３の領域に格納された鍵を用いて前記第１の領域に格納された前記第１のソフトウェアの復号が失敗すれば、前記第４の領域に格納された前記第２の鍵を用いて前記第２の領域に格納された前記第２のソフトウェアの復号を行う処理部を備える。
【００１３】
本発明は、暗号化されたソフトウェアをそれぞれ格納するための第１の領域及び第２の領域と、前記暗号化されたソフトウェアを復号するための鍵をそれぞれ格納するための第３の領域及び第４の領域とを有するメモリと、量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末であって、前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、前記第３の領域には、前記第１のソフトウェアを復号するための第１の鍵が格納され、前記第４の領域には、前記第２のソフトウェアを復号するための第２の鍵が格納され、前記量産化コマンド実行部は、前記第２のソフトウェアのプログラムサイズに応じて、異なる量産化コマンドを実行し、前記第２のソフトウェアのプログラムサイズが第１のしきい値未満のときは、第１の量産化コマンドを実行して、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きし、かつ、前記第４の領域に格納されている前記第２の鍵を前記第３の領域に上書きし、前記第２のソフトウェアのプログラムサイズが前記第１のしきい値以上のときは、第２の量産化コマンドを実行して、前記第４の領域に格納されている前記第２の鍵を前記第３の領域に上書きする情報処理端末を提供する。
【００１４】
上記情報処理端末は、前記メモリの前記第３の領域に格納された鍵を用いて前記第１の領域に格納された前記第１のソフトウェアの復号が失敗すれば、前記第４の領域に格納された前記第２の鍵を用いて前記第２の領域に格納された前記第２のソフトウェアの復号を行う処理部を備え、前記量産化コマンド実行部は、前記第２の量産化コマンドを実行した後の前記処理部による処理時間を予測し、予測処理時間が第２のしきい値未満であれば前記量産化コマンドを実行し、前記予測処理時間が前記第２のしきい値以上であれば前記第１の量産化コマンドを実行する。
【００１５】
本発明は、ソフトウェアをそれぞれ格納するための第１の領域及び第２の領域を有するメモリと、量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末の量産方法であって、前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きする情報処理端末の量産方法を提供する。
【００１６】
本発明は、ソフトウェアをそれぞれ格納するための第１の領域及び第２の領域を有するメモリと、量産化コマンドを実行する量産化コマンド実行部と、を備えた情報処理端末で実行される量産プログラムであって、前記量産化コマンド実行部が前記量産化コマンドを実行する前の前記メモリが有する前記第１の領域には、前記情報処理端末を開発するための第１のソフトウェアが格納され、前記第２の領域には、前記情報処理端末が量産された後に実行される第２のソフトウェアが格納され、前記量産化コマンド実行部は、前記量産化コマンドを実行することによって、前記第２の領域に格納されている前記第２のソフトウェアを前記第１の領域に上書きする量産プログラムを提供する。
【発明の効果】
【００１７】
本発明に係る情報処理端末によれば、量産時にメモリの書き換えを効率的に行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態について、図面を参照して説明する。
【００１９】
（第１の実施形態）
図１は、第１の実施形態の端末を示すブロック図である。図１に示すように、第１の実施形態の端末１００は、コマンド処理部１０１と、量産化コマンド実行部１０３と、メモリ１０５と、ベリファイコマンド実行部１０７と、ＬＥＤ駆動部１０９と、キー操作処理部１１１と、ブート処理部１１３と、ソフトウェア選択部１１５と、復号処理部１１７とを備える。
【００２０】
コマンド処理部１０１は、入力されたコマンドを処理して、当該入力されたコマンドの内容を判別する。コマンド処理部１０１は、入力されたコマンドが量産化コマンドであれば量産化コマンド実行部１０３を動作させ、ベリファイコマンドであればベリファイコマンド実行部１０７を動作させる。量産化コマンドは、端末１００の量産時に行われるメモリ１０５の書き換えを指示するコマンドである。また、ベリファイコマンドは、メモリ１０５の内容を確認するためのコマンドである。なお、ベリファイコマンドは、端末１００が有する図示しないキー操作部から入力されても良い。
【００２１】
量産化コマンド実行部１０３は、量産化コマンドを実行する。量産化コマンドが実行されることによって、メモリ１０５が書き換えられる。メモリ１０５は、ソフトウェア及び当該ソフトウェアを暗号化又は復号する鍵を記憶する。メモリ１０５には、暗号化されたソフトウェアをそれぞれ格納するための２つの領域と、当該ソフトウェアを暗号化又は復号するための鍵をそれぞれ格納するための２つの領域との４つの領域が設けられ、少なくとも１つの領域の格納内容が端末１００の開発段階（量産化コマンド実行前）と量産段階（量産化コマンド実行後）とで異なる。メモリ１０５中の各領域の内容の詳細については後述する。
【００２２】
ベリファイコマンド実行部１０７は、ベリファイコマンドに応じて、メモリ１０５の各領域の内容を比較して、端末１００が開発段階（量産化コマンド実行前）か量産段階（量産化コマンド実行後）かを判別する。ＬＥＤ駆動部１０９は、ベリファイコマンド実行部１０７による判別結果に応じて図示しないＬＥＤを駆動する。キー操作処理部１１１は、キー操作部に対して行われたキー操作を処理する。なお、キー操作部には、端末１００の電源をＯＮ／ＯＦＦするための電源キーが含まれている。
【００２３】
ブート処理部１１３は、端末１００の電源をＯＮする操作が行われたとき、端末１００を起動するためのブート処理を行う。当該ブート処理には、メモリ１０５からソフトウェア及び鍵を読み込むようソフトウェア選択部１１５に指示する処理と、復号処理部１１７で復号されたソフトウェアを用いて端末１００を起動する処理とが含まれる。
【００２４】
ソフトウェア選択部１１５は、メモリ１０５からソフトウェア及び鍵を読み込むようブート処理部１１３から指示されたとき、メモリ１０５に格納されている複数のソフトウェア及び複数の鍵の中から、それぞれ１つを選択して読み込む。復号処理部１１７は、ソフトウェア選択部１１５が読み込んだソフトウェアを、同じくソフトウェア選択部１１５が読み込んだ鍵で復号する。復号処理部１１７によって復号されたソフトウェアは、ブート処理部１１３に送られる。
【００２５】
図２は、量産化コマンド実行前及び量産化コマンド実行後それぞれの、第１の実施形態の端末１００が備えるメモリ１０５の各領域の内容を示す図である。図２に示すように、メモリ１０５には、暗号化されたソフトウェアをそれぞれ格納するための領域１５１，１５２と、当該ソフトウェアを暗号化又は復号するための鍵をそれぞれ格納するための領域１５３，１５４とが設けられている。量産化コマンド実行前（開発段階）は、領域１５１に開発用ソフトウェアが格納され、領域１５２に量産用ソフトウェアが格納され、領域１５３，１５４には開発用ソフトウェア及び量産用ソフトウェアの双方に利用可能な汎用鍵がそれぞれ格納されている。
【００２６】
本実施形態では、量産化コマンド実行部１０３が量産化コマンド１３０を実行することによって、メモリ１０５の領域１５１に量産用ソフトウェアが上書きされる。なお、上書きされる量産用ソフトウェアは、領域１５２に格納されている量産化ソフトウェアと同じである。したがって、量産化コマンド実行部１０３は、領域１５２に格納されている量産化ソフトウェアをコピーして、領域１５１に上書きする。
【００２７】
また、本実施形態では、ベリファイコマンド実行部１０７がベリファイコマンドを実行することによって、メモリ１０５の領域１５１の内容と領域１５２の内容を比較する。ベリファイコマンド実行部１０７は、各領域の内容を比較した結果、領域１５１の内容と領域１５２の内容が一致しなければ端末１００が開発段階（量産化コマンド実行前）と判断し、一致すれば量産段階（量産化コマンド実行後）と判断する。なお、ベリファイコマンド実行部１０７は、領域１５１の全ての内容と領域１５２の全ての内容を比較しても、領域１５１の内容の一部と領域１５２の内容の一部を比較しても良い。
【００２８】
さらに、本実施形態では、量産化コマンド実行後の端末１００の電源をＯＮする操作が行われたとき、ソフトウェア選択部１１５は、メモリ１０５の領域１５１及び領域１５３からそれぞれデータを読み込む。復号処理部１１７は、領域１５３から読み込んだ汎用鍵を用いて、領域１５１から読み込んだ量産用ソフトウェアを復号する。汎用鍵は量産用ソフトウェアの復号に利用可能であるため、当該復号は成功する。ブート処理部１１３は、復号された量産用ソフトウェアを用いて端末１００を起動する処理を行う。
【００２９】
本実施形態によれば、開発段階の端末１００のメモリ１０５には開発用ソフトウェアと共に量産用ソフトウェアが予め格納されており、開発用ソフトウェア及び量産用ソフトウェアが一本化されたオブジェクトとして管理されている。また、開発段階の端末１００で量産化コマンド１３０が実行された際には、メモリ１０５に格納されている量産用ソフトウェアがコピーされ、開発用ソフトウェアが格納されている領域に上書きされる。このため、端末１００の量産時、ブート処理時にソフトウェア選択部１１５から読み出される領域に、量産用ソフトウェアとは異なる誤ったソフトウェアが上書きされない。その結果、端末１００の量産時にメモリ１０５の書き換えを効率的に行うことができる。
【００３０】
（第２の実施形態）
図３は、第２の実施形態の端末を示すブロック図である。図３に示すように、第２の実施形態の端末２００は、コマンド処理部２０１と、量産化コマンド実行部２０３と、メモリ２０５と、ベリファイコマンド実行部２０７と、ＬＥＤ駆動部２０９と、キー操作処理部２１１と、ブート処理部２１３と、ソフトウェア選択部２１５と、復号処理部２１７とを備える。このように、第２の実施形態の端末２００の構成は、第１の実施形態の端末１００の構成と略同じである。但し、メモリ２０５の内容、並びに、量産化コマンド実行部２０３、ベリファイコマンド実行部２０７及びソフトウェア選択部２１５の各動作が、第１の実施形態と異なる。
【００３１】
図４は、量産化コマンド実行前及び量産化コマンド実行後それぞれの、第２の実施形態の端末２００が備えるメモリ２０５の各領域の内容を示す図である。メモリ２０５には、暗号化されたソフトウェアをそれぞれ格納するための領域２５１，２５２と、当該ソフトウェアを暗号化又は復号するための鍵をそれぞれ格納するための領域２５３，２５４とが設けられている。量産化コマンド実行前（開発段階）は、領域２５１に開発用ソフトウェアが格納され、領域２５２に量産用ソフトウェアが格納され、領域２５３には開発用ソフトウェアに利用可能な開発用鍵が格納され、領域２５４には量産用ソフトウェアに利用可能な量産用鍵が格納されている。
【００３２】
本実施形態では、量産化コマンド実行部２０３が量産化コマンド２３０を実行することによって、メモリ２０５の領域２５３に量産用鍵が上書きされる。なお、上書きされる量産用鍵は、領域２５４に格納されている量産用鍵と同じである。したがって、量産化コマンド実行部２０３は、領域２５４に格納されている量産用鍵をコピーして、領域２５３に上書きする。
【００３３】
また、本実施形態では、ベリファイコマンド実行部２０７がベリファイコマンドを実行することによって、メモリ２０５の領域２５３の内容と領域２５４の内容を比較する。ベリファイコマンド実行部２０７は、各領域の内容を比較した結果、領域２５３の内容と領域２５４の内容が一致しなければ端末２００が開発段階（量産化コマンド実行前）と判断し、一致すれば量産段階（量産化コマンド実行後）と判断する。なお、ベリファイコマンド実行部２０７は、領域２５３の全ての内容と領域２５４の全ての内容を比較しても、領域２５３の内容の一部と領域２５４の内容の一部を比較しても良い。
【００３４】
さらに、本実施形態では、量産化コマンド実行後の端末２００の電源をＯＮする操作が行われたとき、ソフトウェア選択部２１５は、まず、メモリ２０５の領域２５１及び領域２５３からそれぞれデータを読み込む。復号処理部２１７は、領域２５３から読み込んだ量産用鍵を用いて、領域２５１から読み込んだ開発用ソフトウェアを復号する。量産用鍵で開発用ソフトウェアを復号することはできないため、当該復号は失敗する。このため、ソフトウェア選択部２１５は、次に、メモリ２０５の領域２５２及び領域２５４からそれぞれデータを読み込む。復号処理部２１７は、領域２５４から読み込んだ量産用鍵を用いて、領域２５２から読み込んだ量産用ソフトウェアを復号する。量産用鍵で量産用ソフトウェアは復号されるため、当該復号は成功する。ブート処理部２１３は、復号された量産用ソフトウェアを用いて端末２００を起動する処理を行う。
【００３５】
本実施形態によれば、開発段階の端末２００で量産化コマンド２３０が実行された際には、メモリ２０５に格納されている量産用鍵がコピーされ、開発用鍵が格納されている領域に上書きされる。鍵のファイルサイズはソフトウェアのプログラムサイズに比べて非常に小さいため、メモリ２０５の書き換えを短時間で行うことができる。したがって、端末２００の量産時にメモリ２０５の書き換えを効率的に行うことができる。
【００３６】
（第３の実施形態）
図５は、第３の実施形態の端末を示すブロック図である。図５に示すように、第３の実施形態の端末３００は、コマンド処理部３０１と、量産化コマンド実行部３０３と、メモリ３０５と、ベリファイコマンド実行部３０７と、ＬＥＤ駆動部３０９と、キー操作処理部３１１と、ブート処理部３１３と、ソフトウェア選択部３１５と、復号処理部３１７とを備える。このように、第３の実施形態の端末３００の構成は、第２の実施形態の端末２００の構成と略同じである。但し、コマンド処理部３０１、量産化コマンド実行部３０３及びベリファイコマンド実行部３０７の各動作が、第２の実施形態と異なる。
【００３７】
コマンド処理部３０１は、メモリ３０５の領域３５２に格納されている量産用ソフトウェアのプログラムサイズと、第２の実施形態のように量産化コマンドに応じてメモリ３０５の領域３５３に領域３５４の量産用鍵が上書きされた端末３００のブート処理時間とに応じて、入力された量産化コマンドを２種類の量産化コマンドのどちらかに判別する。量産化コマンド実行部３０３は、コマンド処理部３０１によって判別された量産化コマンドに応じて異なる動作をする。また、ベリファイコマンド実行部３０７も、コマンド処理部３０１によって判別された量産化コマンドに応じて異なる動作をする。
【００３８】
図６は、量産化コマンド実行前及び量産化コマンド実行後それぞれの、第３の実施形態の端末３００が備えるメモリ３０５の各領域の内容を示す図である。メモリ３０５には、暗号化されたソフトウェアをそれぞれ格納するための領域３５１，３５２と、当該ソフトウェアを暗号化又は復号するための鍵をそれぞれ格納するための領域３５３，３５４とが設けられている。第２の実施形態と同様に、量産化コマンド実行前（開発段階）は、領域３５１に開発用ソフトウェアが格納され、領域３５２に量産用ソフトウェアが格納され、領域３５３には開発用ソフトウェアに利用可能な開発用鍵が格納され、領域３５４には量産用ソフトウェアに利用可能な量産用鍵が格納されている。
【００３９】
本実施形態では、コマンド処理部３０１に量産化コマンドが入力されると、コマンド処理部３０１は、メモリ３０５の領域３５２に格納されている量産用ソフトウェアのプログラムサイズを解析する。コマンド処理部３０１は、量産用ソフトウェアのプログラムサイズがしきい値未満であれば、第１量産化コマンド３３１を実行するよう量産化コマンド実行部３０３に指示する。一方、量産用ソフトウェアのプログラムサイズがしきい値以上であれば、コマンド処理部３０１は、第２の実施形態で説明した端末２００の電源をＯＮする操作を行ったときのブート処理に要する時間を予測する。コマンド処理部３０１は、予測ブート処理時間がしきい値未満であれば第２量産化コマンド３３２を実行するよう量産化コマンド実行部３０３に指示し、予測ブート処理時間がしきい値以上であれば第１量産化コマンド３３１を実行するよう量産化コマンド実行部３０３に指示する。コマンド処理部３０１は、量産化コマンド実行部３０３の第１量産化コマンド３３１と第２量産化コマンド３３２のどちらを実行するよう指示したかを記憶する。
【００４０】
量産化コマンド実行部３０３は、第１量産化コマンド３３１を実行するよう指示されたときは、メモリ３０５の領域３５２に格納されている量産用ソフトウェアをコピーして領域３５１に上書きし、メモリ３０５の領域３５４に格納されている量産用鍵をコピーして領域３５３に上書きする。一方、第２量産化コマンド３３２を実行するよう指示されたとき、量産化コマンド実行部３０３は、メモリ３０５の領域３５４に格納されている量産用鍵をコピーして領域３５３に上書きする。
【００４１】
また、本実施形態のベリファイコマンド実行部３０７は、ベリファイコマンドが入力されると、コマンド処理部３０１に記録されている量産化コマンド実行部３０３に指示した量産化コマンド（第１量産化コマンド３３１又は第２量産化コマンド３３２）に応じて異なるベリファイを行う。すなわち、第１量産化コマンド３３１が実行されたとき、ベリファイコマンド実行部３０７は、メモリ３０５の領域３５１の内容と領域３５２の内容を比較する。ベリファイコマンド実行部３０７は、各領域の内容を比較した結果、領域３５１の内容と領域３５２の内容が一致しなければ端末３００が開発段階（量産化コマンド実行前）と判断し、一致すれば量産段階（量産化コマンド実行後）と判断する。
【００４２】
一方、第２量産化コマンド３３２が実行されたとき、ベリファイコマンド実行部３０７は、メモリ３０５の領域３５３の内容と領域３５４の内容を比較する。ベリファイコマンド実行部３０７は、各領域の内容を比較した結果、領域３５３の内容と領域３５４の内容が一致しなければ端末３００が開発段階（量産化コマンド実行前）と判断し、一致すれば量産段階（量産化コマンド実行後）と判断する。なお、ベリファイコマンド実行部３０７は、領域３５１又は３５３の全ての内容と領域３５２又は３５４の全ての内容を比較しても、領域３５１又は３５３の内容の一部と領域３５２又は３５４の内容の一部を比較しても良い。
【００４３】
さらに、本実施形態では、量産化コマンド実行後の端末３００の電源をＯＮする操作が行われたとき、ソフトウェア選択部３１５は、まず、メモリ３０５の領域３５１及び領域３５３からそれぞれデータを読み込む。復号処理部３１７は、領域３５３から読み込んだ量産用鍵を用いて、領域３５１から読み込んだ開発用ソフトウェアを復号する。第１量産化コマンド３３１が実行されたとき、量産用鍵で量産用ソフトウェアは復号されるため、当該復号は成功する。一方、第２量産化コマンド３３２が実行されたとき、量産用鍵で開発用ソフトウェアを復号することはできないため、当該復号は失敗する。このため、ソフトウェア選択部３１５は、次に、メモリ３０５の領域３５２及び領域３５４からそれぞれデータを読み込む。復号処理部３１７は、領域３５４から読み込んだ量産用鍵を用いて、領域３５２から読み込んだ量産用ソフトウェアを復号する。量産用鍵で量産用ソフトウェアは復号されるため、当該復号は成功する。ブート処理部３１３は、復号された量産用ソフトウェアを用いて端末３００を起動する処理を行う。
【００４４】
本実施形態の端末３００の動作について説明する。図７は、第３の実施形態の端末が量産化コマンドを実施する際のフローチャートである。ステップＳ１０１で、端末３００は、量産化コマンドが未実施かを判別し、未実施の場合はステップＳ１０３に進み、実施済みの場合は処理を終了する。ステップＳ１０３で、端末３００は、量産化コマンド３３１を実行するかを判定し、実行する場合はステップＳ１０５に進み、実行しない場合はステップＳ１０９に進む。ステップＳ１０５で、端末３００は、領域３５１の開発用ソフトウェアを量産用ソフトウェアに書き換え、かつ、ステップＳ１０７で、領域３５３の開発用鍵を量産用鍵に書き換える。一方、ステップＳ１０９で、端末３００は、量産化コマンド３３２を実行するかを判定し、実行する場合はステップＳ１０７に進み、実行しない場合は処理を終了する。
【００４５】
図８は、第３の実施形態の端末がベリファイコマンドを実施する際のフローチャートである。ステップＳ２０１で、ベリファイコマンド実行部３０７は、第１量産化コマンド３３１が実行されたとき、メモリ３０５の領域３５１の内容と領域３５２の内容を比較し、第２量産化コマンド３３２が実行されたとき、メモリ３０５の領域３５３の内容と領域３５４の内容を比較する。ステップＳ２０３で、各領域の内容に差分があったかを判定し、差分があった場合はステップＳ２０５に進み、差分がなかった場合は処理を終了する。ステップＳ２０５で、差分があったことを示すＬＥＤの点灯等の動作が行われる。
【００４６】
図９は、第３の実施形態の端末の電源をＯＮする操作を行なったときのブート処理を示すフローチャートである。ステップＳ３０１で、ブート処理部３１３は、領域３５３から量産用鍵を読み出す。ステップＳ３０３で、ブート処理部３１３は、領域３５１からソフトウェアを読み出す。ステップＳ３０５で、復号処理部３１７は、ステップＳ３０３で読み出したソフトウェアをステップＳ３０１で読み出した量産用鍵で復号する。ステップＳ３０７で、ブート処理部３１３は、ステップＳ３０５での復号が成功したかを判定し、成功した場合は端末３００を起動し、失敗した場合はステップＳ３０９に進む。
【００４７】
ステップＳ３０９で、ブート処理部３１３は、領域３５４から量産用鍵を読み出す。ステップＳ３１１で、ブート処理部３１３は、領域３５２からソフトウェアを読み出す。ステップＳ３１３で、復号処理部３１７は、ステップＳ３１１で読み出したソフトウェアをステップＳ３０９で読み出した量産用鍵で復号する。
【００４８】
本実施形態によれば、量産化用ソフトウェアのプログラムサイズと、上記説明した予測ブート処理時間とに応じて、第１量産化コマンド３３１及び第２量産化コマンド３３２のいずれかを実行する。第１量産化コマンド３３１を実行した場合、端末３００の電源をＯＮした際にソフトウェアの復号に失敗しないためブート処理が早く行われる。一方、第２量産化コマンド３３２を実行した場合は、端末３００の電源をＯＮした際にソフトウェアの復号に１度は失敗するが、メモリ３０５の書き換えがファイルサイズの小さい量産用鍵の上書きだけで良いため、量産時間を短縮できる。このように、状況に応じて適当なメモリ３０５の書き換えを行うことができる。
【産業上の利用可能性】
【００４９】
本発明に係る情報処理端末は、量産時にメモリの書き換えを行う電子機器等として有用である。
【図面の簡単な説明】
【００５０】
【図１】第１の実施形態の端末を示すブロック図
【図２】量産化コマンド実行前及び量産化コマンド実行後それぞれの、第１の実施形態の端末が備えるメモリの各領域の内容を示す図
【図３】第２の実施形態の端末を示すブロック図
【図４】量産化コマンド実行前及び量産化コマンド実行後それぞれの、第２の実施形態の端末が備えるメモリの各領域の内容を示す図
【図５】第３の実施形態の端末を示すブロック図
【図６】量産化コマンド実行前及び量産化コマンド実行後それぞれの、第３の実施形態の端末が備えるメモリの各領域の内容を示す図
【図７】第３の実施形態の端末が量産化コマンドを実施する際のフローチャート
【図８】第３の実施形態の端末がベリファイコマンドを実施する際のフローチャート
【図９】第３の実施形態の端末の電源をＯＮする操作を行なったときのブート処理を示すフローチャート
【図１０】開発段階から量産段階に移行する際に行われる従来のメモリの書き換えを示す図
【符号の説明】
【００５１】
１００，２００，３００  端末
１０１，２０１，３０１  コマンド処理部
１０３，２０３，３０３  量産化コマンド実行部
１０５，２０５，３０５  メモリ
１０７，２０７，３０７  ベリファイコマンド実行部
１０９，２０９，３０９  ＬＥＤ駆動部
１１１，２１１，３１１  キー操作処理部
１１３，２１３，３１３  ブート処理部
１１５，２１５，３１５  ソフトウェア選択部
１１７，２１７，３１７  復号処理部
【図１】
2009037511.tif 000003
【図２】
2009037511.tif 000004
【図３】
2009037511.tif 000005
【図４】
2009037511.tif 000006
【図５】
2009037511.tif 000007
【図６】
2009037511.tif 000008
【図７】
2009037511.tif 000009
【図８】
2009037511.tif 000010
【図９】
2009037511.tif 000011
【図１０】
2009037511.tif 000012