突然消失するかもしれないブログ

”とつきえブログ”

カテゴリーアーカイブ: Nexus One

遂にこち亀にスマートフォンが登場!

@GaAppsさんのtweetで知ったのですが、なんとあのこち亀にスマートフォン(iPhone、Xperia、Nexus Oneなど)が登場したそうです。(笑)

こち亀はこの手の情報は早いですね。

このまま一気にスマートフォンの時代が幕開けしてしまうのでしょうか。

なんだとwww on Twitpic

1qmapb[1]

広告

Android2.2/FroyoのAppsOnSDの仕組みについて

本エントリーは随時更新中です。

Android2.2/Froyoから標準でサポートされることになったAppsOnSD機能(従来Apps2SDと呼ばれていた機能)の概要をざっくりまとめてみました。

・Google公式のAppsOnSDに関する情報はこちら。
App Install Location | Android Developers

・AppsOnSD機能は、アプリのパッケージを暗号化してmicroSDにインストール(保存)し、microSDからアプリを実行することができる。

AndroidManifest.xmlで「android:installLocation=”preferExternal”」を指定するだけ。

<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
android:installLocation=”preferExternal”
… >

・アプリによっては、Android端末内部のNAND(/data)にインストール(保存)したアプリを、microSDに移動して、microSDから実行することができる。

Android端末内部のpmコマンドを使用する。

adb shell pm setInstallLocation 2

・microSDを外部のPCなどからUSBマスストレージとしてマウントした場合は、AppsOnSD機能でmicoSDにインストール(保存)されているアプリは強制終了されるため、常駐するアプリには使用できない。

・アプリは端末毎にランダムに生成した暗号鍵でSDカードに暗号化されて保存されるので、インストールに使用した端末でしか使用できない。

・具体的には、以下のように保存される。

暗号鍵:/data/misc/systemkeys/AppsOnSD.sks

(Android端末内に保存されており、root権限がないと読み出せない)

復号化されたアプリパッケージ:/mnt/asec/アプリパッケージ名-1/pkg.apk

暗号化されたアプリパッケージ:/mnt/secure/asec/アプリパッケージ名-1.asec

以下で詳しく見ていきます。

SDKのエミュレータでAndroid2.2/Froyoを実行して、ddmsでエミュレータ内を覗くと以下のようになっています。

dfa2c80b-87c2-44c4-988f-3fef3f35d442

microSDはvfat形式で、microSDのルートディレクトリ(/.)が/mnt/sdcardにRead/Write可能なデバイスとしてマウントされます。このフォルダ配下は従来通り主にデータ保存用として使用されます。

/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

AppsOnSDを有効にしたアプリをインストールすると、/system/bin/voldが、dm-crypt?の暗号化ファイルシステムによってmicroSD上に暗号化してアプリパッケージファイルを保存します。

暗号鍵は、/data/misc/systemkeys/AppsOnSD.sksで、rootユーザしか読めないようになっています。

/mnt/asecにtmpfsというramdiskのような揮発的なファイルシステムがあり、

tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0

/mnt/asecの下にReadonlyのディレクトリとして復号化されたアプリパッケージ毎のディレクトリが作成されてマウントされます。

※com.AndroidTestApp03-1は、AppsOnSDをAndroidManifest.xmlでAppsOnSDを指定したアプリのパッケージ名です。

/dev/block/dm-0 /mnt/asec/com.AndroidTestApp03-1 vfat ro,dirsync,nosuid,nodev,noexec,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

暗号化されたアプリパッケージファイルは、microSD上の/.android_secureにアプリパッケージ毎のコンテナファイル(.asecファイル)が作成されて保存されます。

/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

イマイチ用途がわからないフォルダが/mnt/sdcard/.android_secureと/mnt/secure/stagingです。

tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0

ところで、/system/bin/voldをstringsコマンドでテキスト文字列を抽出してみると面白いことがわかります。

