• 沒有找到結果。

Splashtop 簡介與研究 b96705055

N/A
N/A
Protected

Academic year: 2022

Share "Splashtop 簡介與研究 b96705055"

Copied!
5
0
0

加載中.... (立即查看全文)

全文

(1)

Splashtop 簡介與研究

b96705055 蘇兆懷

開發公司: 達維飛碼(DeviceVM) Kernel type: Linux

Source code: 不開放 最新版本: 2010 年 1 月 7 日

Platform: x86

(2)

簡介:

Splashtop 是一款介於 embedded system 與傳統 PC 間的作業系統,主要構想 是「即時啟動」(instant-on),讓用戶能在最短時間完成開

機(通常為 5~8 秒),並執行一些基本的應用程式。Splashtop 安裝在一塊 512Mb 的 ROM 上,戶用無法修改或讀取其內 容。某些版本的 Splashtop(搭配主機板或 Notebook)被安裝 在硬碟中,用戶必須自行安裝,才可在 BIOS 中開啟

Splashtop 選項。這種版本的 Splashtop 可讓用戶自行升級,相對的也增加被破解 的機會,事實上已經有用戶破解硬碟版 Splashtop,使其能安裝在 USB flash memory 中,或是自行修改系統,執行非預設應用程式(如 Terminal 或 File manager)。

目前尚未有 ROM 版本的 Splashtop 被破解的消息。

功能:

Splashtop 提供圖形介面,基本的功能有 1. Splashtop 瀏覽器

使用 Firefox3 核心,經過精簡而成。由於無法安裝套件,所以已內建 Flash、

PDF Reader。

2. Splashtop 音樂播放器

使用 flash 寫成的音樂播放 器。

3. Splashtop 照片管理器

使用 flash 寫成的相片管理裝 置,可以播放 PNG、JPG、GIF 等 圖片格式,並可移動、管理。

4. Skype

如同一般 Spype 5. Splashtop 聊天

基於 Pidgin 所修改的 IM 軟體,可登入 MSN、Yahoo 即時通、AOL 即時通、

ICQ、QQ 等等

平台:

DeviceVM 最早與 ASUS 合作,安裝 Splashtop 筆記型電腦中,並設計專屬 ExpressGate 鈕,只要使用者一按,8 秒內就會出現 Splashtop 桌面。某些 ASUS 所出品的主機板中,也搭載 ExpressGate,透過 BIOS 畫面的選擇,使用者可以在 開機後立即進入 Splashtop 系統,而後才可進入作業系統。這些主機板又分為兩 類: 安裝在 ROM 中(P5Q)與安裝在硬碟的版本。

(3)

Hacking Splashtop

DeviceVM 與 ASUS 並沒有公開 Splashtop 是在何種裝置上運行,使用者也 沒有辦法讀取 Splashtop 系統的資料。所以本次報告著重於破解 Splashtop。

Part 1: 究竟 Splashtop 藏身何處

實驗 1 平台: P7P55D 主機板

透過 ASUS 所提供的光碟,可輕易安裝 ExpressGate,並可自由選擇硬碟位 置。安裝完成後,硬碟下出了兩個隱藏目錄: ASUS.000 與 ASUS.SYS。ASUS.000 中似乎包含 user data(檔名為 user-000.dat、user-001.dat),但由於 ExpressGate 並 不需登入,也不能切換使用者,無法理解這個資料夾的用途。

ASUS.SYS 就簡單明瞭,photo、pidgin 等關鍵字讓我知道這是 Splashtop 的 主體。裡面有許多以 sqx 為副檔名的檔案,這表示 Splashtop 是以 SquashFS 為檔 案系統。SquashFS 多用於嵌入式系統,這意味 Splashtop 並非一般 OS。

實驗 2 平台: ASUS UL30A 筆記型電腦

原先以我猜測是否如同主機板的版本一樣,安裝在系統中,在 C 槽的隱藏 目錄下的確發現 ASUS.DAT 與 ASUS.SYS,很不幸的,這兩個資料夾中並沒有 我們所要的檔案。

網路上許多資料都說 Splashtop 放置於一塊 512Mb 的 ROM 中,但我將 UL30A 的硬碟拆下來後,發現並無法啟動 Splashtop。

接著我打開硬碟管理員,發現硬碟中有 11Gb 的空間無法辨認,Splashtop 似 乎就藏身其中。我們使用 R-Studio 硬碟救援軟體把整顆硬碟掃一遍,終於順利 發現 Splashtop 藏身之處。

(4)

在 11Gb 的隱藏磁區中,35kb 可能是 page file,從 35kb 開始放的就是 ExpressGate 資料。這個隱藏磁區非常的複雜,有 FAT32、Ext2 等檔案格式,Ext2 每個分割區為 32MB。Splashtop 系統與資料的部份,被分散在不同分割區。

