2013/2/25

android x86

Msi u100 小筆電,歷經了 Windows XP、WIN7、Mac OSX 、WIN8幾個作業系統,感覺越
跑越慢,反應就是慢半拍,終於,在安裝了 http://www.android-x86.org/ 發表的
Android x86 4.0 RC2 (Thinkpad版)之後,感覺又重生了。

小筆電現在其實並不是我工作上、生活上的必須。可以說是個玩具。記得一兩年前曾經
在 IBM X60t上裝過Android-86 1.6,感覺其實不大好,但現在在Amd、Intel都承諾並
實際貢獻了Android x86這個項目的情況下,加上Android 4.0 本身越來越完美,小筆
電或是一般的Notebook只要能夠解決驅動程式的問題,都很適合拿來執行。

這次的安裝前後試驗了好幾個版本,最後找到了最適合u100的版本(4.0 RC2 Thinkpad
版),這個版本裝完,除了我用不到的有線網路需要手動開啟,剩下的問題只剩下APP
對ARM指令集的相容性與RC2新的SDCARD模擬方式與APP的不相容需要解決。成功解決這
兩者以後,錄了段影片:
按這裡檢視外部影片 (按這裡在新視窗中開啟影片)

安裝的步驟很簡單,但是解決問題卻要花很多時間測試

1. SDCARD問題:
RC2之後開始利用安裝系統的EXT3分割區(sda1)下直接掛載一塊與系統共享的資料夾
當做SDCARD,偏偏有些程式就是不買單,例如內建瀏覽器不能下載檔案,因為要存放在
/sdcard/downloads中。
解決的方式就是在安裝前或是安裝後,硬碟多分割一塊ext3格式的空間,假設是sda2,
那麼只要修改開機的GRUB menu.lst 加上 SDCARD=/dev/sda2,程式運作執行起來,就
會像是Nexus這種不能插SD卡的手機一般。

2. Arm問題:
我們必須要從 Buildroid下載以及複製三組檔案到我們的系統中
下載libhoudini.so 複製到 /system/lib/
下載 libdvm_houdini.so 複製到 /system/lib/
下載 後解開 arm libs 解開後把整個arm目錄 放到lib中 -->/system/lib/arm/

以上的動作可以自己透過終端機app操作,也可以自行從play store 安裝檔案管理程式
來協助複製的動作進行,x86版本身就已經取得root權限了,只要在super user警告跳
出來時確認即可。

詳細的安裝教學可以參考這裡


APP相容性列舉
---------------------------------------
- Skype 可執行,登入後提示是否需重新登入...
- Youtube 可執行、可播放,但要手動切換為非HD(也許別的顯示晶片就沒這問題)
- Asus Weather 可安裝,但要找網路上signed的版本,搭配安裝fakeGPS,設定修改不
能儲存,要手動編輯/data下的 xml設定檔
- PPS/風行 可執行,但不能播放...
- TuneIn Radio 可執行,但是串流失敗,改其他的免費網路廣播即可
- MoBBS 完美執行
- Flipboard 完美執行
- imo 完美執行
- Press 完美執行
- Kindle 完美執行
- CPS1模擬器 完美執行
- Quake3Droid 完美執行 30fps
- AirDroid 完美執行
- 內建語音搜尋 缺少套件,無法使用
- BeatsAudio installer 可安裝,音質完美(裝了就不能移除)
- 外接藍芽GPS 搭配BluetoothGPS可正確定位
- 超注音 完美執行
- Opera Mini 完美執行(x86版)
- Office系列 除三星內建的不能執行,其餘可由play store下載安裝的大致都沒問題
- AdAway 完美執行
- VLC for Android Beta 完美執行
- hifree 可執行,不能登入

http://jackiechin.blogspot.tw/2013/01/android-x86.html

Android x86這個計畫項目是將 Google Android 作業系統移植至 x86 平台的開放源碼
計劃,計畫的主持人黃志偉(Chih-Wei Huang)可以說是另一個台灣之光。