キーワード的には、ASEC, device mapper, dm-crypt, loop device, LVM、といった感じでしょうか。

ソースがないというのもありますがとにかく謎が多いです。

$ strings vold

/mnt/secure/staging/android_secure
/mnt/asec_secure
Device %s, target %s mounted @ /mnt/secure/staging
/mnt/secure
/mnt/secure/staging/.android_secure
/mnt/secure/asec
/mnt/asec
/mnt/secure/asec/xwarp.img

create
Usage: asec create <container-id> <size_mb> <fstype> <key> <ownerUid>
finalize
Usage: asec finalize <container-id>
Usage: asec destroy <container-id> [force]
force
Usage: asec mount <namespace-id> <key> <ownerUid>
unmount
Usage: asec unmount <container-id> [force]
rename
Usage: asec rename <old_id> <new_id>
path
Usage: asec path <container-id>

/dev/block/vold
/sys/devices/virtual/switch/usb_mass_storage/state
/dev/block/vold/%d:%d
/sys/devices/platform/usb_mass_storage/lun0/file
ASEC loop device creation failed (%s)
New loop device created at %s
Failed to open loopdevice (%s)
ASEC device mapping failed (%s)
New devmapper instance created at %s
Found active devmapper for %s at %s
Failed to destroy devmapper instance (%s)
Failed to find loop device for {%s} (%s)
Failed to open new DM device for superblock write (%s)
Failed to get device nodes (%s)
/dev/block/loop%d
Error creating loop device node (%s)
Exhausted all loop devices
/dev/device-mapper
Error opening devmapper (%s)
Error destroying device mapping (%s)
Error creating device mapping (%s)
Error setting device geometry (%s)
Error retrieving devmapper status (%s)
/dev/block/dm-%u
Problem with /dev/ptmx
/dev/cpuctl/bg_non_interactive/tasks

nexus oneでAndroid2.2/Froyoのテザリング機能を試す

Android2.2/Froyoから標準でUSB、Wi-Fiによるテザリング機能がサポートされたので、早速、nexus oneで試してみました。

<追記:2010/05/25

USBでのテザリング方法については、juggly.cnさんのところで詳しく解説されています。

Nexus One(Android2.2)をUSBテザリングしてWindows XPを接続する方法

また、nexus oneの公式ヘルプは役に立つ情報が満載です。

追記:2010/05/25>

Android2.2/Froyoで提供されるWi-Fiによるテザリング機能は、インフラストラクチャモードをサポートしていますが、アドホックモードはサポートしていないようです。

nexus oneの設定方法はとても簡単。

(1)まず、nexus oneにSIMを挿して、3Gのセルラーによるデータ通信ができる状態にしておきます。 

今回使用したのは、ドコモのSIMで、従量制のAPN(mopera.net)に接続しました。

※nexus oneでは、0120.mopera.net/0120.mopera.ne.jpのAPNは接続できないようです。

device-08-01 (2)「設定」→「無線とネットワーク」をタップすると、「テザリングとポータブルアクセスポイント」という新しい設定項目があります。 

こちらをタップします。

device-09 (3)「USBテザリング」、「ポータブルWi-Fiアクセスポイント」の2種類のテザリング方法が提供されていることがわかります。 

「ポータブルWi-Fiアクセスポイント」をチェックして、「ポータブルWi-Fiアクセスポイントの設定」をタップします。

device-10 (4)「Wi-Fiアクセスポイントを設定」という設定項目が表示されるので、こちらをタップします。
device-11 (5)アクセスポイント(AP)のSSID名を設定できます。 

また、セキュリティ(OpenかWPA2 PSK)のどちらか一方を選択出来ます。

Nintendo DS系だとOpenしか選べないと思いますが危険なので、通常はWPA2 PSKを選択することになると思います。

今回はWPA2 PSKを選択しました。

また、パスワードはアルファベットあるいは数字のみは受け付けられないので注意が必要です。

