鈴の音情報局blog

携帯関連の将来や最新の技術情報や業界の行く末などを適当に綴るblogです。 内容の信憑性は?余り信じない方がいいと思います。
本家の鈴の音情報局はこちら→http://suzusuzu.dip.jp:8800/
スマホ・携帯端末アクセス[ランキング][アクセスシェア(グラフ)] (毎年10/1にログをクリア)

Xperia GXの/dataを内部ストレージに付け替えてみるチャレンジ

CM12.1やCM13の新しいバージョンがリリースされていないのかなと何気に154氏のブログを覗いてみました。
するとなんかめちゃくちゃ私が欲しい所のタイムリーな情報の記事が書かれていてビックリ。

ていうか、最後にうちの記事がリンクされているじゃないですか。
どうやらうちの記事の話題を広げて下さったみたいです。

THE MIDDLE OF NOWHERE / 辺境の憩い (154(赤星)氏ブログ)
Androidのストレージ領域の取り扱いについて(Adoptable Storageとは)
Xperia GXの/dataをSDCardパーティションへマウントする

ブログでは154氏は赤星(redstar)氏と名乗っておられます。リンクしても良かったのかちょっと
悩むところでしたが、どっちにしろブログを立ち上げているからにはGoogle様が隠れる事は
許さないと思いますので思い切ってリンクさせて頂きました。

当ブログのキッカケになった記事ではXperia GXの2GBしかないアプリ領域(Userdata[/data])の
パーティションが2GBしかなく、折角の項環境を生かす事が出来ないのを嘆いていました。

それを何とかすべく、内蔵のeMMCメモリをどう生かすのかという事を記事にしていました。
具体的にはアプリ領域等として使われている/dataのUserdata(2GB)のパーティションを
sdcard0(11.1GB)にmountし直してはどうかという内容でした。

mountされているリストを上げたりして実際どうするべきかなとかぶつぶつと独り言的に
検討していたわけですが、そこに赤星氏は知識を与えてくれました。

fstabに関してや、内部的なパーティションの切られ方の解説が有りました。
devを一通りは見渡していたので赤星氏の解説を読みながら「あー、なるほどー」と納得することしきり。
Blockが15まで有ったのはそういう事だったのか・・・等と勉強になりました。


◎で、やってみた

というわけで、とりあえずヒントをもらったので実践。

赤星氏も指摘してた通り、/dataをごっそりとUserdataからsdcardに移すのは、いろんな面でリスクが高い。
手間のコストも馬鹿にならない。

なので方法を見直します。

/dataを11.1GBのsdcardへ移すのは、色んな意味での問題の根本解決になり、理想の形では有ります。
Android 6.0以降も踏まえると最高の形だと私も考えて「そうするべきだ」と思って絞り出した苦肉の策でした。
しかし互換性と作業量を考えて、もっと簡単な方法はないかなということで・・・。

/dataをUserdataから移動しないのが一番安全という事で落ち着きました。
容量が大きくて移しても問題が起こりにくいものをsdcardへ移そうという事で仕切り直し。

炙り出したのは/data/dalvik-cacheと/data/dataの二つ。
/data/dataはアプリの設定等を保持しているところであり、最近のアプリではこれが
肥大化の傾向が有ります。私のGXの環境では現在9700ファイルで512MB程。
/data/dalvik-cacheはアプリのプログラムを解析した実行ファイル関連のものが
収められています。これはユーザーアプリだけでなく、システムアプリ等もここに全部
入りますので巨大です。私の環境では350ファイルで850MB程有りました。

合計1.3GB程度が2GBのパーティションを食い散らかしており、実際にはアプリは
0.5GB程度しか入れる事が出来ていません。空は0.2GB程度、これ以下になってくると
Userdataパーティションの頻繁な整理(?)が発生し、アプリの動作が非常に重くなります。
それさえ起こらなければ普通に使えるのに、その状態に陥ると、有り得ないぐらい
アプリの動作が重くなります。特にアプリの切り替え時にものすごい時間がかかる
ようになっていきます。


