電話部分と言うよりはベースバンドへのアクセス部分をsimへのアクセスルートから追ってみました。
本当に追っただけ。ちなみに、コード上でしか見てないので正しい保証はありません。
概要はここがわかりやすそうです。
Android – Radio Layer Interface
IMEI表示画面あたりからコードを追いかけます。
端末の電話をかける画面で「*#06#*」と入力するとIMEI/MEIDが表示されるので、そこから処理を追った記録です。
このコマンドは、このソースの中で処理されています。
packages\apps\Phone\src\com\android\phone\SpecialCharSequenceMgr.java
ついでに、アンロックコードを買った場合などに入力するための画面がどこにあるのかも調べてみました。このソースのようです。
frameworks\policies\base\phone\com\android\internal\policy\impl\SimUnlockScreen.java
IMEI表示画面の呼び出し部分を追っていくと、表示要求はここから出ています。
packages\apps\Phone\src\com\android\phone\PhoneApp.java
表示の内容はsimからデータを持ってきているためその部分を追いかけます。
packages\apps\Phone\src\com\android\phone\IccDepersonalizationPanel.java
packages\apps\Phone\src\com\android\phone\IccPinUnlockPanel.java|41| *Panel where you enter your PIN to unlock the SIM card.
frameworks\base\telephony\java\com\android\internal\telephony\gsm\SimCard.java
frameworks\base\telephony\java\com\android\internal\telephony\IccCard.java
ついでに、simカードが刺さっていないと「カードが刺さってない」というメッセージを出して何もできなくしたりするためのフラグがここにあります。
packages\apps\Phone\res\values\config.xml|25|
simの内容を読む部分を追いかけます。
frameworks\base\telephony\java\com\android\internal\telephony\Phone.java //ICカード読み込み
frameworks\base\telephony\java\com\android\internal\telephony\IccCard.java //ICカード読み込み続き
frameworks\base\telephony\java\com\android\internal\telephony\PhoneBase.java //ICカード読み込み続き2
frameworks\base\telephony\java\com\android\internal\telephony\CommandsInterface.java|654| void supplyNetworkDepersonalization(String netpin, Message esult); //また続き
frameworks\base\telephony\java\com\android\internal\telephony\RIL.java //ICカード読み込み続き socketで通信してる
java層はここまでです。
ここ以下は各ベンダーが実装する部分になるためカスタマイズが入ると思われます。
以下はネイティブ層です。
android\hardware\ril\libril\ril.cpp //socketの相手
android\hardware\ril\include\telephony\ril.h //RIL_PERSOSUBSTATE_SIM_NETWORK_PUK ?
RILはRadio Interface Layerという部分らしいです。
個人で追いかけられるのはここまでかな?
あとはライブラリとしてメーカーから提供されると思われるので今回は追っていません。
AOSPのコードにはリファレンスのコードは置いてあったので、もうちょっと見るのは可能かもしれません。
MSMやQSD(というよりSnapdragonといった方がわかりやすいか)の載ってる端末はQualcommのカスタムでしょうし、hummingbirdだとsamsung独自だと思います。
ちなみにsamsungのsimロックのためのデータがいっしょに入っているらしく?、Galaxy SやGalaxy Tabだとロックの掛かっていないイメージを書き換えるとあっさりsimロック解除できるようです。
0 件のコメント:
コメントを投稿