(5)これでnexus oneの設定は完了です。

次にnexus one経由でインターネットに接続します。

試した機器は、MacBook(Early 2009)、Mac OS X Snow Leopard 10.6.3です。

gooスピードテストでスループットを計測してみたところ、1.18Mbpsという結果になりました。

これだけ通信速度が出ていれば、出先でちょこっとインターネットするだけなら十分のような気がします。しばらく使っていると、nexus oneのテザリング経由でインターネットしているのを忘れてしまうくらい快適です。

さすがにB-Fletsに比べると遅いですが、下手するとFlets ADSLよりも十分早いかもしれません。

MacやPCから使う場合は、パケット通信量(通信料も)を抑えてレスポンスを上げるためにSquidの導入を検討した方が良いかもしれません。

image

iPod touch 2G、3.1.3でも問題なく接続できることを確認しました。

mobile Safariでのブラウジング、App Storeでアプリのアップデートなども普通に行うことが出来ます。

BNRでのスループットの計測結果は以下の通り。

下りは、平均174.7kbps、上りはアップロードデータサイズが600KBで254.45kbpsでした。

iPod touch 2Gだと相変わらず通信速度が出ないわけですが、これはハードの問題ですかね。

<下り>

image

<上り>

image image

nexus oneを手動でAndroid2.2/Froyoにアップデート、ニコニコ動画もそのまま見られる

本エントリーは随時更新中です。

コムギドットネットさんのところでもすでに報告されていますが、nexus one(n1)を手動でAndroid2.2/Froyoにアップデートする方法が見つかりました。

Nexus OneのFroYo OTAが本当に開始 – コムギドットネット

手持ちのn1で試してみたところ、問題なくAndroid2.2/Froyoにアップデートすることができ、Flash Player 10.1 BETAも動作しました。

衝撃的なのはn1でそのままニコニコ動画が見られるという事実です。(拡大再生がなぜかできませんでしたが)

<nexus oneのAndroid2.2/Froyoへの手動アップデートの方法>

手順書/OTA手動導入(NexusOne) | Android Custom Cookbook

こちらもコムギドットネットさんのところにまとめられていますので、その手順に従うだけです。

OTAファイルをダウンロードする

Android 2.1-update1 OTA
Android 2.2: OTA
<追記:2010/05/24 8:35現在、404 Not Foundとなり、ダウンロードできなくなったようです。

<追記:2010/05/24 23:34現在、コムギドットネットさんのところにミラーサイトが追加されました。感謝です。
Android 2.2 OTA Mirror1 Mirror2

nexus oneが最新のAndroid 2.1の状態であれば(1回アップデートされています)、Android2.2のイメージファイルだけでOKです。

導入する

1. ダウンロードしたファイルを update.zip にリネームし、SDカードにコピーする。
2. 電源を切る。
3. ボリュームダウンキーを押しながら電源を入れる。
4. bootloader が起動する。
5. ボリュームキーで上下移動し recovery にカーソルを合わせ電源ボタンで選択する。
6. /!\とドロイド君が表示されたら、電源ボタンを押しながらボリュームアップキーを押す。
7. リカバリメニューが表示されたら apply sdcard:update.zipを適用する。
8. reboot system now を行うとRadioイメージの書込が実行されるので待つ。2~4回程自動的に再起動される。
9.システムが起動したらアップデート完了。

8.のステップで処理に時間がかかるため途中不安になりますが、加えて再起動が繰り返されますので、辛抱強く待ってください。

尚、nexus oneをハック済み(root取得済み)の場合、うまくいかない場合があるそうなので、一度、無改造のノーマルな状態に戻して実行した方が良いかもしれません。

さて、こちらがめでたくAndroid2.2/Froyoになったnexus oneの端末情報画面です。

Androidバージョンが2.2と表示されているあたりが眩しい。

device-01

<Flash Player 10.1 Betaを導入する>

Android2.2にアップデートすると、これまで見えなかったFlash Player 10.1 BETAがAndroid Marketに出現します。

