2011年4月14日 星期四

[Android] Building AOSP & Back to Original Shipping Image @ Nexus One 、Ubuntu 10.04 x86 & Mac OSX 10.6.7

device01 device02


AOSP 全名是 Android Open Source Project,既然有 Open Source 那就要編一下啊~不過,這真的是條不歸路 XD 在此就紀錄一下編出 AOSP 跟還原到原廠設置的流程,其中後者過程算是不滿意但還可以接受狀態,因為我沒找到官方公佈的 image 檔,而是從 xda-developers (md5sum: bef86698cafc88ca03fff5758571d9d6) 那邊下載到的,若有人知道官方處,麻煩留言一下下啊,感謝!


警告,私自更動手機狀態,將可能喪失保固,請自行評估與負責,此篇僅為個人筆記


另外一提,手上這隻 Nexus One 其 bootloader 早已解鎖(unlock)過了,在此就不多談 unlock 的過程。關於編譯環境是 Ubuntu 10.04 x86 的作業系統,並更新至最新狀態,但一切都是在 VirtualBox 4.0.4 r70112 上運行,巧的是 Host 也是 Ubuntu 10.04 Desktop x84,以下操作皆為 Guest OS 上頭,於 Host 機器上僅需手動調整 VirtualBox ,讓手機 USB 掛載上去。


Guest OS Ubuntu 10.04 x86 額外安裝便利的操作環境:


sudo apt-get install openssh-server vim 


如果 add-apt-repository not found 那就多安裝一下 python-software-properties。


編譯自己的 AOSP:


主要流程:http://source.android.com/source/ ,強烈建議先看過 Initializing the Build Environment、Downloading the Source 和 Building and Running 章節。


Step 1:安裝 Java SDK


$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk


Step 2:安裝編譯環境


$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev mesa-common-dev


Updated @ 2011/05/09:


mesa-common-dev 並非官方文件上有提到的,但在編譯時會碰到以下問題


host C++: libEGL_translator <= development/tools/emulator/opengl/host/libs/Translator/EGL/EglX11Api.cpp
In file included from development/tools/emulator/opengl/host/libs/Translator/EGL/../include/EGL/egl.h:36,
                 from development/tools/emulator/opengl/host/libs/Translator/EGL/EglOsApi.h:19,
                 from development/tools/emulator/opengl/host/libs/Translator/EGL/EglX11Api.cpp:16:
development/tools/emulator/opengl/host/libs/Translator/EGL/../include/EGL/eglplatform.h:89:20: error: GL/glx.h: No such file or directory
In file included from development/tools/emulator/opengl/host/libs/Translator/EGL/EglX11Api.cpp:16:
development/tools/emulator/opengl/host/libs/Translator/EGL/EglOsApi.h:23:19: error: GL/gl.h: No such file or directory
...
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libEGL_translator_intermediates/EglX11Api.o] Error 1


這是 make libEGL_translator 時所碰到的,解法就是安裝 mesa-common-dev 就可以搞定啦。也能先用相關指令確認系統是否已經有相關函式庫:


$ dpkg -l | grep mesa-common
ii  mesa-common-dev                      7.7.1-1ubuntu3                                  Developer documentation for Mesa


因為我是 x64 環境,所以額外再安裝相關的 32bit 函式庫:


$ sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386


Step 3:設定系統 USB 裝置事項


$ sudo vim /etc/udev/rules.d/51-android.rules


# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>”


記得要把 <username> 更新為使用的帳號名稱


Step 4:下載 Android 程式碼


$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir yydroid
$ cd yydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git
$ repo sync


其中 yydroid 是要擺放 source 的目錄,可以自行修改名稱。而下載程式碼的部份,在 2011/04/12 所抓到的是 5.5 GB 大小,使用 500~2000 KB/s 的速度,大概花費 45 分鐘,以下是用 time 測得:


real 41m13.241s
user 4m46.860s
sys 1m20.600s


