Android 透過 ADB Shell 安裝 Busybox〔Need Rooted〕

最近因為上課需要拿到了一張 Android (2.1) 開發板,但是卻發現原生 Image 中沒有編譯 Busybox 進去,導致很多常用的 Linux 指令(如 [ls -a]、[cp ] …)都不能用,再加上這片板子的 Android 版本太舊,無法使用 Busybox App 的自動安裝方式,那就嘗試自己來透過 ADB Shell 裝裝看了。

首先先至 Busybox 官方網站的下載區,下載已編譯好的 Busybox Binary,選擇較符合系統版本的 Busybox,並選對自己設備上的 CPU 架構,可以先以 adb shell 取得板子上的 shell,再透過以下指令查詢:

cat /proc/cpuinfo

cat /proc/cpuinfo

從圖中可以看見我這塊板子的 CPU 架構是 armv6l,因此找到對應的 Busybox Binary 下載下來,並透過以下指令由本機 push 進板子中。

adb push busybox /data

或是板子上的 system 分區如已掛載(mount)好,也可以直接 push 到安裝指定的位置

adb push busybox /system/xbin

接著使用 adb shell 至板子上進行操作,如 system 分區尚未掛載或處於 Read-only 狀態,先透過 mount 指令確認 system 分區對應到哪一個 mtdblock

mount

再透過以下指令掛載 system

mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system

如果原本是放在 /data 中,由於沒有 Busybox 因此不支援 cp 指令,可以透過以下指令複製到 /system/xbin 中

cat /data/busybox > /system/xbin/busybox

如此一來等同於將 busybox 複製到 /system/xbin 中,接著進入目錄中修改檔案執行權限

cd /system/xbin
chmod 755 busybox

並輸入以下指令進行安裝

/system/xbin/busybox --install /system/xbin

無任何錯誤提示並返回 shell 後,可以輸入 ash 以及 cp 指令等等,看看是否有成功安裝 Busybox。

ash & cp

ash 以及 hush 是 Busybox 提供的進階 shell,支援自動完成(Auto-Complete)以及上下鍵取得歷史操作的功能,也就是熟悉的 Linux bash shell。

確認沒問題後即完成 Busybox 在 Android 上的 ADB Shell 方式安裝。

在〈Android 透過 ADB Shell 安裝 Busybox〔Need Rooted〕〉中有 1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *