2013-09-10

Androidのターミナルを強化する『BusyBox Non-Root』

Categories: Android アプリ
20130910125100.jpg

[ PR ]


Androidのターミナルアプリや、Android SDKのadbを使って、PCからSSHのようにAndroid本体を操作したいときがあります。

abcコマンド

adbコマンドはAndroid SDKに入っていて、Androidの設定から、[開発者向けオプション] -> [USBデバッグ] を有効にした上で、

adb shell

と打ち込むと入力が開始されます。

しかし、普段からUNIXやLinuxを使っていると、基本的なコマンドの少なさに驚きます。

shell@android:/ $ cp
/system/bin/sh: cp: not found
130|shell@android:/ $ vi
/system/bin/sh: vi: not found
127|shell@android:/ $ grep
/system/bin/sh: grep: not found
127|shell@android:/ $ gzip
/system/bin/sh: gzip: not found
127|shell@android:/ $ tar
/system/bin/sh: tar: not found

端末によって異なりますが、cp がないのでコピーもできませんし、解凍もできず、文字の編集ができません。

BusyBoxとは

そこで、BusyBoxを導入すると便利です。BusyBoxとは次のようなものです。

busybox cp file1 file2

つまり、busybox xx と入力するとコマンドxxが利用できます。例えば次のコマンドが利用できます。

20130910130452.jpg

様々なBusyBoxがありますが、中でも "BusyBox Non-Root" はルート化が不要なため便利です。

BusyBoxの導入

まず、PlayストアからBusyBox Non-Rootをインストールします。

20130910130919.jpg

BusyBoxを起動して、 [Install BusyBox] をクリックしてBusyBoxをインストールします。

20130910130858.jpg

しばらくするとインストールが完了します。Open Terminalをクリックするとターミナルが開きますが、そのボタンの上の方に、

BusyBox: /data/data/burrows.apps.busybox/app_busybox/busybox

とあります。これがとても重要なので、長押ししてコピーしておいてください。

ターミナルを開いて(adbでも同様です)、まずこのパスに移動します

cd /data/data/burrows.apps.busybox/app_busybox/busybox

このパスにBusyBoxがあります

./busybox vi # :q to exit

もっと便利に使うには、このディレクトリで次のようにタイプします。

alias busybox="`pwd`/busybox"

これでどのパスでもBusyBoxが使えるようになりました。

busybox vi # :q to exit

もっと便利に使うには、catコマンドを使って、

busybox cat <<EOF > /mnt/sdcard/.profile
alias busybox="/data/data/burrows.apps.busybox/app_busybox/busybox/busybox"
EOF

とすれば(うまくいかないときはviコマンドを使う)、次回から

sh /mnt/sdcard/.profile

と最初にタイプするだけでbusyboxが使えるようになるので便利です。

もしこれでもうまくいかない場合は、またBusyBoxを起動して、同じようにパスをコピーしてからターミナルに入って手順を繰り返すとOKです。

50 Android Hacks 開発現場ですぐに役立つヒントとコード
Carlos Sessa
アスキー・メディアワークス
売り上げランキング: 79,051

コメントはTwitterアカウントにお願いします。

RECENT POSTS


[ PR ]

.