Updated @ 2011/04/13:


在另一台 Host 是 AMD X4 945 + 8GB RAM 其 OS 是 Win 7 x64,配給編譯的 Guest OS 是 2GB RAM + CPU x2 ,其網路確定最高速是 5Mb/s 對稱網路,全速抓最高也才 500~600 KB/s,用 time 測試結果:


real 209m24.113s
user 2m45.690s
sys 2m15.280s


可以參考網路速度。


Step 5:編譯原始碼


初始化環境


$ cd yydroid
$ source build/envsetup.sh


在編譯過程前,必須先取得 Nexus One 相關 binary 資料(此過程不確定是不是抓 Drivers ,有興趣可以去查看 extract-files.sh),而抓取資料需使用 adb 指令,如果沒有安裝過 android sdk,那就先編譯 adk 出來


$ make adb
$ PATH=~/yydroid/out/host/{host-type}/bin/:$PATH
$ adb root


抓取 Nexus One 資料


別忘了把手機設定為開發模式


[設定]->[應用程式]->[開發]->[USB偵錯]


確認有連到手機


$ adb devices
HT#########    device


開始抓資料


$ cd ~/yydroid/device/htc/passion
$ ./extract-files.sh


190 KB/s (26116 bytes in 0.133s)
415 KB/s (80036 bytes in 0.188s)
203 KB/s (18516 bytes in 0.088s)
117 KB/s (11542 bytes in 0.096s)
6 KB/s (587 bytes in 0.092s)
185 KB/s (17684 bytes in 0.093s)
450 KB/s (122442 bytes in 0.265s)
496 KB/s (122442 bytes in 0.240s)
474 KB/s (122442 bytes in 0.252s)
11 KB/s (1156 bytes in 0.102s)
99 KB/s (9220 bytes in 0.090s)
208 KB/s (27612 bytes in 0.129s)
407 KB/s (79936 bytes in 0.191s)
478 KB/s (163008 bytes in 0.332s)
581 KB/s (1746672 bytes in 2.931s)
503 KB/s (206768 bytes in 0.401s)
371 KB/s (60440 bytes in 0.159s)
280 KB/s (34548 bytes in 0.120s)
104 KB/s (9320 bytes in 0.087s)
539 KB/s (449992 bytes in 0.815s)
142 KB/s (14240 bytes in 0.097s)
514 KB/s (357740 bytes in 0.679s)
152 KB/s (13984 bytes in 0.089s)
380 KB/s (86344 bytes in 0.221s)
329 KB/s (54872 bytes in 0.162s)


開始編譯


$ cd ~/yydroid
$ lunch full_passion-userdebug
$ make -j 4


使用的 Host 機器是 AMD X4 955 + 4GB RAM ,配給編譯的 Guest OS 是  1.5GB RAM + CPU x1,用 time 測試結果:


real 101m48.827s
user 104m18.890s
sys 8m21.430s


Updated @ 2011/04/13:


在另一台 Host 是 AMD X4 945 + 8GB RAM 其 OS 是 Win 7 x64,配給編譯的 Guest OS 是 2GB RAM + CPU x2,採用 lunch full-eng 後,用 time 測試結果:


real 60m4.647s
user 112m57.410s
sys 10m51.210s


在 Mac mini OSX 10.6.7,2GB RAM,CPU 是 2GHz Intel Core2 Duo,僅使用 SSH 登入後執行相關動作,採用 lunch full-eng 後,用 time 測試結果:


real    89m54.709s
user   139m58.045s
sys     15m54.753s


在 AMD X4 955 + 4GB RAM 中,採用 lunch full-eng 後,用 time 測試結果:


real    25m22.341s
user   98m34.990s
sys     6m16.400s


Step 6:刷機啦!


看一堆文章都用刷機字眼,我記得以前修課時都是用燒這個字眼 XD 反正入境隨俗,給他刷下去吧!在刷機之前,必須將 Nexus One 狀態切換至 fastboot mode,此時才能進行刷:


