2012年10月1日月曜日

電波なお話し


androidに限らず携帯電話全般のお話になります。
A社が作って、キャリアB社が販売した電話機にC社のSIMを入れてインターネットへの接続ができるか?それを確認するためには、いくつかの条件があります。

1.電波の形式
2.ベースバンド(周波数)
3.SIMロック
4.アクセスポイント


1.電波の形式

電波の形式は電話機のハードウェアで固定されています。電波形式が違う電話機は他キャリアでは確実に使用できません。

2G
その昔、2Gと言われた世代の携帯はアナログの電波を使っていました。
日本はPDCという形式が使われ、海外主流はGSMという形式です。
海外の携帯電話は日本国内では米軍基地の傍以外では仕えませんでした。
国内の電話も下記2~4の条件により、他キャリアの携帯電話は使えません。

2.5G
AUが採用したCDMA-ONEはデジタル通信でした・・・が2Gの設備を使っていたので2.5G
と呼ばれています。過渡期の仕様なので世界的にも左程普及しませんでしたが、AUはデジタル通信の強みを生かしてLISMOなる音楽配信でユーザを獲得しました。

3G
AUに遅れをとったDocomoやSoftBank(旧Vodafon)は世界標準のWCDMAを採用、中途半端なAUはCDMA-ONEの設備を使用できるCDMA2000を採用。AU以外はグローバルになった訳です。

4G
Docomo,SoftBankは世界標準のLTEを採用、AUは当初WiMaxを押していましたが、iPhone5がLTE形式なのでAUもLTEが4Gの主流となりそうです。

つまり、3G~4Gになって、日本は世界主流共通のハードウェア環境になった訳です。

2.ベースバンド(周波数)

ベースバンドは携帯電話にデータという形で設定されています。
3GにおいてDocomoとSoftBankは一部ベースバンドが一致していません。携帯電話メーカーがキャリア向けにベースバンドを設定している可能性があり、国内メーカーが出している携帯電話は特に互換性があるかどうか機種毎に調べなくてはいけません。
「fomaプラスエリア(850MHz帯)」は海外メーカー製携帯電話でも使えない可能性が高くなります。
ちなみにSBの「プラチナバンド(900MHz帯)」はイメージ的にクロッシー(LTE)に対抗しているように見いせていますが、fomaプラスエリアと同等のものです。海外製の電話機では一般的に使用されているバンドなので、HTC製やSAMSUNG製ならばあたりまえに使えたりします。

今日の一言:「次回に続くよ!」


2012年9月3日月曜日

Androidの起動状態

今後記事を書くときに、Androidとは直接関係無いけれど、コンピューター的には一般常識と思われる言葉には緑の色をつけときますね。意味がわからない人はググりましょう。

Androidには4つの起動状態があります。
機種によっては全ての状態になれないものもありますが。。。
1.FastBootモード
2.リカバリーモード
3.通常起動モード
4.セーフティーモード

FastBootモード

ブートストラップ中最初のブートローダーを読み込んだ状態です。
この状態のとき、AndroidOSは読み込まれていません。画面表示も無く、キーも利かない状態です。Linuxとしてもshellが動作できる状態ではありません。
この時にできることは、USBで接続されたPCの上で走る、機種(メーカー)専用のプログラムでROMファイルをAndroid端末に転送し、書き込む事だけです。
携帯電話とは国毎、キャリア毎に使用する電波の周波数や使い方が違います。この設定情報はベースバンド情報と呼ばれていますが、AndroidOSではなくLinux上で管理されているようです。
このベースバンド情報の書き換えは、通常このFastBootモードにて行われます。

Recoverモード

AndroidOSは動作していませんがLinuxがある程度動作している状態です。
Linux上でAndroidが動作するためのファイルシステムは、ほぼマウントされ、SDカードが読み書きできます。
機種によってどのようなリカバリプログラムが入っているか異なりますが、
SDカードに書き込まれたROMのアーカイブを解凍して、各ファイルシステム(/bootや/systemなど)
にファイルとして書き込めます。キャリアが提供するアップデートやカスタムROMの書き込みは、通常このリカバリーモードにて行われます。
カスタムROM書き込みには ClockWorkMod のようなカスタムリカバリプログラムが必要となりますが、通常、FastBootモードにてカスタムリカバリプログラムを書き込んでおきます。

通常モード

説明省略

セーフティーモード

AndroidOSが起動しますが、システムアプリのみを起動し、ユーザアプリを起動しません。
…しかし、これといって使い道が無いモードですよね。

各モードへの入り方は機種ごとに違います。大抵ボリュームキーのどちらかを押しながら電源キーを長押しする…てな感じですが。

カスタムリカバリプログラムはJavaでは無くネィティブコードで書かれています。
つまり、その機種ごとに違うハードキーを認識したうえ、その機種のCPU向けにコンパイルされたコードで書かれているということです。やはりグローバルにユーザーが多い機種のほうが有利ですね。

今日の一言:「やっぱ、国内メーカーじゃなくてグローバルモデルっしょ。」

2012年8月20日月曜日

カスタムROMってなんぞや?

