19
android.os.storage YAMAZAKI Makoto (@zaki50)

20110109 abc2010w gingerbread_api_storage

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 20110109 abc2010w gingerbread_api_storage

android.os.storageYAMAZAKI Makoto (@zaki50)

Page 2: 20110109 abc2010w gingerbread_api_storage

Who am I?

• YAMAZAKI Makoto(twitter: @zaki50)

• market: 串かつ(FeliCa push middleware)

• http://sites.google.com/site/94katsu/

Page 3: 20110109 abc2010w gingerbread_api_storage

storage API

Page 4: 20110109 abc2010w gingerbread_api_storage

storage API...?

• 既にあるんじゃ?

• SD カード読み書きできるし

• OBB?

• 何が違うの?

Page 5: 20110109 abc2010w gingerbread_api_storage

Disk Image!

ディスクイメージのオンデマンドマウント

Page 6: 20110109 abc2010w gingerbread_api_storage

特徴

• ちゃんとしたファイルシステム(vfat)

• オンデマンドにマウント/アンマウント

• イメージの暗号化対応

• オーバーレイさせることが可能

Page 7: 20110109 abc2010w gingerbread_api_storage

できないこと

• プログラムからの更新(ro mount なので)

• コンテンツのコピープロテクト

Page 8: 20110109 abc2010w gingerbread_api_storage

StorageManager

Page 9: 20110109 abc2010w gingerbread_api_storage

OnObbStateChangeListener

Page 10: 20110109 abc2010w gingerbread_api_storage

使い方(mount)

Page 11: 20110109 abc2010w gingerbread_api_storage

使い方(ObbInfo)

Page 12: 20110109 abc2010w gingerbread_api_storage

mount 後

Page 13: 20110109 abc2010w gingerbread_api_storage

OBB ファイル

• 現状のAndroid SDK(r8)ではツール未提供

• AOSP にはツールのソースコードあり(gingerbread or master branch)

• vfat のディスクイメージ+OBBメタデータ

Page 14: 20110109 abc2010w gingerbread_api_storage

obbtoolgingerbread ブランチのsdkをビルドしてみた

Page 15: 20110109 abc2010w gingerbread_api_storage

OBB ファイル

ディスクイメージ(vfat)

OBB メタデータ

フィールド名 フィールドサイズ 説明

signature version 4 footerのバージョン(1)

package version 4 パッケージバージョン(?)

flag 4 OBB フラグ。オーバーレイ/ソルト

salt 8 暗号化の際の salt

package name size 4 属するパッケージ名の長さ

package name 可変 属するパッケージ名

footer size 4 signature version から package

name までのサイズ

footer marker 4 OBBファイルであることの目印(0x01059983)

Page 16: 20110109 abc2010w gingerbread_api_storage

OBB ファイル作成

Linux は loopback mountで、 Windows は...

Mac の場合

Page 17: 20110109 abc2010w gingerbread_api_storage

比較

• zipファイル

• SD CARD

• StorageManager(OBB)

Page 18: 20110109 abc2010w gingerbread_api_storage

感想

• はやくSDK に tool を提供して欲しい

• ただし SD CARD にOBB ファイルを置く使い方は現状ではメリットが謎

• OBB ファイルをNFSのような所に置く使い方を想定しているのではないか

Page 19: 20110109 abc2010w gingerbread_api_storage

参考資料• API Reference

• http://developer.android.com/reference/

• AOSP のソースコード

• frameworks/base/libs/util/ObbFile.cpp

• development/samples/Obb

• OBB ファイルのメモ

• http://zaki.tdiary.net/20101224.html