a. 把手機關機
b. 按住 "軌跡球" + "Power 鍵" 開機,即可進入神秘的模式
c. 使用 "音量鍵+/-" 來移動選擇項目,請選擇 Fastboot 並用 "Power 鍵" 選定,進入後可以看到 Fastboot 字樣,其背景顏色是紅色的


接著切換到 Ubuntu 操作,如果跟我一樣用 VirtualBox 的話,請先手動掛載 USB 裝置並挑選 htc 字樣,接著切換到 Gest OS 上,也就是剛剛編譯環境:


$ cd ~/yydroid/
$ fastboot devices (可以查看有沒連線的手機) 
$ fastboot -w flashall (正式刷機) 


--------------------------------------------
Bootloader Version...: 0.35.0017
Baseband Version.....: 5.08.00.04
Serial Number........: HT##########
--------------------------------------------
checking mid...
OKAY [  0.007s]
checking product...
OKAY [  0.005s]
checking version-bootloader...
OKAY [  0.006s]
checking version-microp...
OKAY [  0.006s]
checking version-baseband...
OKAY [  0.007s]
sending 'boot' (2320 KB)...
OKAY [  1.758s]
writing 'boot'...
OKAY [  0.922s]
sending 'recovery' (2558 KB)...
OKAY [  1.965s]
writing 'recovery'...
OKAY [  1.002s]
sending 'system' (92329 KB)...
OKAY [ 69.955s]
writing 'system'...
OKAY [ 30.144s]
erasing 'userdata'...
OKAY [  4.402s]
erasing 'cache'...
OKAY [  2.300s]
rebooting...

finished. total time: 112.537s


接著就會看到手機重開了,其畫面就是文章上頭的照片,很精簡的介面,沒有其他客製化的 app ,附帶一提,也沒有 Android Market 喔。往後安裝程式可以透過 adb install your_app.apk 的方式。過陣子在抽空去了解 Market 的事宜,網路上的文章只提了一下下(Android Market and AOSP)。


還原到原廠系統:


在網路上打滾一會兒,因為不曉得該怎樣下關鍵字,最後幸運找到囉!關鍵字就是 OEM、Original Shipping Image 等。另外,我也查到 Nexus One 因為 bootloader unlocking 後,似乎就沒保固了?因為 unlock 是不可逆的動作,盡管還是可以把作業系統恢復到原廠啦。


恢復到原廠系統,需要找到原廠 image 檔案,我找了一陣子,終於在 http://forum.xda-developers.com/showthread.php?t=614057 找到囉!但還不夠完美,理論上應該找到官方才對,而不是找到其他人釋出的版本,且 Android 很 Open ,所以系統被別人塞了甚麼東西,也是存在許多資安問題的,總之,目前我只找到此解 Orz 下載檔案,可以用 md5sum 確認一下,應該是 bef86698cafc88ca03fff5758571d9d6 才對。


把該檔案解壓出來,僅需要 boot.img 、 system.img 和 recovery.img 即可,接著剛上面 Step 6 狀態一樣,把 Nexus One 切換到 Fastboot mode ,並且在 Ubuntu 上透過 fastboot devices 查看是否有連街到,有連到就行啦,以下是連續動作:


changyy@Lab:~/yydroid$ fastboot devices
HT########## fastboot
changyy@Lab:~/yydroid$ fastboot erase userdata
erasing 'userdata'...
OKAY [  4.521s]
finished. total time: 4.521s
changyy@Lab:~/yydroid$ fastboot erase cache
erasing 'cache'...
OKAY [  2.461s]
finished. total time: 2.462s
changyy@Lab:~/yydroid$ fastboot flash boot  /path/boot.img 
sending 'boot' (2044 KB)...
OKAY [  1.585s]
writing 'boot'...
OKAY [  0.880s]
finished. total time: 2.465s
changyy@Lab:~/yydroid$ fastboot flash system  /path/system.img 
sending 'system' (116663 KB)...
OKAY [ 88.869s]
writing 'system'...
OKAY [ 40.625s]
finished. total time: 129.494s
changyy@Lab:~/yydroid$ fastboot flash recovery /path/recovery.img
sending 'recovery' (2294 KB)...
OKAY [  1.761s]
writing 'recovery'...
OKAY [  0.981s]
finished. total time: 2.742s
changyy@Lab:~/yydroid$ fastboot reboot
rebooting...