Part 2: 究竟 Splashtop 長什麼樣子

接著我把裡面的 sqx 檔解壓縮,會出現 Linux 系統常見的 bin、etc、usr、lib 等目錄。很明顯 Splashtop 是基於 Linux 所寫成,其中只包含少數重要元件。這 些元件被壓縮成 sqx 格式,當需要用到時才被解壓縮。這就是為什麼 Splashtop 開啟那麼快,但是執行軟體卻要花上許多時間的原因。舉例來說,開啟

ExpressGate 要 8 秒,但執行音樂播放程式卻要花上 20~30 秒,其中很大一部份 是花在 mount USB device。

仔細 trace 內部程式,發現 linux 該有的 Splashtop 都有,如 xserver、font、

gtk 等等。主機板和 Notebook 版本的 Splashtop 最大的差別在於,主機板版本是 安裝在 NTFS 或 FAT32 格式上,Notebook 版本是安裝在 Ext2 上,檔案格式的差 別造成某些元件不同。

Part 3: 增加程式到 Splashtop

由於 Splashtop 就是一個資料夾裡面包含許多以 sqx 封裝的格式,所以我嘗 試性的把某些只在 Notebook 版本的程式放入硬碟中,沒想到確實可以執行。如 此一來安裝程式相對簡單,只要把 usr、bin、lib 等資料夾封裝成 sqx 格式,丟進 去就可以使用。唯一比較有問題的是,快捷列也要一併修改,否則沒有辦法執行 (Splashtop 沒有檔案總管)

Part 4: 改變 Splashtop 解析度

Splashtop 的解析度通常低於螢幕,所以修改 x server 的設定變成很重要的一 個議題。以下分兩部份

主機板版本

這個版本是使用 tinyx 做為圖型介面,由於找不到 xorg.conf,所以我去 trace 相關設定的 script 後發現,它是讀取/.environment 中的 xorg.conf 檔,但資料夾中 並無此資料夾,所以我推斷這是程式執行過程中動態產生。而程式開始時會呼叫

(5)

init,去設定基本的解析度,做為基本選項,讓使用者選擇。

Notebook 版本

這個版本是使用 xorg 做為圖型介面,所以我簡單修改 xorg.conf 後,封裝回 bs-xorg.sqx 檔。但這時候遇到一個問題: R-Studio(硬碟救援)不提供寫入功能,這 時候麻煩大了,第一這是個隱藏磁區,再來它的格式是 Ext2,還包含其它許多 檔案(recovery),我找不到合適的軟體將修改過後的檔案放回去。

結論與未來

透過研究 Splashtop,讓我看到了一點「embedded linux system」的樣子,當 然還有很多地方研究不夠透徹,這些需要投入更多的時間。做這個報告常常卡住,

比方說在 ASUS.SYS 中找不到應有的檔案,就猜是不是放在 ROM 中,透過 BIOS 去 access。如果放在 ROM 中,可能要牽涉到更改 BIOS,就十分麻煩。有些時 候會有突然的靈感,比方說我發現瀏覽器中有我的最愛功能,表示至少要做寫入 的動作,所以不可能在 ROM 中,才想到把硬碟拔起來測試。

未來我希望讓 splashtop 的功能更完整,至少有 terminal 與 file manager,才 稱的上是一套實用的作業系統。

參考資料

1. Splashtop 官方網站 http://www.splashtop.com.tw/index.php 2. HackingExpress gate (Asus Splashtop)

http://www.phoronix.com/forums/showthread.php?t=11610

參考文獻

相關文件

☞ 投資成本約較模板式光電板高一倍,主要原因在 於目前設計都是Case by Case的生產,再配合與 建築本體的接合填縫、承載、隔熱設計、安全耐

第一步:在 VMware 按下 Install VMwave Tools 按下之後系統就會開啟安裝畫面給

本專題研究目的旨在活用 kinect 捕捉人體動作,並設法順暢與 設備連動的方法;同時對 HTML5(少許)與 javascript 進行研究,設

本專題研究目的旨在活用 kinect 捕捉人體動作,並設法順暢與 設備連動的方法;同時對 HTML5(少許)與 javascript 進行研究,設

(_1_)是探討電腦的運作與人腦的運作原理,以進一步地讓電腦運用人腦的運作模式,使某些問題的

手機會使用 eclipse 開發一套 Android 系統配合 arduino 三軸的 APP,其功能會 有連接 arduino 藍芽模組的按鈕,按下按鈕,將可與 arduino

(10 分)試說明 Linux 系統的使用者介面中「指令介面(command line interface)」與「圖形介面. (graphical user

所謂 是指最主要的部分會一直放在記憶體中,可是那些只有在特定時候才需要用到 的指令或資料,就只有被用到的時候才會放在記憶體中,不用到的時候可被蓋掉。.