Written on 11:31 下午 by Yu Lai
一般來說,刷機步驟如下:
1. 進入Recovery Mode。
2. 啟動Open Recovery。
3. 從OpenRecovery裡安裝ROM與Google Apps。
4. wipe & Reboot。
一般來說,Milestone要刷機主要是透過Open Recovery來幫忙,
使用Open Recovery幫我們省掉不少的麻煩與風險。
要使用Open Recovery,我們要先能進Recovery Mode才行。
如果Milestone進不去Recovery Mode,那請先到http://and-developers.com/sbf
抓一版官方版的ROM,使用SBF燒錄進去,再安裝Vulnerable Recovery SBF Flash即可。
接著把Open Recovery的解開,全部放到記憶卡中,長這樣:
/SDCARD/OpenRecovery 和 /SDCARD/update.zip。
然後把ROM檔與Google Apps也放到/SDCARD/OpenRecovery/updates裡.
再來按著X開機,等到三角型圖示出來,按著音量鍵上+相機鍵進入Recovery Mode,
若已經是CM的ROM,可以直接用Reboot -> Recovery進去Recovery Mode,
進去後選Apply update.zip就可以進到Open Recovery。
在Open Recovery裡和剛才一樣,選Apply Update,然後選ROM檔安裝,
接著再選Google Apps安裝。
都裝完後記得要wipe,按下Go back,分別執行三個選項:
Wipe Dalvik Cache、Wipe Data/Factory Reset、Wipe Cache Partition,
這三個步驟俗稱3Wipe,在刷機完後都一定要清除所有的個人資料,以便新系統穩定。
Posted in
技術,
Android
|
Written on 12:27 上午 by Yu Lai
我一聽到mCool有支援Skype, 今天就跑去申請了mCool 299,
申請好後, 也請中華電信把internet APN關掉, 並在Milestone上設定:
APN: emome
Proxy: 10.1.1.1
Port: 8080
一如預期, 設定好後WWW, GMail, Skype都OK,
但是Market, Maps, YouTube都不行.
後來想了解一下為什麼, 於是Google了一個晚上,
發現似乎是Android只有Browser會走APN的proxy.
其他的App好像傻了一樣, 都直接連線, 難怪Android+mCool會有些App不能用.
能用的都是中華電信特別開出來的才能用, 搞得好像Android用的mCool是被閹割過似的.
沒關係, App不走Proxy, 那就找方法強制它走Proxy.
在XDA-Developers上有個人有wifi環境需要走proxy才能用的問題,
於是就去抓了transproxy並配合iptables和voila完成了transparent proxy的功能.
最後還把它打包成APK給大家下載使用, 真是佛心來的.
網址如下: http://forum.xda-developers.com/showthread.php?t=766569
安裝上, 先確認Milestone要先ROOT過, 並且先斷線.
我是抓TransProxy2.04.apk回來安裝,
安裝時還遇到找不到iptable的問題,
於是先到http://code.google.com/p/cmwrap/downloads/list抓回來放在/system/bin下.
安裝完後, 執行它, 在設定裡選HTTP, 10.1.1.1, 8080, 開啟.
設定完再重新連線, 以上設定中有錯誤發生, 請重開機試試吧.
最後把Market或Maps打開試看看, 你就會發現都可以用了.
PS1: 因為這是transparent proxy, 所以當你要用wifi不走mCool時, 請關掉, 不然你會不能用. XD
PS2: 其實emome說mCool不能當數據機給NB上網, 但配合wireless tether+NB的Proxy似乎.... 嘿嘿.
Posted in
技術,
Android,
Network
|
Written on 1:38 上午 by Yu Lai
From: http://www.cnmsdn.com/html/201002/1266986960ID865.html
在kernel子目錄下存放的就是Android的Linux Kernel了, 通過和標準的Linux 2.6.25 Kernel的對比,我們可以發現,其主要增加了以下的內容:
1. 基於ARM架構增加Gold-Fish平台,相應增加的目錄如下:
kernel/arch/arm/mach-goldfish
kernel/include/asm-arm/arch-goldfish
Gold-Fish平台採用的是ARM926T CPU作為BaseBand處理器, 該CPU主頻至少為200M HZ. 採用MSM7201A CPU(ARM 11)作為主CPU, 其主頻為528M HZ.
2. 增加了yaffs2 FLASH文件系統,相應增加的目錄為:
kernel/fs/yaffs2
實際上,Android包經過編譯後生成的system.img和ramdisk.img文件就是yaffs2格式的包.
3. 增加了Android的相關Driver,相應目錄為:
kernel/drivers/android
主要分為:
Android IPC系統: Binder
Android 日誌系統: Logger
Android 電源管理: Power
Android 鬧鐘管理: Alarm
Android 內存控制台: Ram_console
Android 時鐘控制的gpio: Timed_gpio
4. 增加了switch處理, 相應的目錄為:
kernel/drivers/switch/
5. 增加了一種新的共享內存處理方式, 相應增加的文件為:
kernel/mm/ashmem.c
6. 其他為Linux-2.6.25內核所做的補丁等等,例如BlueTooth, 在此不做詳細分析
另外GoldFish平台相關的驅動文件如下:
1. 字符輸出設備:
kernel/drivers/char/goldfish_tty.c
2. 圖像顯示設備: (Frame Buffer)
kernel/drivers/video/goldfishfb.c
3. 鍵盤輸入設備:
kernel/drivers/input/keyboard/goldfish_events.c
4. RTC設備: (Real Time Clock)
kernel/drivers/rtc/rtc-goldfish.c
. USB Device設備:
kernel/drivers/usb/gadget/android_adb.c
6. SD卡設備:
kernel/drivers/mmc/host/goldfish.c
7. FLASH設備:
kernel/drivers/mtd/devices/goldfish_nand.c
kernel/drivers/mtd/devices/goldfish_nand_reg.h
8. LED設備:
kernel/drivers/leds/ledtrig-sleep.c
9. 電源設備:
kernel/drivers/power/goldfish_battery.c
10. 音頻設備:
kernel/arch/arm/mach-goldfish/audio.c
11. 電源管理:
kernel/arch/arm/mach-goldfish/pm.c
12. 時鐘管理:
kernel/arch/arm/mach-goldfish/timer.c
Posted in
技術,
Android,
Linux
|
Written on 12:47 上午 by Yu Lai
Milestone從原本都很正常work的鬧鐘,
從我出差來泰國後, 沒有插著AC充睡覺就開始怪怪的.
後來花了點時間去trace, 才發現原來RTC的interrupt在2.1的firmware被改濫了.
還好有人把新版本的kernel從新的加拿大版的firmware取出來做成SBF.
Ref From: http://and-developers.com/motorola_milestone:sbf
2.1 kernel fix of scheduled CPU wake-ups
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: mediafire, rapidshare
It will fix the broken scheduling of Alarm/RTC interrupts on the SHOLS_U2_02.31 and
SHOLS_U2_02.34 systems (kernel problem - alarms delayed).
升級前先把Kernel的版號記錄一下:
2.6.29-omap1 a21146@ca25rhe74 #1
透過上一篇提到的sbf_flash指令,把kernel更新後,版號變成如下:
2.6.29-omap1 rkg683@ca25rhe56 #1
應該是有更新成功吧,就看這幾天鬧鐘正不正常囉。
Posted in
技術,
Android,
Linux
|
Written on 12:01 上午 by Yu Lai
之前在root Milestone時有使用到的SBF以及RSD Lite,
這陣子有把資料找全了,在這裡重新說明一下用以備忘。
首先SBF是Single Binary File的縮寫,
它是包含了要燒錄的binary data和checksum資料等。
提供給RSD介面燒錄資料到device上。
除了Motorola官方提供的SBF可供燒錄外,
我們也可以透過SBF-Recalc自行產生出可燒錄的SBF檔。
Ref: http://and-developers.com/motorola_milestone:sbf
而講到RSD Lite就要先講一下RSD,
RSD是Remote Software Download的縮寫,
它是Motorola開發出來用來做為遠端燒錄flash的介面,
也就是說只有Motorola的device才會用到的東東。
而目前使用到RSD的軟體有:
RSD-NetConnected
RSD Lite
Motorola Software Updater
RSD-NPI
目前RSD Lite只有Windows版本,若要在Linux下使用不太方便。
於是有網友[mbm]提供了一個Linux程式sbf_flash,有興趣可以到這裡看看。
Ref:http://and-developers.com/motorola_milestone:tools:rsd_lite
Posted in
技術,
Android,
RSD
|
Written on 1:09 下午 by Yu Lai
最近在Milestone上玩起adb和Terminal,發現原有的shell真的難用到爆,
再加上一堆指令不內建,於是想自己編busybox來用用。
首先先搞定Milestone的Cross-Compiler,不外乎以下幾種方法:
1. 自己手動抓binutil, gcc等回來自己慢慢編成target=ARM。(PS:會很慢)
2. 到Android Open Source Project的網站抓prebuilt.git裡編好的toolchain。
http://android.git.kernel.org/?p=platform/prebuilt.git;a=tree;f=linux-x86/toolchain/arm-eabi-4.4.0;
點選snapshot即可下載,大概是74mb左右.我是抓arm-eabi-4.4.0的。
3. 到CodeSourcery抓Sourcery G++ Lite Edition for ARM
http://www.codesourcery.com/sgpp/lite/arm點選Download。
接著去抓busybox的原始碼回來,解開後先按make menuconfig進選單,
此時記得把cross-compiler的位置指定好,
同時把Build BusyBox as a static binary (no shared libs)勾選起來。
其實勾選static binary是比較花code size的,但沒辦法,
懶得hack busybox去配合Bionic Libc,要花太多effert。
所幸編出來的code size也不至於爆肥到哪去 XD。
接著把要編出來的applet選好,存好後敲make開始編囉。
編出busybox後,由於Android內的/system預設是read-only的,
所以我們使用adb push的方式先將busybox丟到/data下。
./adb push busybox /data
接著使用adb shell操作把/system重新mount再把busybox丟過去。
./adb shell
$ su <- 變root
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock6 /system
# cd /data
# chmod +x busybox
# ./busybox cp busybox /system/xbin <- 因為內建的cp難用
# cd /system/xbin
# ./busybox --install <- 安裝links
# cd /data
# rm busybox
# mount -o ro,remount -t yaffs2 /dev/block/mtdblock6 /system
# exit
$ exit
接著就可以使用到busybox所提供強大的功能啦 :)
Posted in
技術,
Android,
Busybox,
Linux
|
Written on 10:10 上午 by Yu Lai
其實拿到手機第二天就被我root了。 XD
只是我這陣子忙著弄rstp到現在才有空把這些資訊整理出來。
首先Milestone的Boot Loader除了原本Loader的功能(Load Kernel & FS then Go)外,
還具有2個特別的功能:
1. Program SBF file。
這個功能是Loader提供了一個介面,讓安裝了RSD Lite的PC透過USB連接線,
直接將Image(SBF file)直接燒錄到Milestone的flash裡。
這裡有官方提供的SBF檔,請小心對應版本。
http://and-developers.com/motorola_milestone:sbf
2. Recovery Mode.
這裡提供Apply sdcard:update.zip與factory reset等功能。
而在2.0.1版本前取root的方法不外乎進Loader的Recovery Mode,
將su與Superuser.apk包成update.zip的方式更新到系統中。
但Motorola官方釋出了Milestone 2.1的更新版中的Recovery mode已經使用新的簽證,
所以無法再繼續使用以前的update.zip來騙過系統作假更新,
也就是不吃使用者自訂的update.zip,這導致無法透過此方法取得root。
沒關係,山不轉路轉,既然新的Recovery Mode不能用,我們就把它更新回舊的。
網路上有人把2.0.1的Recovery Mode從2.0.1的更新檔中抽出來并包裝成SBF檔提供使用。
檔案在此:SHOLS_U2_01.14.0_recovery_only.zip (mediafile)或(bandongo)。
接著去下載Motorola工程師專用的RSD Lit軟件並安裝到Windows內,
http://www.multiupload.com/SIYSOH7VTU。
然後如果沒有安裝Motorola USB driver,
請先安裝: Windows 32-bit Driver / Windows 64-bit Driver。
接著先把Milestone關機,接上USB連接線,把鍵盤推開,
按住"上"鍵不放再按電源鍵啟動Milestone。
等到出現Bootloader裡面後,在Windows裡開啟已安裝的Motorola RSD Lite。
接著在RSD Lite軟件上的Filename裡按 [...],指定剛下載的SBF檔案,
然後按[Start]開始還原,待還原程序完成100%時,手機就會自動重啟。
此時你的Milestone就會具有2.1的System與2.0.1的Recovery Mode。
再來去下載milestone_root.zip到電腦裡,http://www.sendspace.com/file/5cvh9e
把檔名改為update.zip放到Micro SD Card的根目錄 / 內。
接著進到Recovey Mode,有2個方法:
1. 先關閉milestone電源,然後推開鍵盤,按住"上"鍵不放再按電源鍵啟動Milestone,
直到看見白色三角形標置。此時可放開按鈕,再長按"音量增大鍵"+"照相鍵"一下,
便進入了 Recovery Mode。
2. 使用Android Debuging Bridge Tool (adb tool),# adb reboot recovery。
Recovey Mode用鍵盤的5方向鍵選到Apply SDcard: Update.zip按下去執行等到
"Install from sd card complete"字句出現。接著選擇"Reboot system now"重啟Milestone,
待開完機後檢查app裡有沒有"Superuser whitelist"存在即可知道有否root成功。
Posted in
技術,
Android,
Linux,
root
|
Written on 9:15 上午 by Yu Lai
哇哈哈,昨天去敗家了。
敗了一台Moto的Milestone回來,
Android機器人我來啦~。
Posted in
閒聊,
Android
|