finished. total time: 0.040s


依序動作清除資料(erase userdata, erase cache)、刷 boot、system 和 recovery 部分,最後是讓 Nexus One 重開機啦!


device03 device04


可以看到版本是 ERD79 且為 2.1 版,接著更新一下,就可以更新到 GRI40 和 2.3.3 囉


device05 device07


收工!有空要來研究一下 root 的部分,暫時已知會動到 /system/xbin/su 和 /system/bin/su 的部分,但採用的是修改過的 su 原始碼,相關資料:


ChainsDD (Adam Shanks) - https://github.com/ChainsDD


https://github.com/CyanogenMod/android_system_extras/tree/gingerbread/su


http://android.git.kernel.org/?p=platform/system/extras.git;a=blob;f=su/su.c#l62


呼,其實這樣搞一遍也滿好玩的 XD 但找資料跟編譯很花時間啊啊啊。


@ 2011/04/14 Building AOSP on Mac OSX 10.6.7


整體流程:



  1. 建立區分大小寫的硬碟空間

  2. 安裝 Xcode 和 MacPorts

  3. 透過 MacPorts 安裝相關環境

  4. 剩下流程如同 Ubuntu 環境

    • 下載 AOSP 程式碼

    • 取得 Nexus One 相關資料 & 編譯




如果要在 Mac OSX 編譯 AOSP ,首先要處理 case sensitive 的問題,因為 Mac OSX 預設跟 Windows 一樣檔名不分大小寫。測試 case sensitive 的方式:


$ touch /tmp/test && ls -la /tmp/TEST


若找的到那就是不分大小寫


所以,就需要建立一個可以區分大小寫的空間,這時候可以不必重新切硬碟,而可採取建立一個映像檔的方式,用掛載映像檔的方式來使用空間。建立映像檔可透過 [應用程式]-> [工具程式] ->[磁碟工具程式] -> [新增映像檔]


01


接下來的新增映像檔畫面,如果沒有像下圖很多選項可以選,僅有指定位置等一兩種選項,那請去 [家目錄]->[資源庫]->[Preferences] 將 com.apple.DiskUtility.plist 先移到桌面,在重新啟動 磁碟工具程式 應該就可以解決。在這邊大小採用官網介紹的 12 GB ,最重要的是格式要挑區分大小寫的,如此一來應該就沒啥問題囉


02


建立好的樣貌如下圖,左邊就可以看到建立好的 android.dmg ,以及預設幫你先啟動了,但由於顯示為"磁碟映像檔",可能在後續動作有點需要打中文,此時可以透過點選桌面上的 [磁碟映像檔] -> [簡介] -> [名稱與副檔名] 更改成純英文數字的,如 Android 等,此時該空間的路徑是在 /Volumes/Android ,也可以透過 df -h 指令查看,若預設沒更改名稱則是在 /Volumes/磁碟映像檔 。


03


接著要安裝 Xcode 和 MacPorts。前者可以在 http://developer.apple.com/ 網站上下載,可註冊免費的 AppleID 並下載 Xcode 回來,請下載 Xcode 3 系列,如 xcode_3.2.6_and_ios_sdk_4.3.dmg 等,因為現況 Xcode 4 僅包含 MacOSX10.6.sdk,如果使用 Xcode 4 時,編譯過程會說找不到 MacOSX10.5.sdk。使用 Xcode 3 安裝時,請記得勾選 Mac OSX SDK 4。如果不幸先安裝了 Xcode 4 的話,要嘛上網查如何安裝 Mac OSX SDK 4,不然就是把 Xcode 4 移除 (sudo /Developer/Library/uninstall-devtools --mode=all) 並重開機後,再安裝 Xcode 3 囉,至於 Xcode 檔案大小約 4.5 GB,下載會需要一陣子。


