2016年3月12日土曜日

Android 6.0のお話

Amebaを使ってたのですが、いろいろ面倒なのと広告もうざいのでBloggerを利用することにしました。
AndroidやXperiaをはじめとした、技術的なことを備忘録をメインに書いていこうかと思っています。

Android 6.0からAdoptable StorageというSDカードを本体ストレージとしてフォーマットする機能が追加されました。
新規やアップデートともに、ほとんどの端末でメニューには存在しない状態ですが、LG G4やGalaxy S7などではadbコマンドを利用して本体ストレージ化出来るようなのです。
Android 6.0になったXperia Z5 Premium(SO-03H)で試してみました。

結果としては「実用は出来ない」でした。
ストレージのフォーマットは問題なく出来て、アプリのSDカードへの移動も可能です。
しかしながらXperiaのカメラは保存先が「内部ストレージ」と「SDカード」となっているところ、パス指定が出来ないために保存先が存在しない状態となってしまいました。
これは恐らくXperiaカメラの保存先パスとして定数を持っており、それを参照しているのだと思われます。
AndroidにはWindowsのような環境変数が設定されてますが、ここのEXTERNAL_STORAGEやSECONDARY_STORAGEを参照していれば問題なかったと思われます。
環境変数の変更はrootedでないと無理だと思うので、せっかくの4Kカメラも無意に。
そのため「実用は出来ない」というわけです。表示されているサイズもだいぶおかしいです。

残念ではありますが、用途を絞れば有効にはなるので、一応手順は残しておこうと思います。

1.PCのAndroid SDKを最新に。GoogleからSDKをダウンロード、インストールする。
2.フォーマットしたいSDカードを挿入したXperia(Android 6.0)を用意。
3.端末の「設定」→「端末情報」→「ビルド情報」を7回タップして「開発者オプション」を表示。
4.「USBデバッグを有効にする」をONに。
5.PCとXperiaをUSB接続。デバッグ許可が出る場合はチェックしてOKを押下。
6.PCでコマンドプロンプトを開き、SDK内のadb.exeがあるディレクトリに移動。
7.まずはadb shellと入力して実行。
8.smを入力、実行してlist-disksなど可能なコマンドが表示させるか確認。
9.exitを入力、実行。
10.次に以下のコマンドを順に入力、実行。2つ目のコマンドでSDカードはフォーマットされるので注意。
adb shell sm list-disks
adb shell sm list-volumes all
adb shell sm set-force-adoptable true
adb shell sm partition disk:179,64 private
adb shell sm set-force-adoptable false
adb shell sm list-volumes all
11.USBケーブルを抜いて端末を再起動
12.再起動後、念のためUSBデバッグを無効化
13.「設定」→「ストレージ」→「SDカード」を選択
14.右上のオプションを開き、4つ目の「データの移行」を選択
15.元々内部ストレージに保存されているデータの一部がSDカードに移動される
16.「アプリ」を選択して、「ストレージ」の項目を選択すると、SDカードに移せるアプリは一番上に保存先を選択なボタンが表示される

ストレージを戻すときはすべて内部ストレージに戻してから、「ストレージ」→「SDカード」を選択後のオプションで「外部ストレージとしてフォーマット」を選択。
再起動しないと内部ストレージが有効にならないので再起動する。

Android N Developer PreviewもNexus 5に来たらいろいろ試したいところです。

0 件のコメント:

コメントを投稿