Androidのシステムファイルは/systemに展開されています、、先頭の「/」はroot(ルート)と呼ばれ、superuserである「root」と同じ呼び方ですが、単に「根元」という意味です。
Androidの用語はlinuxの用語である場合が多いので、解らないときは各自ググりましょう。2ch的に言うならばggrksと言われないように:-) ggrksが解らない人は、「ggrks 意味」でググりましょう。
んぁ?ググるが解らない??orz.. ぢゃ、exiteかgooかyaahooで「ググる 意味」で……

AndroidのカスタムROMとは、主にこの/Systemの改造したり入れ替えたものです。
/Systemの中身はAndroidを構成するサービスプログラムと通常削除できないGmail,Map、連絡先アプリやメーカのプリインストールメニュープログラムなどで構成されています。
「ROMを焼く」という表現が使われますが、10~20年前の電子機器になぞらえて言われているだけで、実際はAndroinフレームワークやその下で動くシステムアプリを入れ替えているに過ぎません。左程危険なわけでも無いのでチャレンジしてみてください。最悪の結果を考えてROM焼きをするならば、水没、紛失保障のオプションに1カ月入るのもいいかもしれません。ROM焼き失敗したときには携帯と一緒に入浴すれば…。

カスタムROMにしろ、フォントにしろ、大抵のカスタマイズは先人が苦労して手法を確立し、インターネットで公開しています。この公開された手法を使わないでカスタマイズするためには超マニアなスキルと寝食を忘れた時間が必要となります。先人の知識は偉大です。取りあえず享受する側になって、知識を増やしましょ。:-)
今日の一言:「Nexusの名前がつくAndroid機は一番情報が多い!」
 Docomo版GalaxyNexusにGooglが公開しているAndroid4.1.1(JellyBean)を導入
多分日本のメーカでは、まだ採用されていないバージョン
JellyBeanベースのカスタムROMを導入
ロック画面にバッテリー状態や天気予報が表示されている

root化てなんぞや?(2)

さて、root化するとどんな事ができるかってーと、機種による違いで断言はできないけれど、
・電源ONした時に表示されるロゴやアニメーション(bootlogo,bootsplash)をクールなものに差し替える。
・ROMの書き換えや、Android丸ごとバックアップができるClockWorkMod等のリカバリモードを導入できる。
・機能が上がり、格段に使いやすいカスタムROMを導入できる。
・Wi-Fiで端末同士を接続するAdd-Hook接続が使えるようになる
・Market(GooglePlay)にてダウンロード制限がかかっているアプリをダウンロードできるようにする。
・root化されていないと動作しないアプリを動かせる。
…文で書くと大したことに見えないけれど、Androidをカスタマイズするためには、何をするにしてもroot化は必須です。

ここでエンジニア的に注意しなくてはいけない事があります。Android本体のみで"rooted"な端末が、ADB(AndroidDebugBrige)=(WindowsとAndroid端末を繋いで、ファイル転送やデバッグをするツール)を使用したときにrootになれる"ADB rooted"とイコールではありません。
アンドロイドシステムに何らかの操作を行う場合、ADBにてWindowsから操作を行うか、Android単体で操作するかの違いが出てくるので、手順やできる事に違いが出てきます。
誰かがカスタムロムを提供している=adb rooted,self rootedな端末と考えて、ほぼ間違いありません。
今日の一言:「機種名+カスタムROMでググってから買えってば」
bootSplashを差替えたGalaxyNexus

2012年8月5日日曜日

root化ってなんぞや?(1)

Android携帯にアプリを入れようとすると、「×××× for root」なんてアプリがあって、root化されていないと使えない事がたびたびあります。
パッと出てくるだけで、
・アプリのバックアップ
・バッテリーの節約アプリ
・フォントの変更
・メーカー、キャリアがインストールしてくる糞アプリの削除
等々、root化されていないとできません
…で、root化って何よ??

AndroidってのはLinuxの上Dalvikという名のJAVA仮想マシンを動かして、その上でAndroidフレームワークを動かしている訳で、おおもとはLinux。
Androidを影で操るLinuxを知らなければ、この謎は解けません。

LinuxやUnixではOSにユーザを登録するときに権限を与える事ができます。権限を与える事自体、権限が無いとできませんが。。 :-)
そのユーザの中で最大の権限を持っているのがSuperUserである"root"というユーザーです。
rootでloginしているとき、rootユーザは何でもできます。OSが動くための設定を変えたり、大事なファイルを消したり。。。。
その為、Linux,Unixの管理者でも、通常は権限の無い一般ユーザでLoginし、必要な時だけrootになって管理します。

Android携帯も同じです。
携帯の持ち主がSuperUserになれてしまうと、携帯電話の大事なシステムファイルやさまざまなシステムデータが消されてしまうかもしれません。
携帯電話メーカーとしては、そのような携帯電話を保障して、無料修理などしたくはない訳です。
その為、出荷時にはrootユーザとしてアプリを動かせないようにして出荷しています。

ま、大抵のメーカ製Android機は、root化の方法が見つけ出されていて無保証である事を気にしなければrootの恩恵を受けられます。…SHAPE製を除けばね。

という事で、今日の一言。
「カスタマイズしたいならSHAPEは止めとけってwww」
Wiss1のみなさんや、そうでないみなさん、柴崎@自宅です。
このブログでは、Androidアプリの開発に役立つ情報を中心に、トリビア~ンな情報を提供していきたいと思っています。直接、開発に関係無い人にも、御自分のスマホのカスタマイズ等に後用立て下さい。