https://naba-san.hatenablog.com/


特定のアプリケーションをsdextに送る

P-01Dで某ゲームが動作するのかを試してみたくて。

アプリケーションサイズはそこまで大きくないけど、その後のダウンロードに時間がかかる&data領域を大きく食い潰す類のアプリケーションに有効です。

条件

⇒ rooted端末での起動を制限しているアプリケーション、特にソーシャルゲームの類でやると垢BANされる可能性もあるので自己責任で。

  • data領域の十分な空き

⇒ 一端インストールした後でsdext送りにします。

手順

sdext領域を作成(基本的にext2が無難らしいけどお好きに)

Link2SDでマウントできるように準備

対象アプリケーションをインストール

root切って一度アプリケーションを立ち上げる、そのまま終了する

以下をメモ帳か何かにコピペして適宜書き換え、rootに昇格したプロンプトで実行。シェルスクリプト化する場合は文字コードとか改行コードに注意。

#!/system/bin/sh

# Example:
# APK: /data/app/klb.android.lovelive-1.apk
# DATA-DIR: /data/data/klb.android.livelive

# APK & DIR Name
APK_NAME="klb.android.lovelive-1.apk"
DIR_NAME="klb.android.lovelive"

# APK Link (deprecation)
#if [ -e /data/app/${APK_NAME} -a ! -e /data/sdext2/${APK_NAME} ] ; then
#  cp -a /data/app/${APK_NAME} /data/sdext2/${APK_NAME}
#  busybox rm /data/app/${APK_NAME}
#fi
#if [ -e /data/sdext2/${APK_NAME} ] ; then
#  ln -s /data/sdext2/data/${APK_NAME} /data/app/${APK_NAME}
#fi

# DATA-DIR Link
if [ -e /data/data/${DIR_NAME} -a ! -e /data/sdext2/data/${DIR_NAME} ] ; then
  cp -R -a /data/data/${DIR_NAME} /data/sdext2/data/${DIR_NAME}
  busybox rm -rf /data/data/${DIR_NAME}
fi
if [ -e /data/sdext2/data/${DIR_NAME} ]; then
  ln -s /data/sdext2/data/${DIR_NAME} /data/data/${DIR_NAME}
fi

※APKのlinkはGoogle Playでの更新を検証どころか想定すらしてないので非推奨。必要なら適当に書き換えて使って下さい。