#2014/05/18#
前幾天,老婆的拿她的手機給我看,說無法上網,我接過手後,檢查無線網路一直處於「正在取得IP位址…」,最後斷線。
我改用指定IP的方式,則能正常使用無線網路,這說明硬體上並沒有問題,而是Android作業系統的DHCP Client出問題了。
上網查,發現有太多人有相同的問題,因我不想root,就先試了兩種別人提供的方法,結果都不行。(一種是清除無線網路,二是拔SIM卡。)
有很多人都送回Acer維修,但發現他們送修時間太長了,約是一個月左右的時間才拿回來,然後被一堆人抱怨,我想Acer大概是有冤說不出吧。
所以自己動手搞吧!死撐活撐還是要搞root才行,然後試著刪除/data/misc/dhcp底下的文件,看會不會好。
問題來了,別人都有開發選項,為何這支手機沒有,後來從這篇得知,在Android 4.2之後,「開發人員選項」要先從「關於手機」裡的「版本號碼」連點七下後才會啟用。
如下抓圖:
搞定「USB偵錯」後,接著就著手Root。
工具:刷機大師
使用裡面的ROOT大師,手機一接上,就會被裝上應用酷 App @@”,等搞定了再自來移除。
Root完成後,應用程式會多一個「Root大師」。
Root是否有成功,也可裝SuperUser或Root Checker等軟體來檢查。
如下圖會有su二進位檔版本:
mt6589_rooting_pkg.zip (檔案下載連結來自:賽芭專欄)
這個檔案本來也是可用來取得手機root權限的,但不知為何在我手機一直失敗,所以只好麻煩點安裝刷機大師。
檔案解壓縮後會有個mt6589_rooter資料夾, 如果執行run.bat就會進行取得root作業,但現在是目的是刪除/data/misc/dhcp底下的檔案,用的是adb這個指令,必須在命令視窗底下操作。
底下是操作紀錄:
D:\>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
HU4PQCJRDEJFM7JN device
D:\>adb shell
shell@android:/ $ cd /data/misc/dhcp
cd /data/misc/dhcp
/system/bin/sh: cd: /data/misc/dhcp: Permission denied
???一般帳號進不去,所以若發生問題一般帳號也無法處理嗎???
shell@android:/ $ su –
su –
root@android:/ # cd /data/misc/dhcp
cd /data/misc/dhcp
root@android:/data/misc/dhcp # ll
ll
-rw——- dhcp dhcp 16 2013-10-19 21:43 dhcp6c_duid
-r——– dhcp dhcp 277 2014-05-18 20:29 dhcpcd-wlan0.lease
-rw——- dhcp dhcp 0 2014-02-04 15:55 dhcpcd-wlan0.pid
root@android:/data/misc/dhcp # rm dhcpcd-wlan0.*
rm dhcpcd-wlan0.*
root@android:/data/misc/dhcp # ll
ll
-rw——- dhcp dhcp 16 2013-10-19 21:43 dhcp6c_duid
刪掉之後,關閉手機的Wi-Fi,然後再開啟,這種抓不到DHCP IP的問題就好了。
既然都已走到這地步了,順便就刪點既用不到的又佔用空間的App。
聽說系統內建的App都放在/system/app,所以就刪個應用程式試一下。
root@android:/system/app # rm PolarisOffice4.apk
rm PolarisOffice4.apk
rm failed for PolarisOffice4.apk, Read-only file system
結果刪檔失敗,因系統是唯讀模式,於是參考這篇,說要重新掛載成讀寫模式才行刪檔。
root@android:/ # mount -rw -o remount /dev/block/mtdblock1 /system
mount -rw -o remount /dev/block/mtdblock1 /system
root@android:/system/app # rm PolarisOffice4.apk
rm PolarisOffice4.apk
果然重新掛載成讀寫模式後就可以刪掉內建的應用程式了。
但奇怪的是,實際上在這支手機上並沒有/dev/block/mtdblock1,但有/dev/block/mmcblk0及mmcblk1,不知為什麼能掛載成功。
查了/system掛載資訊如下:
/emmc@android 788.4M 749.3M 39.1M 95% /system
lrwxrwxrwx root root 1970-01-01 08:00 emmc@android -> /dev/block/mmcblk0p5
所以把指令換成底下結果也相同:
root@android:/ # mount -rw -o remount /dev/block/mmcblk0p5 /system
mount -rw -o remount /dev/block/mmcblk0p5 /system
順便查一下空間使用情況,看樣子,如果能把data掛載點移到SD卡上,這樣就不會一直出現空間不足的情況了,有空再來研究了。
root@android:/ # df
Filesystem Size Used Free Blksize
/system 788M 753M 34M 4096
/data 1008M 905M 102M 4096
/storage/sdcard0 1G 750M 908M 16384
/storage/sdcard1 14G 1014M 13G 32768
系統預設的df指令,顯示的Size直接忽略掉小數點,結果1.6G變成1G,這差太多了吧。
所以用adb上傳busybox,然後使用busybox的df指令來顯示空間使用情況就不會有這種情況。
shell@android:/data/local/tmp $ ./busybox df -h
./busybox df -h
Filesystem Size Used Available Use% Mounted on
/emmc@android 788.4M 753.9M 34.5M 96% /system
/emmc@usrdata 1008.3M 882.2M 126.1M 87% /data
/dev/block/vold/179:8
1.6G 750.3M 908.4M 45% /storage/sdcard0
/dev/block/vold/179:97
14.6G 1014.4M 13.6G 7% /storage/sdcard1
Read Full Post »