接著是安裝 MacPorts 的部份,可參考 [Mac] 安裝 MacPorts & 解決防火牆問題 @ Mac OSX 10.6.7,安裝完 MacPorts 後,則依據 AOPS 官網簡介,安裝下列東西


$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg


若是 Mac OSX 10.4 則需在安裝 bison


$ POSIXLY_CORRECT=1 sudo port install bison


然而 AOSP 又提到 gmake 3.8.2 有問題,需手動安裝 gmake 3.8.1


$ sudo mkdir -p /opt/local/var/macports/sources/asop/dports && cd /opt/local/var/macports/sources/asop/dports
$ sudo svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
$ sudo vim /opt/local/etc/macports/sources.conf
file:///opt/local/var/macports/sources/asop/dports
$ sudo portindex /opt/local/var/macports/sources/asop/dports
$ sudo port install gmake @3.81


最後,可以去下載 AOSP 程式碼,並進行編譯囉,後續流程跟 Ubuntu 環境一樣。


2011年4月13日 星期三

[OSX] 安裝 MacPorts & 解決防火牆問題 @ Mac OSX 10.6.7

很早就知道 Mac 是 BSD 體系來的,有個東西叫 MacPorts,但遲遲一直忘了安裝。直到想要在 Mac 上編譯 AOSP 時,才發現官方介紹過程中有使用到 MacPorts,於是開始使用 MacPorts 啦。使用 MacPorts 必須先到 http://www.macports.org/ 下載,在此使用 MacPorts-1.9.2-10.6-SnowLeopard.dmg,請依機器狀況選擇。

這是一套 ports 的管理,有用過 FreeBSD 應該就不陌生了,簡單的來說就像 linux 的 apt 或 yum 套件管理工具,透過他可以幫你安裝程式。沒想到我現在才開始用,在這之前都一直使用 tarball 安裝法,好像有點蠢 XD

安裝完 MacPorts 後,使用前需要更新一下 ports tree (類似軟體清單):

$ sudo port -v selfupdate

如果很順利,大概會有類似的訊息:

--->  Updating the ports tree
Synchronizing local ports tree from rsync://rsync.macports.org/release/ports/
receiving file list ... done
./

sent 59 bytes  received 515550 bytes  114579.78 bytes/sec
total size is 28438585  speedup is 55.16
Creating port index in /opt/local/var/macports/sources/rsync.macports.org/release/ports

Total number of ports parsed: 0
Ports successfully parsed: 0
Ports failed: 0
Up-to-date ports skipped: 7918

--->  Updating MacPorts base sources using rsync
receiving file list ... done

sent 36 bytes  received 6858 bytes  2757.60 bytes/sec
total size is 2889184  speedup is 419.09
MacPorts base version 1.9.2 installed,
MacPorts base version 1.9.2 downloaded.

接下來要安裝軟體,就是需要用 sudo port install app ,如安裝 wget:

$ sudo port install wget

接著就會很自動地幫你安裝相依性環境、取得 wget 原始碼、編譯及安裝,就可以用 wget 指令囉。

關於 port 的使用,請 man port 來查看,常用的指令:

$ port installed (查看已安裝項目)
$ port search vim (尋找 vim 工具)
$ sudo port install app (安裝 app)
$ sudo port uninstall app (移除 app)

然而 MacPorts 預設採用 rsync 去取得 ports tree ,如果很不幸的使用環境是在防火牆後面,將導致 rsync 失敗,只好改用第二種方案,過程分為兩步驟:


  1. 使用 svn 取得 ports tree

  2. 使用 portindex 更新 ports tree

作法:

