git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@333 385bec56-5757-e545-9c3a-d8741f4650f1

This commit is contained in:
mizu 2011-06-08 05:46:55 +00:00
parent 29a7451726
commit af0e19b0fc
8 changed files with 207 additions and 0 deletions

View File

@ -0,0 +1,37 @@

//エラー表示コードの下位2桁
0, //不明
1, //デバイスが見つからない
2,//プロダクトコード不一致
3,//ベリファイエラー
4,//パスが長すぎ
5,//ディレクトリ深すぎ
6, //メディアが見つからない(サブ基盤外れなど)
10, //ファイルが見つからない
20, //既に存在
21, //空き容量がない
22, //書込み禁止
30, //アクセスエラー
50, //フォーマットエラー
60, //検証に失敗、改竄
70, //ROM情報エラー
80, //リトライ要求
90, //実行時エラー
99 //深刻なエラー
//上位
CARD = 100,
BKUP DEVICE = 200,
OTHER = 300
これらの合成で表示される
例えば、カードが刺さっていない場合は 101 となる
通常時に発生しやすいと思われるもの
302 .. プロダクトコードが一致しない
101 .. カードが見つからない

View File

@ -0,0 +1,60 @@
動作確認環境:
ARM製 RVC_Nintendo 4.1
omake 0.9.8.5
CTR SDK2.3.4 + PrivateKit(SystemProgramKit,RepairTool,SystemMenu)
動作要件1stNup(SDK 2.3x)以降のシステム本体
準備)
Sampledemos のcommon,gxをビルドしておく
omakerootのあるディレクトリにあるomakeファイルで
SAMPLED_DEMOS_COMMON_INCLUDE_DIR に 
sampledemos/common/includeの位置を指定しておく
公開鍵pubkeyをimp/omakeで指定
ビルド)
omakerootのあるディレクトリでomake実行
body下でビルドし出来たcia を、Imp下のomake(SRC_IMPORTEE_PATH)で指定
(量産機で使うには、マスタリング後のciaを指定)
ビルドするとNANDインポート用のcciができる
インポート先:
ciaをSDからインポート -> SD .. DevMenu使用,DevMenufullならnandにも入れられる
カード起動しインポート -> NAND
量産実機での実行にはマスタリング必須
body下で作成したcia をOLS付でマスタリングし
そのciaを使って作成したcciをマスタリング
マスタリングの流れ:
・body/images下に出来たciaをマスタリングしOLSを付ける
・このciaをImpのomakeで指定、もしくは指定場所に置く
bodyのビルドで上書きされないよう場所かファイル名変えたほうが安全
・imp/omake実行し、cci作成
・cciをマスタリング
・デバッガかライタで開発カードに焼く、
デバッガではロード時にTARGET ERRORと表示されるが気にせず焼く
ライタは使ったこと無いが多分できるはず..
OLSごとリマスタバージョン更新が必要
common/ver.hは表示バージョン、ここだけ変更してもダメ
body/omekeのコメントを参考
NANDインポートで失敗する場合はciaをチェック
SDインポートし
開発実機で動く- マスタリングしてない
量産実機で動く- OLSが付いてない
(1stNup以降の量産機はマスタリング時にSDアプリフラグ必須)
インポート先の本体をシリアル番号で制限してます
"imp/imp_lis/"下にリストと署名サンプル
OpenSSL0.9.6k,rと 1.0.0d で動作確認
imp/imp_list 下にコマンドラインツール(win32版)用バッチ
使い方はcygwinでも同じ
ユーザにはomake指定のpubkeyと組のprivatekeyで作った署名を渡す
本ツール開発時のマスタリングは推進G(高橋さん)に依頼した
マスタリング済みDevMenu(full)および
CUP作成は飯島さんに聞く

View File

@ -0,0 +1,8 @@
#サンプルです、使用時は
#csm_inf.txt に改名して下さい
#本体シリアル表示
-p
#テストメニュー有効
-t

View File

@ -0,0 +1,27 @@
目的:許可した本体のみインポート
公開鍵はROMから読み込む
SC ツール用本体のシリアルをメールなどでREDへ連絡
RED) リスト(csm_list)と署名(csm_sign)を作成し送る
インポート手順
 リスト、署名を書き込んだSDをCTRに差す
・ インポート用アプリをカード起動
・ 有効な本体ならインポートメニューが表示される
署名はOpeneelで作成
特に手を加えずSDルートに置く
リストの書き方
インポート許可シリアルをテキストで羅列
---
aaaaaaaa
bbbbbbbb
----
本体裏シリアル終端のdigit(四角い枠の数字)は省く
digit確認したい場合はリスト作成時にやっとく
ファイルサイズは64Kまで(シリアルのみ記載で、およそ4000台)

View File

@ -0,0 +1,10 @@
<インポータのオプション有効化>
cms_inf.txtの名前でファイル作成
以下の記述でオプションが有効になる
-t: テストメニュー
   カード上のセーブにテストパターン書き込み&ベリファイ
-p: 本体シリアルを表示

View File

@ -0,0 +1,10 @@
量産実機での動作にはマスタリングが必要
ciaはサーバ認証OLS必須
OLSは前回取得時からリマスタバージョンを上げる必要あり(2011/2月現在)
(例えば、前回 1.0.0 なら 1.0.1 )
メジャーはrsfで指定(Remasterversion)
マイナとマイクロはOmakefile
MAKECIAFLAGS = -minor 0 -micro 1
上の場合 *.0.1 (*はrsfのRemasterversion)

View File

@ -0,0 +1,21 @@
<ツール本体(bodyディレクトリ)
操作が出来る状態のとき下画面にボタン表示
表示にしたがってタッチで進行します
(バックアップデリート)
先頭画面で 方向キー LEFT + X 同時押し
<インポータ(impディレクトリ)>
SDに以下を記録して差しておく
cms(cts)_list.txt .. 本体シリアル
cms(cts)_sign.dat .. 署名
/imp/imp_list にサンプル
起動時に本体シリアルをチェックし
許可本体であればメニュー表示、表示にしたがってボタン押
署名はビルド時に指定した鍵とペアの鍵を使う

View File

@ -0,0 +1,34 @@
ビルド時に組み込んだ公開鍵のペアとなるプライベート鍵を使って署名を行う
バージョンで鍵を識別する
鍵変更だけの場合でもバージョンを変えること
Openssl.exe : cygwinのインスト、Win版がある
RSA鍵、ビット長はのみ
SHA256のダイジェストに署名する
Openssl0.9.6.k(r),1.0.0d作成の書名で動作確認
(鍵作成)
openssl genrsa -out private_key.pem 2048
openssl enc -d -base64 -in private_key.pem -out private_key.der
openssl rsa -pubout -inform DER -outform DER -in private_key.der -out public_key.der
(1.0.0の場合)
openssl genpkey -out private_key.der -outform DER -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537
openssl rsa -pubout -inform DER -outform DER -in private_key.der -out public_key.der
(署名)
openssl dgst -sha256 -binary -keyform DER -sign private_key.der -out csm_sign.dat csm_list.txt
プライベート鍵のバイナリが不要なら
openssl genrsa -out private_key.pem 2048
openssl rsa -pubout -outform DER -in private_key.pem -out public_key.der
openssl dgst -sha256 -binary -sign private_key.pem -out csm_sign.dat csm_list.txt
作成したpub鍵をインポートアプリのomakeで指定
OBJECTS[] =
$`(ObjectFromBinary $(TARGET), ./Imp_list/Public_Key.der)
リストをプライベート鍵で署名作成、リストと署名をインポート時にSDから読む