ブックとノートとメモと?

読んだ本とか観た映画とか、パソコンとかスマホとか、行ったトコとか

root化を解除したandroid4.4端末のSDカード制限をなんとかする!

android4.4のスマホを使っていて、一番不便なことって何だと思いますか?


私は「SDカード制限」が一番だと思います。


ポケモンGOのroot化対策で rooted → unroot とした場合、SDカードの書き込みが自由に出来なくなるので不便ですよね。


今回はSDカード制限を解除する方法を書きます。

android_4_4_kitkat




対策① 「 StorageAgent 」を使う


「 StorageAgent 」はandroidの内部ストレージに保存されているファイルを、SDカード上の任意のフォルダにコピー/移動することが出来るアプリです。


非root端末の場合はこれを推奨します。



使い方にクセがあるのと、SDカード上のファイルアクセスが完全に自由ではないため、rootedには推奨しません。


例えば、SDカード上の圧縮ファイルをSDカード上のフォルダに展開することは出来ないみたいです。



対策② Xposed + XInternalSD(要root)


androidのシステム領域の改変をアプリ上で行うことが出来る「 Xposed 」を導入し、そのモジュールである「 XInternalSD 」を導入することで SDカードの制限を解除することが出来ます。


「 XInternalSD 」は他にも様々な用途に使えます。


例えば、kindleの電子書籍が保存されているフォルダをSDカードに移動して内部ストレージの容量を節約したり、SDカードの全容量を内部ストレージとして認識させたりも出来ます。


Xposed Installer (android4.03~4.4 向け)
Xposed Installer | Xposed Module Repository


XInternalSD
XInternalSD | Xposed Module Repository


Xposed Installer をインストール → アプリを開く → フレームワーク → インストール/更新 → 端末再起動


xposed_install




XInternalSD をインストール → Xposed Installer を開く → モジュール → XInternalSD にチェック → 端末再起動 → 導入完了


xinternalsd_install



※デメリット


XposedがインストールされているとポケモンGOは起動しません。「root switch」で偽装することは出来ますが、切り替え時に再起動が発生するので実用的には微妙です。


「root switch」についてはこちらをご覧下さい。


対策③ platform.xmlを書き換える方法(要root)


root explorerなどシステム領域の改変可能なアプリを使用して、以下のファイルを書き換えます。


/system/etc/permissions/platform.xml


root explorerでこのファイルを長押し → テキストエディタで開く → 警告が表示されて編集可能になります


platform.xmlを長押し


root_explorer_テキストエディタで開く




platform.xmlを間違えると起動不能になるリスクがあります。カスタムリカバリでのバックアップが取れない場合は止めたほうが良いでしょう。


編集前

<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
</permission>




編集後

<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="media_rw" />
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
</permission>




※ ネットで調べるとこの方法を良く目にします。Xperiaなどでは有効なようですが、私の端末「LGL24」では制限解除出来ませんでした・・・


対策、番外編 LGL24の場合


私の場合は以下のやり方で上手くいきました。
LG製端末など、platform.xmlの編集が上手くいかない人は参考にして下さい。



編集前

<permission name="android.permission.READ_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
</permission>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="sdcard_all" />
</permission>
<permission name="android.permission.ACCESS_ALL_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="sdcard_all" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>



編集後

<permission name="android.permission.READ_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="media_rw" />
</permission>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="sdcard_all" />
<group gid="media_rw" />
</permission>
<permission name="android.permission.ACCESS_ALL_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="sdcard_all" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
<group gid="sdcard_rw" />
</permission>



※この方法のメリットは、 platform.xmlを編集してからroot化を解除しても、SDカード制限は解除されたまま有効である点です。
root化のような改造に抵抗がある人でも制限解除してから非rootに戻せるのでオススメです。


さいごに蛇足


Nexusシリーズに代表される最
新機種では、SDカードスロット無しの機種が増えてきています。


端末メーカーも通信事業者もSDカード経由のファイルのやり取りじゃなくて、クラウド経由でバンバン通信してパケット代を払って欲しいんでしょうね( ・_・;)


でもデジタル一眼で撮影した画像や4kで撮影した動画を扱うのに、SDカード無しは正直あり得ないと思います。


ギガ単位のファイルを扱うのにクラウド経由のみなんて、苦行以外の何者でもありません。


そこでroot化して「SDカード制限」の解除をするのが、android4.4では定番でした。


最近はポケモンGOやパズドラが起動しないこともあり「root不要」という声も聞かれますが、 android4.4の「SDカード制限」だけはroot化してでもなんとかしたいものです。