$ sudo mkdir -p /opt/local/var/macports/sources/svn.macports.org/trunk/dports
$ cd /opt/local/var/macports/sources/svn.macports.org/trunk/dports
$ sudo svn co http://svn.macports.org/repository/macports/trunk/dports/ .

$ sudo vim opt/local/etc/macports/sources.conf

#rsync://rsync.macports.org/release/ports/ [default]
file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports [default]

$ cd /opt/local/var/macports/sources/svn.macports.org/trunk/dports
$ sudo portindex

如此一來就可以正常使用 MacPorts 安裝軟體。參考資料:http://guide.macports.org/#installing.macports.subversion 和 Using MacPorts behind a firewall

如果哪天突然想移除 MacPorts 的話,可以透過以下指令移除透過 MacPorts 安裝的所有套件:

$ sudo port -f uninstall installed

接著再用 port installed 查看就沒東西囉

2011年4月9日 星期六

閒得發呆

Ocean Dunes Golf Club


昨晚無意間得知一場活動,今天中午跟著大家吃吃喝喝,下午看著藍天躺在宿舍床上,細想每一場盛會結束後,心中總會有一股莫名的空虛?好像是想要從那場聚會取得到什麼,事實上什麼也得不到。其實,人生就像桌台遊戲,每個人的資源都是有限的,並且身處何處皆有其意義,想一想就不會空虛了。最近覺得,並不是所有光鮮亮麗得活動都該去參加一遍,反而要找到合適的進入點才是。像是營隊小義工,付出己力貢獻社會,這也是另一種意義,覺得只有透過與人互動,才能得到一種實在的存在感。



聽著廣播,無意間聽到這首歌 - 香格里拉


作曲:黃玠
填詞:黃玠
編曲:黃玠.黃小楨
監製:黃小楨

我以為認真去做 就能實現我的夢
以為寫首好歌 走路就能抬起頭
以為騎摩托車旅行就能變英雄
現在的我 失去了衝動

有才華的人唾棄金光閃閃的獎座
親愛的 Cobain 是否也曾愛慕虛榮
多希望有人衝破疑惑帶我向前走
現在的我 變得好懦弱

雨會下雨會停 這是不變的道理
夜空中北極星 迷路的人不恐懼
我唱歌你在聽 一切風平又浪靜
G和絃的根音 撫平脆弱的心靈

我只想牽著你 走到很遠的夢裡
小木屋紅屋頂 地址是一個祕密
你抱著小貓咪 藍眼睛不再憂鬱
香格里拉在那裡 讓我們去找尋


內嵌的 YouTuBe 剛好是我以前常聽的廣播人娃娃唱的,印象中應該是周一至周五 22 或 23 點以後的中廣音樂網吧,偶爾來那麼一點無理的 input 也挺讚的。這首歌恰好在此刻給我一種很貼切的心聲,雨會下雨會停...


看到結婚的,走著婚後的生活、有小孩的走著有小孩的世界、單身的,騎著單車帶單眼,體會著絢麗的外貌背後所付出的點滴、到小公司上班有著大起大落或平淡一生的準備、到大公司上班有著文化負擔,沒有什麼事絕對的對或錯,還需多了解自己真正要的是什麼。


閒得發呆,優閒的周末。


2011年4月8日 星期五

[OSX] 重灌 Mac mini & 免費軟體偏好設定 @ Mac OSX 10.6.7

changyy's mac mini

這大概是第五或六次重灌 Mac mini 吧,手邊剛好有兩台機器啦,但上次新購了一台 22" LCD  以及幫某台增加記憶體後,使用率就突然變少許多,這次就從重灌振奮一下吧!跟 mac 還真的不熟,裝軟體有的還是自己下載 tarball 來安裝,趁這次就把流程記一下,順便筆記常用的軟體吧。