というわけで/data/dalvik-cacheと/data/dataをシンボリックリンクでsdcardパーティション
へと飛ばしてみました。まずはdalvik-cacheで試してみました。

が、あれこれやってみてもうまく動かない。
adb shellを叩き、旧dalvik-cacheをdalvrik-cache2へとリネーム、sdcardにUserdataと
いうフォルダを掘り、その中にdataとdalvik-casheを作ってシンボリックリンクで繋いで
やれば動くだろうという算段でした。

とりあえずadb shellで手動で作業してESファイルエクスプローラーで確認知てみると
見た目的には問題なし。しかし再起動をしてみると30分経っても立ち上がって来ない。
TWRPで確認するとさっき作ったシンボリックリンクがフォルダではなく、ファイルに
なってる・・・。なんかようわからんです。ESから見るとフォルダに見えるのに。

仕方ないのでmountでする事にしました。
色々見ているとrootにfstabとfstab.qcomというファイルを発見。
しかしそのどちらのファイルも再起動をするとさっきと同じ内容が上書きされ、
私が書いた設定は消えて無くなってしまいました。

ならばとTWRPを立ち上げetcフォルダの中にあるfstabを変更してみました。
しかしこれも先と同じ、上書きされて消えてしまいます。


万事休す、妙案を思いついたはいいのですが、実行段階で挫折中です。
bootさせないでadb shellからの手動変更だけならmountもシンボリックリンクも
成功してはいるのですけどね。bootが絡むとどうも難しいなと。

とりあえず現状で出来る所まではやってみました。
これが完成したらGXもかなり良くなりそうな気がするだけに勿体ないです。
一時はこれで問題がほぼ全て解決すると思っていただけに悔しい。


どうせなら本家に・・・ということで、dataとdalvik-casheをsdcardに振り向けた
バージョンのCM12.1をビルドして頂けたらとっても嬉しいのですが・・・。
いや、完全にdataをsdcardに振り向けるバージョンでも大歓迎です。

関連記事
  1. 2015/11/19(木) 19:32:04|
  2. Android
  3. | トラックバック:0
  4. | コメント:2
<<auがXperia Z5(SOV32)をアップデート | ホーム | 【#Xperiaアンバサダー[Z5/06]】バッテリーが100%から減らな過ぎて不安になりました・・・w>>

コメント

方法としては、Link2SDと同様だと思われます。
Link2SDでは、ファイル毎にシンボリックリンクをはっているようです。
/data/sd2ext/フォルダ、配下にファイルの実体があり、そこにリンク。
  1. URL |
  2. 2015/11/20(金) 08:30:21 |
  3. none #kpjYxc8I
  4. [ 編集]

>noneさん
そうですね、それをアプリ側でコピーしなくてもいいようにもう一階層上からやるって感じですかね。
ブート後ならアプリでごかましたりも出来るのですけど、ブート時に有効になるように
設定するのって意外と難易度が高いんですよね。
  1. URL |
  2. 2015/11/20(金) 19:31:46 |
  3. 鈴 #GpEwlVdw
  4. [ 編集]

コメントの投稿(投稿時には必ず何らかの名前を付けてください)


管理者にだけ表示を許可する

(名前を入れないとクリックできません)

トラックバック

トラックバックURLはこちら
http://suzunonejh.blog15.fc2.com/tb.php/6395-44e45b44
この記事にトラックバックする(FC2ブログユーザー)

最近の記事

機能リンク

最近のコメント

カテゴリー

ブログ内検索

ブログリンク

RSSフィード

QRコード

QR

月別アーカイブ



メールフォーム

お問い合わせ・ご質問はこちらから。

名前:
メール:
件名:
本文:

suzunone.m(あっと)gmail.com に
直メでもOKです。