這是一隻2010年上市,上市時候搭載的是Android 1.6版本的手機,也是SonyEricsson 第一隻Android手機,看得出來當時SE花了很多人力在這支手機上,從那浮誇的介面跟轉場動畫就可以看得出來,不過今天不是介紹手機,今天來說說一點小感想
中間那隻是我2010年使用的那隻,右邊是最近買回來收藏的日版SO-01B,但是因為觸控壞掉,所以我又買了最左邊那台回來殺肉。這邊可以看到我自己的X10經過16年前面版還是相當雪白,媽媽說:男人有沒有細心,看他的X10前面版有沒有白就知道了,就是這個道理。

X10算好拆的,前面版一樣所以主板直接對調就好。

日版差距只有內部韌體以及後背蓋不同而已。

手機就說到這邊,今天主要是要來說說X10的軟體,也就是裡面最重要的Timescape以及Mediascape,然後今天只會介紹Timescape。
Timescape其實是一個Android 的Launcher,它決定了手機的外觀、操作邏輯與功能配置。
當初Timescape第一次出現在我眼前的時候我就深深被吸引了,但是實際上使用的時候卻發現它的流暢度對其他人來說完全是個垃圾,為什麼是對其他人來說呢?因為我有愛所以我可以接受!!接下來升級到Android 2.1,Timescape還是不流暢,最後X10停在2.3.3版,後面推出的arc 跟 Sony Xperia S 雖然還是有Timescape,當時的Timescap變成只是一個獨立的App,並不是Launcher,雖然流暢許多,但是我就覺得失去了Timescape的最初的味道了!
Timescape就是一個把 Facebook、Twitter、Plurk、簡訊、未接來電、相片、音樂……全部聚合成一條可捲動的 3D卡片串流UI,我們看到的一個一個的資訊卡片是 OpenGL ES 1.0 即時渲染,列表走 GL10 draw call,整個 UI 由 Sony 的 SEEE 引擎驅動。資訊根據不同國家的社群不同提供不同的插件plugin,我當時還為了豐富Timescape的內容去註冊中國有提供的新浪網跟人人網。台灣當時多提供了Plurk噗浪的插件可以連接plurk。

我這幾年想到就會把X10拿出來把玩,還刻意把X10 降版回去最早的Android 1.6版,雖然慢但是情懷深。漸漸的我發現facebook無法更新,Plurk內容無法更新但是照片還在,接著twitter無法登入,Gmail不會同步,最後一個不見的是Plurk的照片。
雖然當時已經開始會自己開發Android程式了,也曾經發願要把Timescape反組譯後修改,但是一直沒用能力做到,然後到了這兩年的AI功力突飛猛進,於是在AI的幫忙之下我終於把資料塞回Timescape中了
第一步就是手機要root,Android 1.6 的root相當簡單,而且我在當年就已經裝好root 跟supersu了,後來升級的2.1-update就封死1.6的漏洞,所以我買到的SO-01B目前還卡在找不到1.6版本的ROM或是2.1版的rooted ROM之間。要把資料塞進去有兩種方式一種是合法的寫Timescape的插件,再連接後面的資料來源,但是這個已經年久失修找不到Timescape的EDK了,另外一種方式就是攔截現有Timescape的請求封包,然後根據請求的資料格式塞給對應的資料,我就是用這種中間人的攔截方式。
塞回資料第一步就是指定手機的DNS,把它指定到本機電腦。Timescape裡面會用到的api如下,另外plurk的大頭照其實網址都還在,只是http導到https了,然後android那個時代的API都沒有Certificate Pinning,預設都走http,所以資料都沒辦法取得,我們修改DNS讓原本請求的位置改為由我們提供。

接下來就是拆解source ,Timescape整個資訊都是由一個叫做 uWlop 的daemon負責,uWlop用 native C++ 寫成,負責定期呼叫 Facebook/Plurk 等平台 API,把資料存進 SQLite,再透過 ContentProvider 供 Timescape 顯示。所以我在本機準備了一個mock_server,啟動了
HTTP Server(port 80)
DNS Server(port 53,UDP)
IMAP Server(port 143,TCP)
SMTP Server(port 25,TCP)純stub無動作。
主要的HTTP server 就是回應Facebook的資料給Timescape;DNS server 攔截手機的DNS查詢,把特定 domain 導回本地;IMAP跟SMTP則是讓Timescape下的Mail 也有資料用
首先把avatars.plurk.com,轉回本機後,再去真實的 https://avatars.plurk.com 把SQLite db中的大頭貼抓回來,就可以讓plurk的使用者大頭照出現了,底下的發文是真實當初最後收到的資料,plurk 算是很有誠意一直支援到2016年了!Respect!

Google 在2021/09/27後已經完全取消Android 2.3.7 之前版本的手機登入google 帳號功能,所以gmail也無法在X10上使用了,還好X10內部的一般郵件App還可以使用,一樣在mock_server上啟動IMAP功能,提供假的mail資料,一樣可以在Timescape出現,然後在X10通訊錄裡面加入使用者的頭像跟email資料,Timescape就可以正常出現有頭像的mail資料了

最後講Facebook部分,現在的FB Graph API要取得使用者的POST變得很麻煩,我只是要讓Timescape有資料而已,不需要是最新的資料,所以最簡單的方式就是mock_server弄一個手動輸入資料的格式,然後讓手機連過來的時候同步我們手動輸入的資料就好

郵件新增也是使用同樣的方式

我有把偷出來的sqlite解開看,裡面都是當時輸入在手機裡面的朋友資料,好懷念啊!

然後當年X10 上市時候我還有去當X10的講師去台北上課教使用X10一個月,看著電腦裡面當時做的keynote簡報,當時手機裡面的朋友不知道現在是否安好?

我真的是對X10很有愛......

給大家看一下這漂亮的UI
十年後連載再開,我的收藏整理記錄EP1--除濕篇
十年後連載再開,我的收藏整理記錄EP2--SonyEricsson手機清點篇
十年後連載再開,我的收藏整理記錄EP3--電池篇
十年後連載再開,我的收藏整理記錄EP4--盒子包裝篇
十年後連載再開,我的收藏整理記錄EP5--SonyEricsson X10i




























































































