Gear VRで野良アプリエコシステムの妄想 - ReDo

2015年5月 8日

Gear VRで野良アプリエコシステムの妄想

メモ。

○osigファイル

Gear VR向け開発用ビルドには、osigファイルをapk(Androidアプリ本体)ファイルに含める必要があります。
osigファイルは(Smartphone側母艦の)Device Idから生成します。apkは実体はzipアーカイブですが、展開してみるとそのまま変換も何もなしに含まれているのでセキュアななんたらというのはない模様。

⇒第1の結論:開発者グループでosigファイルアップローダを作ってしまえば概ね良いと思います(そしてそれぐらいまではOculus/Samsung側も把握している)

○VR Jam用global sign

VR Jam向けapk生成Webサービスがある模様ですが、こちらでできたapkに「マスタosig」みたいなものは入っていませんでした。AndroidManifest.xmlにもそれらしい記載はなかったため、こちらは署名で見ている気がします。
つまりVR Jamが終わったら向こうの好きなタイミングでWebサービスも証明書もclose/expireできるということでおそらく長生きはしないと思っています。

○apkのrepackageとresign

Androidのapkの実体がzipなことは前述しましたが、その一意性も署名されているだけなので以下のアプリやライブラリの示すとおり、apkのビルドというのはAndroidアプリ内で実施が可能です。

AIDE- IDE for Android Java C++
https://play.google.com/store/apps/details?id=com.aide.ui
JavaIDEdroid
https://code.google.com/p/java-ide-droid/

(知りませんでしたが)どうやらadb devicesでとれるDevice Idはアプリからもとれるらしいので

SideloadVR DeviceID
https://play.google.com/store/apps/details?id=com.skyworxx.sideloadvrdeviceid

結論として以下の仕組みをもったGear VR野良apkマーケットアプリをつくることができそう、というのが現時点での見解です。

・osigファイルをローカルで生成/またはDevice Idからユーザに生成してもらう。
・apkをダウンロードする。
・apk(zip)を展開してosigファイルを追加してre-signする。
・3rd-partyアプリとしてインストールする。
・Oculus Homeには当然含まれないので、独自Homeアプリを作る。PackageManagerからAndroidManifest.xml中のmeta-data vr_onlyあたりを見る。

⇒第2の結論:ここまでやるのは面倒なのでOculus/Samsung側の様子を見るとして、「自分のosigが正しく入ったapk群を、Gear VRを外さずに切り替えられる独自ランチャーアプリ」あたりから着手すべき?

コメント(2)

1. ユーザー登録する
2. ユーザーは自分のosigをアップロードできる
3. 開発者はAPKをアップロードする
4. ユーザーはアプリを検索してダウンロードしようと
5. ダウンロードする時にオンデマンドにサーバー側でAPKを加工してダウンロードするユーザーのosigを挿入する

…みたいなことができたらいいなぁ、と考えたりしました。

>ななしさん
そういえば、このエントリではDevice ID検出アプリだけ紹介してしまっているのですが
実はsideloadVRはそういうサービスのサイトです。

ただ、やはりapkの再構成独自署名は中身の書き換えが可能でミスるとスマホのっとられに等しいのがリスキーすぎて…
ローカル再署名が現時点では妥当かなあ、と思ってはいます。(いろいろなレベルのサービスがニョキニョキ生えるのがいいとは思います

コメントする