device-02 device-03

サーバが混んでいるのか、ダウンロードにしばらく時間がかかりますが、放置しておけば無事にダウンロードが完了し、インストールできます。

device-04 device-05

そしてこちらがニコニコ動画をAndroidの標準ブラウザで再生させているところです。

Flash Playerで見事にニコニコ動画の動画の再生とコメント表示ができています。

拡大ボタンは押しにくいですが、一応、拡大再生はできました。ニコニコ動画の再生は比較的スムーズ(カクカクじゃない)と思いますけど。

device-06-01

こちらは、Androidの標準ブラウザからUSTREAMを表示させたところです。

複数のFlash Playerのインスタンスが使われているようですが、メモリ不足のせいなのか、Flashの再生が止まってしまい、いずれか1つのインスタンスしか動作させることができないようです。

device-07

Flashに対応したサイトならほとんど普通にみられるのではないかと思われます。

HTML5もいいですが、やはりFlash Playerに対応しているというのは、かなり魅力的ですね。

速報:nexus oneのAndroid2.2/Froyoのファームウェアアップデート始まる

<追記:2010/05/23

nexus oneを手動でAndroid2.2/Froyoにアップデート、ニコニコ動画もそのまま見られる

N1を手動でAndroid2.2/Froyoにアップデートする方法が見つかりましたので、チェックをお忘れなく。

追記:2010/05/23>

Android2.2/Froyoのファームウェアアップデートは、nexus oneも含めて数週間後(5月末~6月初旬)とされていたのに、米国ではnexus oneへのファームウェアアップデートが開始された模様です。

いつも通り、ファームウェアアップデートのお知らせがアラートで来るようなのですが、まだこちらでは確認できていません。また、手元のnexus oneで手動でチェックしてみましたが、まだアップデートできませんでした。

Android2.2/Froyoは、とにかく動作が速いらしいです。

一刻も早くAndroid2.2/Froyoを体験してみたいところ。

Nexus OneへのAndroid 2.2(Froyo)アップデートリリース

米Googleは22日、同社ブランドのAndroidスマートフォン「Nexus One」に対して次期バージョンのOS、Android 2.2(Froyo)へのアップデートをリリースした。Android 2.2(Froyo)の正式リリースは数週間後、早くとも2、3週間後と告知されていた為に正にサプライズ。この分だと数週間以内にさらにいくつかの端末向けのアップデートもリリースされるかもしれない。

元記事は、↓です。Fakeじゃないことを祈ります。

A Late Night Froyo Treat! Android 2.2 Goes Live On The Nexus One

aaa2[1]

bbb[1]

ccc[1]

eee[1]

nexus oneをファームウェアアップデートしてみた

nexus oneのワイヤレス通信(Wi-Fi)をONにしておいたところ、待望のファームウェアアップデートの通知がようやく来ました。

ということで、早速、nexus oneのファームウェアをアップデートしてみました。

この投稿の続きを読む

Nexus Oneのソフトウェアアップデートでマルチタッチ機能、Google Gogglesに対応!

Googleがソフトウェアアップデートにより、Nexus Oneで待望の「マルチタッチ」対応が行われることになりました。実に素晴らしい!

常に電源を入れっぱなしにしているので、アップデートの通知が来たら速攻アップデート予定です。

Google Nexus One にマルチタッチ対応のソフトウェア アップデート

Google、「Nexus One」にマルチタッチ機能とGogglesを追加 – ITmedia エンタープライズ

Google Gogglesは、携帯で撮影した写真をクエリとして検索できるサービスだ。

常々、Androidで「マルチタッチ」ができないのは不便だと感じていたのですが、これで一気にiPhoneとの距離を縮められるかもしれません。

Nexus OneになってようやくiPhoneとAndroidがようやく勝負できるかどうか、議論できるようになった気がします。

%d人のブロガーが「いいね」をつけました。