重灌流程:


  1. 擺光碟點選重灌後就會重新啟動電腦

  2. 先選擇硬碟工具,裡頭有格式化的功能,把硬碟清一下,目前我是把 320GB 規劃成 60 GB 系統碟,其他資料碟,每次只需清 60GB 系統碟就好

  3. 接著才是返回到安裝 Mac OS X 的步驟,就擺著給他跑 30 分鐘以上

  4. 安裝完就重開機,接著設定一些環境步驟,如網路連線等,其中會問 Apple ID ,照樣略過就好,直到最後的系統帳號才輸入自己想要的帳密資訊

  5. 設定完網路就可以更新系統,剛剛看竟然要 1.17 GB,還真不小,宿舍網路(5Mb/s)花了 40 分鐘以上

    • 我是使用一台 Win 7 多加一張網卡 + 跳線,提供 DHCP 服務給 Mac mini 上網用的,別忘了可以多加 DNS 168.95.1.1

個人設定


  1. 找一張有精神的照片當作桌布

  2. 開始把 Dock 上頭用不到的程式給他 "從 Dock 中移除",並把 Dock 移到右邊且稍微縮小圖示

  3. 將 "終端機" 、 "文字編輯"  擺上 Dock 位置

    • 文字編輯,[偏好設定] 改成純文字並更改字型大小為 14

    • 終端機,[偏好設定] 更改字型 14且版面改成黑色系列

  4. 設定開機登入需密碼

    • 系統偏好設定

      • 帳號->登入選項->關閉自動登入

      • 安全性->勾選進入睡眠或開啟螢幕保護程式後

    • 鑰匙圈存取

      • 偏好設定->在選單列中顯示狀態

  5. 連接 Win 7 網路硬碟

    • Finder->前往->連接伺服器,輸入 smb://win_7_ip

