Android 台灣中文網
標題: Acer A1-810 root [打印本頁]
作者: twu2 時間: 2013-7-24 22:16
標題: Acer A1-810 root
本帖最後由 twu2 於 2013-7-25 09:43 編輯
前一陣子我上下班用來看影片的 PSP Go (買車送的) 突然出現黑畫面, 弄了半天都還一樣, 上網查了一下, 看樣子似乎是掛了. 所以... 就上網看了一下小平板, 就買了台 Acer A1-810 回來. (不過... 買回來那天, 打開 PSP Go 突然又有畫面了....)
其實, 只是用來看看影片, 似乎也沒有 root 需求. 不過看到有 Toolkit 出來, 還是手癢試了一下.
雖然上頭說的方法似乎很簡單, 不過.... 由於我買的是台灣的版本, 不是國際版, 據說直接刷 system.img.gz進去會造成重開機無窮迴圈 (其實有解, 只是等於整個刷成國際版了). 所以... 就只抓 toolkit 回來, 到 linux 底下做.
首先找台 Linux 的機器來用, 如果沒有的話 (對, 我也沒有, 我都是當 server 用, 其他用的機器都是 Windows), 就抓個 Ubuntu 或其他有 live cd/dvd 的版本都可以, 或者是用 SystemRescueCD (我是用這個) 來用就可以了.
- 打開一個終端機, 如果不是 root, 就 sudo su - 切到 root 的環境.
- 把 toolkit 抓下來, 解開來, 放在可以執行的目錄下, 例如: /root/toolkit
- 如果你用的環境沒有 sudo (我用 SystemRescueCD 就沒有, 直接就是 root), 就修改 /root/toolkit/.toolkit.py 的內容, 把 sudo 都換成空白. (如果有 sudo 就不用)
- 把 A1 用 USB 接上去 (先充飽電吧, 刷一半沒電可能就掛了), 先到設定 -> 顯示, 把休眠改成永不.
- 如果你的開發人員選項沒打開, 請到設定 -> 關於平板電腦, 好像是影像版本 (或版本號碼, 忘了是那一個), 連續點七下以上, 就會打開開發人員選項.
- 到設定 -> 開發人員選項, 開啟開發人員選項, 把偵錯 -> USB 偵錯打勾.
- 執行 /root/toolkit/toolkit.sh
- 告知需要 10 分鐘, 按 enter 開始做吧 (後面會有一堆問題, 都是按 Enter 就可以).
- 等出現 Successfully added su binary to system.img 這個時候, 可以按 Ctrl-C 跳開. (你要繼續做也可以, 不過我做到最後, 是有 /system/bin/su, 權限也對, 不過就是不能執行.
- 這時你就有了一個你的 A1 dump 下來的 system.img.gz 在 /root/toolkit/ 下面.
- 先 gzip -d /root/toolkit/system.img.gz 成為 /root/toolkit/system.img.gz
- mount -o loop/root/toolkit/system.img /mnt/a1
- 如果你是抓上頭的個 a1_su.tgz 回來, 把它放在 /root/ 底下, 然後 cd /mnt/a1; tar zxvf /root/a1_su_system_rw.tgz 就可以.
- 如果你是抓另外那一個 system.img.gz 回來的, 把他放到 /mnt 或其他路徑下,一樣 gzip -d 解成 system.img, 然後 mkdir /mnt/a1_2; mount -o loop /mnt/system.img /mnt/a1_2
- 用 cp -a 把 /mnt/a1_2/bin/ 下面的 busybox, wrapper.sh 與 wrap.ext (目錄) 複製一份到 /mnt/a1/bin/
- 用 cp -a 把 /mnt/a1_2/xbin/ 下面的 su 複製一份到 /mnt/a1/xbin/ (還有 /busybox 與一堆 softlink 到 busybox 的指令)
- 用 rm -f 把 /mnt/a1/bin/su 刪除 (如果有的話)
- 用 cp -a 把 /mnt/a1_2/app/ 下面的 SuperSU.apk 複製一份到 /mnt/a1/app/
- 然後 cd /root; umount /mnt/a1; umount /mnt/a1_2
- 接著執行 gzip -9v /root/toolkit/system.img 把它再壓回 system.img.gz
- 把 system.img.gz 放到 /root/toolkit/system_image/ 下 (或者copy 到 Windows 的環境下)
- 再執行一次 /root/toolkit/toolkit.sh (如果你是放到 Windows 下, 就是執行 toolkit.exe, 我是在 linux 試了一次沒有成功, 就到 Windows 下用了, 不確定是 toolkit 那一段沒寫好還是我弄錯了)
- 這次選 2 => Root with prerooted system.img.gz
- 刷好就拔 usb, 電源鈕按著選關機, 然後等關機再按電源鈕開機, 開機後應該就是 root 的環境了.
如果你不想自己動手做, 也不怕抓個 500MB 的大檔案, 可以直接抓我做的 system.img.gz (就是上頭那些步驟做出來的, 我的版本是 Acer_AV052_A1-810_RV18RC11_TWN_GEN1, 如果不是這個, 最好先 OTA 升級到這個版本再用, 如果你是要全部自己動手做就不用管版本):
system.img.7z.001 (100 MB)
http://www.multiupload.nl/HWZ26J92KS
system.img.7z.002 (100 MB)
http://www.multiupload.nl/VBBKSD3JQB
system.img.7z.003 (100 MB)
http://www.multiupload.nl/100Z8U6GKM
system.img.7z.004 (100 MB)
http://www.multiupload.nl/7CEP3B2XCW
system.img.7z.005 (100 MB)
http://www.multiupload.nl/B5N17J854J
system.img.7z.006 (5.3 MB)
http://www.multiupload.nl/AZY694L20A
檔案全抓下後用 7z解回 system.img.gz (不要解過頭成為 system.img 了), 放到 toolkit 下的 system_image 目錄下再執行 toolkit.exe 去 root 就可以了.
2013/7/25 修正 /system 無法寫入的問題, 有需要的話請重抓上頭的檔案吧.
作者: twu2 時間: 2013-7-26 12:24
由於那個 /system 寫入的修正是使用 busybox 去 remount, 一般的 mount 指令會不成功....
所以要改一下才能用...
這是我修改過的 OTA Root Keeper, 用這個版本就可以正常的備份與還原 root 了.
http://www.multiupload.nl/WLKYQNNJXC
需要系統更新時, 只要先用這個軟體備份一下 root 再執行 Temp. un-root 就能更新了.
更新後再 restore root 就可以.
作者: benchang00107 時間: 2013-7-29 16:19
請標明出處!!這是來自http://www.mobile01.com/topicdetail.php?f=605&t=3470158&last=45186983<他較先發表>
作者: benchang00107 時間: 2013-7-29 16:34
本帖最後由 benchang00107 於 2013-7-29 18:07 編輯
請問各位大大,acer A1如何 root?
我知道如何下載檔案,但在這裡我看不懂("檔案全抓下後用 7z解回 system.img.gz (不要解過頭成為 system.img 了), 放到 toolkit 下的 system_image 目錄下再執行 toolkit.exe 去 root 就可以了.")
1.請問"gz"是檔案格式,還是只是檔案名稱?因為我放進去是個winrar壓縮檔,而在壓縮檔中是個映像檔
2.如題,請問是要放rar檔,還是映像檔,還是其他?
3.請詳細說明如何root acer a1<有圖更好>
4.我在執行toolkit.exe中,他一下子就結束程序了,但我有把rar檔放在system_image 目錄下阿?
(備註:1.我檔案下載下來之後,依照版主說要用7zip解壓縮,所以用他解壓縮,解出來是winrar壓縮檔)
作者: twu2 時間: 2013-7-30 12:56
偷偷跟你說...... 其實出處也不算你說的那個網站..... 因為這篇文章在我的 blog 出現的時間還比那邊早一些.
說真的, 我實在看不懂你說的把 .7z.xxx 那幾個檔案是怎麼解成 .rar 的 (你確定不是用到壓縮的功能?)....
不就是用 winrar 打開那個檔案 (開啟 .7z.001 那一個就可以, 只要檔案放一起就可以正常解開), 應該就只看到裡頭有一個 system.img.gz 的檔案 把它拉到 system_image 的目錄下就可以. (它不是 .rar 的檔案.... 請把顯示副檔名的功能打開, 不要只看圖示.... )
作者: twu2 時間: 2013-7-30 14:00
之前對 /system 讀寫的修正是使用 sodaFR 所提供的方案, 由於系統本身多數的指令是透過 /system/bin/toolbox 來處理, 不過對於 mount 指令, 會限制不能把 /system remount 為可讀寫的模式. 而 sodaFR 的解決方法是加入一個 busybox 的程式, 然後透過 busybox 去 mount 就可以避開這個限制.
他寫了一個 /system/bin/wrapper.sh 的指令, 透過它去判斷是否要去 remount /system 為 rw 的狀態, 如果是, 就透過 /system/xbin/mount (softlink 到 busybox) 去處理. 其他就丟給原本的 /system/bin/mount (softlink 到 toolbox). 然後做一個 /system/bin/busybox 的 softlink 到 /system/bin/wrapper.sh, 這樣子, 只要是透過 /system/bin/busybox 去做 remount 的動作就會成功. 不是的話就會失敗.
不過.... 似乎很多程式在 remount /system 時, 並不是透過 /system/bin/busybox 去做 (為什麼要這樣做, 在 Android 有什麼限制要之樣子處理嗎? 一般 linux 的系統, 不都是直接呼叫 mount 指令來處理嗎?), 所以執行的結果就不正常. (所以上一篇我會對 OTA RootKeepert 做修正)
所以... 我就對這個再做了一點修正:
1.由於 busybox 是依據 softlink 的名稱來決定要執行什麼功能, 所以, 我們仍需要一個指到 /system/xbin/busybox 的 mount 指令, 但又不能用 /system/bin/mount 或 /system/xbin/mount, 所以... 就建一個目錄 /system/xbin/.mount_wrapper/ , 然後在裡頭做一個叫 mount 的 softlink 指到 /system/xbin/busybox, 如:- shell@android:/system/xbin/.mount_wrapper # ls -la
- ls -la
- lrwxrwxrwx root root 2013-07-30 10:09 mount -> ../busybox
複製代碼 2.把 /system/bin/wrapper.sh 改成這個樣子:- #!/system/bin/sh
- CMD=`basename $0`
- ARG="$*"
- NEWARG="-o remount,rw /system /system/"
- LArg=$(eval echo \$#)
- case "$CMD" in
- "busybox")
- if [ $1 == "mount" ] && [ $2 == "-o" ] && ([ $3 == "rw,remount" ] || [ $3 == "remount,rw" ]); then
- if [ $LArg == "/system" ] || [ $LArg == "/system/" ]; then
- /system/xbin/.mount_wrapper/mount $NEWARG
- # return $?
- return 0
- fi
- fi
- /system/xbin/busybox $ARG
- # return $?
- return 0
- ;;
- "mount")
- if [ $1 == "-o" ] && ([ $2 == "rw,remount" ] || [ $2 == "remount,rw" ]); then
- if [ $LArg == "/system" ] || [ $LArg == "/system/" ]; then
- /system/xbin/.mount_wrapper/mount $NEWARG
- # return $?
- return 0
- fi
- fi
- /system/bin/toolbox mount $ARG
- # return $?
- return 0
- ;;
- esac
- exit 0
複製代碼 3.然後把 /system/bin/busybox, /system/bin/mount, /system/xbin/mount 都用 softlink 的方式指到 /system/bin/wrapper.sh, 如:- shell@android:/system/xbin # ls -la mount
- ls -la mount
- lrwxrwxrwx root root 2013-07-30 10:09 mount -> ../bin/wrapper.sh
- shell@android:/system/xbin # cd ../bin
- cd ../bin
- shell@android:/system/bin # ls -la mount
- ls -la mount
- lrwxrwxrwx root root 2013-07-30 10:01 mount -> wrapper.sh
- shell@android:/system/bin # ls -la busybox
- ls -la busybox
- lrwxrwxrwx root root 2013-07-30 10:01 busybox -> wrapper.sh
複製代碼 經過這樣子的處理之後, 不管是執行 /system/bin/mount 或 /system/xbin/mount (通常都是用這兩個吧) 或 /system/bin/busybox 來做 remount /system 的動作, 都可以正常執行. 我試過沒改過的 OTA RootKeeper 或 ES File Explorer 都可以正常運作.
我把相關的檔案連同 koush 的 Superuser.apk 與 su 打包成為 su.tgz, 可以由這兒下載:
http://www.multiupload.nl/9XZ7BJ6ZH0
如果要重做 system.img.gz 的話, 就抓回去解開來用就可以. 如果已 root 的機器, 會下指令就依照上頭的方式自己做, 或直接拿 su.tgz 到 /system 解開來用也可以.
作者: twu2 時間: 2013-7-31 09:07
這個是 TWN RV18RC11 版本以上面說的方式做出來的 system.img.gz (因為用 dd 清過, 所以壓起來小了許多), 如果需要請自己抓回去用吧.
system.img_20130730.7z.001 (100 MB)
[url]http://www.multiupload.nl/OG1RK9HYT9[/url]
system.img_20130730.7z.002 (100 MB)
[url]http://www.multiupload.nl/FI6XFN8YOC[/url]
system.img_20130730.7z.003 (100 MB)
[url]http://www.multiupload.nl/BHEPGDGXAN[/url]
system.img_20130730.7z.004 (100 MB)
[url]http://www.multiupload.nl/KJFEVR3J6P[/url]
system.img_20130730.7z.005 (7.5 MB)
[url]http://www.multiupload.nl/8AHGTHL6CD[/url]
解開來的 system.img.gz 的檢查碼為:
File: system.img.gz
CRC-32: ed63aebd
MD4: dbd6eafff674c4428248e6f77cc80304
MD5: f63b516201fe8d484cae9ee733bee39c
SHA-1: 1d610b9aa7339591651252404858d4601643c20e
原則上, 如果已經 root 的機器, 應該自己用 adb 進去改一改比較好, 當然.... 想重刷也可以. (不過重刷的風險畢竟比較大一些)
作者: twu2 時間: 2013-8-1 20:38
如果 toolkit 跑到 telnetd 那一段會停止, 是因為你的預設輸入法會有自動選自的功能, 會造成 toolkit 輸入的 telnetd 指令被改掉.
請將預設的輸入法改成 Google 拼音或語音輸入試看看, 如果還有問題, 再進去把英文自動更正之類的設定都拿掉.
我記得只要改成 Google 拼音的手寫就沒問題了.
作者: hdr510 時間: 2013-8-2 11:26
我不是工程師,但我很想root....可是看不懂你們說的教程......唉...好羨慕你們可以root
作者: e5792002 時間: 2013-8-2 12:58
twu2大您好,
我在root的過程中到了第二步讓平板自行輸入一段..應該是指令之後
/data/local/tmp/busybox telnetd -l /system/bin/sh -p 1234
toolkit就會閃退(閃退前的畫面我有拍到!)
google後有發現似乎是telnet未開啟,但我也已經到控制台的服務手動開啟它了,所以此原因應該排除
後來有看到您提醒輸入法的問題,我也已經改過設定,不會自動選字也沒有自動預測,所以此原因應該也排除,
我電腦也沒有安裝dropbox..
我使用的system.img是您20130730的檔案、usb偵測有開啟、rom版本為RV18RC11_TWN
希望您能救救我>< 感恩!!
附上閃退前一秒toolkit的畫面..