x86版本的Android特別適合用在x86小筆電與平板電腦等。本計劃自 2009 年六月開
始,已進行將近三年的時間。採用 Apache License 2.0 授權。Android 4.0 (ICS)是
第一個同時適用平板與手機的Android開放平台,特別是為平板所打造的Holographic
UI,為許多x86平板與小筆電帶來新的生命。(節錄自
http://android-day.com/presentation/android-x86-4-0-porting)


自從2011年底開始,Android x86 項目開始有了突飛猛進的進展,主要的原因是:

原先態度冷淡的CPU大廠們,感覺到了Android平台的魅力以及ARM架構處理器所帶來的
威脅,所以紛紛表態支持Android開源項目,實際上,就是希望x86平台可以更Smooth的
執行利用Android原始碼重新編譯過的x86項目。
Android的系統,本身有了重大的進步,平板與手機可以共用同一版本的系統,這意味
著移植到各方面較接近平板電腦的小筆電,能夠更順利。
Android-x86計畫參與者的努力不懈。


我們可以由以下兩篇報導,了解到現今CPU大廠對於Android平台的態度。

Intel 與Google 攜手最佳化Android x86平台
AMD 計劃把 Android 系統移植到 x86 PC
總之,現在安裝Android在Notebook/Netbook上,只要主要的硬體設備能夠驅動,絕對
會有令人驚喜的感覺。一直以來對家人淘汰掉的Msi U100小筆電無論跑Windows系列、
Mac OSX、或是Ubuntu,都感到系統運作的很吃力的我來說,成功的把U100 裝上
Android系統,的確讓人有耳目一新的感覺。


安裝的過程其實不難,就是手續比較多一點點。

實際安裝前我們要先準備幾樣東西:
1G或2G隨身碟一隻,太大的空間其實用不到。
UNetbootin,功能是要把下載來的ISO轉為可開機的隨身碟。
Android-x86-4.0-RC2 ISO檔
小筆電一台
下載ISO檔案時要注意,目前只要依照型號下載RC2這個版本就好,雖然目前所支援的特
定型號不多,如果沒有合適的,可以試試看 eeepc、thinkpad、或是ASUS Laptops這幾
個版本。

例如:我的Msi U100逐一測試到RC2 的thinkpad 能夠完美的驅動幾乎所有的硬體(除了
有線網路),我就選擇了這個版本。安裝前的測試方式,在後面會說明。

安裝步驟如下:
插上隨身碟,格式化成FAT32
執行UNetbootin,選擇ISO映像檔,並指向到下載好的Android x86 ISO檔。然後選擇隨
身碟的磁碟機代號,按確定,就可以製作可用來開機測試或安裝的隨身碟。

製作好開機隨身碟以後,我們就可以把隨身碟,安插在小筆電上,開機,選擇USB隨身
碟開機(開機後到BIOS或是由BootMenu中指定為USB HDD開機)

因為還不確定所下載的ISO對於自己小筆電的支援性好不好,所以我們先不安裝系統,
取而代之的,我們先選擇 Run Android without Installation
實際利用隨身碟開機到系統中,測試看看這個版本的硬體支援如何,最主要要考量的
是:無線網路、顯示解析度、滑鼠、WebCam、觸控板(可否控制到左右滑動)
若下載的ISO檔,並沒有辦法合乎需求,可以重新下載另一個ISO(還是4.0 RC2),重新
格式化或刪除隨身碟上的資料後,再用UNetbootin再製作一次開機隨身碟,再次測試,
直到找到滿意的ISO檔。
找到滿意的ISO檔案後,開機時,就可以選擇Install Android to harddisk,真正的把
系統裝起來。
安裝的過程,必須在Choose Partioion的地方建立兩個分割區,第一個sda1是用來放系
統的,第二個sda2是用來當作sdcard裝置的。兩個都要格式化(設定)成 type 83的
ext3格式,而且sda1要設定為bootable,最後要記得 write。


格式化好兩個分割區就可以選擇sda1進行安裝,是否要安裝GRUB開機管理程式,選YES
是否要建立一個可以讀寫的/system資料夾也要選擇YES。
安裝完成,重新開機。
重新開機後,就進入到了初始設定的歡迎畫面,簡單設定一下後,就可以看到桌面了。
但我們還有兩個最重要的問題要解決。

SD卡問題:RC2版本之前,Android都是利用掛載一個2G的磁碟image檔案來充當
sdcard,但是RC2之後,其實是利用sda1下的的一個目錄來當作sdcard的空間,實際測
試,大約只有1/3的app可以被這樣蒙混過去XD,所以我們必須要利用我們在安裝過程中
創的另一個sda2分割區來當作sdcard空間。方式是:重新開機,在GRUB選單中選第二個
項目(Debug),開機後,提示符號結尾為#,代表擁有root最高權限,cd / 到最上層目
錄,再cd 到mnt目錄下的GRUB中,vi menu.lst ,編輯 list檔,先按 i 進入insert
模式,在正常開機那段的結尾加上 SDCARD=/dev/sda2,修改好以後,按下esc 再輸入:
wq 存檔離開,然後就可以重開機了。





第二個問題就是NDK的問題,Android其實是允許app開發者利用c++撰寫自己的native
code,但這些code 是編譯成arm處理器能接受的格式,我們必須要在x86的架構下加上
可以轉譯arm 指令給x86 cpu 執行的函式庫

我們必須要從 Buildroid下載以及複製三組檔案到我們的系統中
Download libhoudini.so and copy it to /system/lib/
Download libdvm_houdini.so and copy it to /system/lib/
Download the arm libs, extract the downloaded archive and copy the files
to/system/lib/arm/

以上下載複製的動作可以使用兩個方式進行,在pc上下載好存在隨身碟上(開機的那隻
就可以),然後插上小筆電,利用app當中的 file manager瀏覽
/mnt/USB/your_arm_lib_path 來複製到指定的位置。

或是直接使用android x86來下載並複製到指定的位置去

特別一提的是,android的play store 有個 ES檔案管理器,功能強大,可以幫助我們
複製貼上搬動檔案、編輯檔案。
最後還要檢查一下/system/build.prop 檔案的內容,是否能找到
ro.product.cpu.abi2=armeabi
沒有的話也必須自己加上這一行。

至此,所有相關的修改與設定都應該完成。檢查看看內建瀏覽器可不可以下載檔案,如
果不行,代表SDCARD我們所做的設定沒有生效,需要再次檢查。檢查看看 Angry Rio
可不可以跑,不能跑的話代表arm translator沒有生效。

沒有留言:

張貼留言