軟體清單&偏好設定:


  • Yahoo! 奇摩輸入法


  • Firefox

  • Google Chrome

    • http://www.google.com/chrome

    • [偏好設定]

      • [進階設定]->關掉翻譯、勾選每次下載詢問

      • [個人化設定]->永不儲存密碼

      • [基本設定]->顯示首頁按鈕、首頁定在 Yahoo!

    • [工具]->永遠顯示書籤列

  • FileZilla

  • Skype

    • http://skype.pchome.com.tw/download.html

    • 加密型通訊軟體,又可打網路電話,好用!幾乎跨平台了,iOS、Android、Linux、Windows 和 Mac OSX

    • [偏好]->[警示]-> 將"聯絡人狀態轉為可接聽",調成"不播放音效"和"不顯示內建訊息","聯絡人狀態轉為無法接通",把訊息框關掉

  • Adium

    • http://adium.im/

    • 原先想裝 Pidgin (http://www.pidgin.im/)的,但還必須自行編譯,有點麻煩,就改裝這套。這套支援 MSN、GTalk 等,算是不錯的 IM 囉,但我比較在意的是 GTalk 是否提供加密傳訊

    • [偏好]->[事件]->把聯絡人登入、登出事件移除,這樣就不會有登入、登出的聲效跟彈跳視窗,接著把 "背景聊天訊息" 和 "已接收訊息" 加上音效功能,隨便選一個吧。

    • [偏好]->[訊息]->把字型調大一點,如 14

其餘軟體:


其餘(如快速鍵):


  • 切換輸入法

    • 視窗鍵(CMD) + Space

  • 快速尋找

    • Ctrl + Space

  • 開啟分頁

    • 視窗鍵(CMD) + t

  • 複製、貼上

    • 視窗鍵(CMD) + c 、視窗鍵(CMD) + v

  • 得知作業系統版本

    • 左上角 mac logo 點進去,裡頭有"關於這台 Mac",不用再傻傻用 uname -a 啦

  • 開啟檔案管理

    • 視窗鍵(CMD) + n ,需在 Finder 環境下,如點選桌面一下再執行

  • 切換工作視窗

    • 視窗鍵(CMD) + tab 或是 Ctrl + F4,如果是同工作視窗的子視窗,可以按 視窗鍵(CMD) + ~ 進行切換

  • 編輯文書

    • 想要移到剛列前或尾

      • 視窗鍵(CMD) + 方向鍵左或右

    • 複製該列

      • shift + 視窗鍵(CMD) + 方向鍵左或右

    • 翻頁

      • shift + PageUp 或 PageDown

剩下的有空再補 XDDD

2011年4月4日 星期一

[Android] Sony Ericsson XPERIA X8 - 刪除內建程式

既然已經 Root 完此手機了,接著當然要移除一堆有的沒有的內建程式啦 :D 此篇比較適合對 Unix 系統指令熟的人。


手機環境:


模組號碼:
E15i 


韌體版本:
2.1-update1 


核心版本:
2.6.29
SEMUser@SEMCHost #1


版本號碼:
2.0.1.A.0.47 


操作方式:



  • 使用 PC 透過 WIFI 和 PuTTY 、 FileZilla 與手機連線,其中 PC 和手機是透過同一台 AP 上網的。

  • 在手機上安裝 SSHDroid 程式,開啟 SSH Server 功能。

  • 使用 PuTTY 連線進入手機系統,更改檔案系統為可讀寫狀態

  • 使用 FileZilla 連線進入手機系統,備份以及移除不需要的內建程式


分解動作:


動作一:取得 Root 權限(可參考 [Android] Sony Ericsson XPERIA X8 - Root 教學、關閉拍照聲音 部分流程)


動作二:安裝 SSHDroid (從 Market 下載),並啟動 SSH Server


動作三:從 PC 透過 PuTTY 連線進入手機,帳號 root 密碼預設為 admin,更改檔案系統為可讀寫狀態


mount -oremount,rw /dev/block/mtdblock0 /system


動作四:從 PC 使用 FileZilla 連線進入手機,並切換位置至 /system/ 以及把 app 目錄下載回 PC 備份(可以再丟到 Dropbox 等免費空間儲存)


動作五:使用 FileZilla 連線進入手機,切換至 /system/app 開始刪除不必要的檔案,點選以下程式並按 del 刪除


__.apk (電影,兩個底線)
___.apk  (手機網,三個底線)
____.apk (部落城市,四個底線)
crazypenguin.apk (Crazy Penguin 遊戲)
ezPeer+.apk (ezPeer+ 或 ezPeer,若顯示 ezPeer 必須先去刪除 ezPeer 再刪 ezPeer+ )
match__.apk (match音樂)
match____.apk (match軟體總管)
match_fortune.apk (match我的運勢)
match_Market.apk (match Market)
match_news.apk (match 新聞)
match_stocks.apk (match股市)
MY__.apk (My專區)
POI_searching.apk (在地快搜)
Slimquote.apk (股市達人)
towerbloxx.apk (Tower Bloxx 遊戲)
TV___.apk (TV 隨身看) 


若刪掉 12 個內建程式時,則省了一頁空間。其他還有 Plurk.apk 等程式,若是不用的話也是可以刪除。另外,刪除 ezPeer+.apk 後,程式還是在上頭,那是因為已經更新成 ezPeer 的關係,先到 [設定]->[應用程式]->[管理應用程式] 裡,把 ezPeer 刪除後,再從 /system/app 刪掉 ezPeer+.apk ,如此一來即可清乾淨,若不小心先刪了 ezPeer+ 但 ezPeer 還沒刪,那只好先把剛剛備份的 ezPeer+.apk 擺回來,再重新順一次即可。最後,以系統穩地為考量,不刪除過多東西。


動作六:雖然在動作五的時候,邊刪 *.apk 時可以看到程式一個個地不見,但最後來個重新開機還是不錯的選擇,包括會將動作三恢復,讓系統變成僅讀取狀態。動作六就只是把手機重開機啦。


如此一來,手機就省了一頁的空間,雖然只有一頁 XD 此處刪除的程式大多限用於台灣大哥大的用戶,所以用不到就把他刪掉吧。