編譯 | 蘇宓
出品 | CSDN(ID:CSDNnews)
打造一款“一統(tǒng)天下”的操作系統(tǒng),很多科技巨頭們都曾夢想過:Google 在移動端坐擁全球最流行的 Android,桌面端則有 ChromeOS,其還曾嘗試推出可跨多個平臺運行的 Fuchsia,不過多年過去,這款系統(tǒng)始終沒能激起太大水花;與之有著類似經(jīng)歷的微軟,在桌面市場憑借 Windows 一騎絕塵,但在移動端卻折戟沉沙,Windows Phone 的失敗成為揮之不去的遺憾...
隨著移動設(shè)備形態(tài)的不斷演變,從手機到平板、從折疊屏到可穿戴設(shè)備,越來越多的開發(fā)者等不及大廠的“一統(tǒng)天下”了,率先自己動起了手。
這不,最新嘗試的是一位名為Gustave Monce的硬核極客開發(fā)者,他于近日把 Windows 裝進(jìn)了 Arm(手臂)設(shè)備里,更準(zhǔn)確的說,帶到了智能手表上!
開機界面如下:


“折騰 Windows on Arm 這么多年,我膩了”
現(xiàn)實來看, Gustave Monce 是個典型的“折騰狂人”,他不僅是法國波爾多大學(xué)(LaBRI)的博士生,研究方向涉及軟件工程、嵌入式系統(tǒng)和 SoC 開發(fā),還是一位徹頭徹尾的極客。他喜歡研究微軟操作系統(tǒng)的演變,收藏稀有的原型硬件,并挑戰(zhàn)讓 Windows 在各種“不可能”的設(shè)備上運行。
如果你翻開他的 GitHub 主頁,會發(fā)現(xiàn)他的貢獻(xiàn)記錄密密麻麻。

而他 此前最廣為 人知的“神奇操作”,莫過于讓 Windows 11 在舊手機上成功運行。
早在2021 年 Windows 11 預(yù)覽版剛發(fā)布時,Gustave Monce 就盯上了——這是微軟 Windows Mobile 時代的“絕唱”,也是最后一款官方搭載 Windows 10 Mobile 的手機。按理來說,它的時代早已結(jié)束,但在他的手里,這臺老設(shè)備竟然成功運行了 Windows 11!

這還不夠,他隨后又折騰起了微軟的雙屏手機,讓它完美運行 Windows 11,玩出了新花樣。

但這些挑戰(zhàn)都已經(jīng)完成了,接下來還能做點什么?Gustave Monce 一度陷入了沉思,直到某一天,他突然想明白了:“答案一直就在我眼前!讓 Windows 跑在手臂設(shè)備上!更準(zhǔn)確地說,讓它跑在——智能手表上!”

為什么要這么折騰?
Gustave Monce 在他的博文中坦言:
“多年來,我花了(或者說浪費了)無數(shù)時間,讓 Windows on ARM 運行在各種不是電腦的設(shè)備上,直到有一天,我突然有點膩了。 下一個項目能是什么呢?我折騰了好幾年,甚至玩了折疊屏手機,但總感覺還不夠。一定還有更離譜、更有挑戰(zhàn)性的東西…… 我在網(wǎng)上亂逛了成千上萬小時,甚至和一些年紀(jì)大的人聊天,仍然找不到答案。 直到有一天,我終于想明白了。 我要讓 Windows 運行在智能手表上!”
于是,他開始了這場讓 Windows 運行在智能手表上的挑戰(zhàn)。

智能手表的選擇
在Gustave Monce看來,2025 年了,還有誰不愛智能手表呢?畢竟,市場上現(xiàn)有的智能手表的性能其實都不錯。在這次嘗試中,Gustave Monce 理想中的硬件規(guī)格如下:
四核 64 位 ARM Cortex A53 處理器
整整 2GB DDR4X 內(nèi)存
32GB eMMC 存儲
Adreno 702 GPU(支持光線追蹤?。┲黝l高達(dá) 1GHz(便攜游戲機?)
456x456 OLED 曲面顯示屏,還是圓形的
超高速 LTE 調(diào)制解調(diào)器(部分型號)
USB 充電
音頻輸出
高端 WiFi 6E + 藍(lán)牙(SDIO 傳輸,2003 年的 PDA 看到這技術(shù)都得淚目)
支持通話和短信
超先進(jìn)傳感器集群(對你的健康有好處,盡管作者自己可能更需要這個)
額外的協(xié)處理器,實現(xiàn)低功耗深度睡眠!
續(xù)航比你想象的要長(當(dāng)然,前提是用原生系統(tǒng))
全球首款圓形觸摸屏
小巧,精致,畢竟是塊表
它擁有你手機的所有功能
各種約束下,Gustave Monce 將目光對準(zhǔn)了自己手里剛好有的一塊Google Pixel Watch 3(大號 LTE 版)手表。他表示,“這款手表的硬件配置跟我花了 2000 美元買的手機幾乎一樣,但價格便宜了 75%。(所以,為什么還要買那么貴的手機呢?)”

讓 Windows 在智能手表上運行
拿到手表的第一天,Gustave Monce 像所有極客一樣,第一反應(yīng)就是——開始折騰。

Pixel Watch 3 采用的是高通 Snapdragon W5 Gen 1(SW5100)處理器,配備了2GB DDR4X 內(nèi)存 + 32GB eMMC 存儲。
對于智能手表來說,這樣的配置已經(jīng)相當(dāng)不錯。
而對 Gustave Monce 來說,這是一款高通芯片設(shè)備,意味著他之前折騰高通設(shè)備的經(jīng)驗派上了用場,甚至可以直接復(fù)用一些開源代碼。
同時,這塊手表的啟動方式也很關(guān)鍵——它使用的是 UEFI(類似于電腦 BIOS 的啟動系統(tǒng)),這意味著它的啟動方式和 PC 比較接近,讓運行 Windows 變得可能。

它的 SoC 采用了四核 Cortex-A53,雖然是比較老的架構(gòu)(Cortex-A53 其實是 2011 年設(shè)計的),但經(jīng)過時間驗證,依然夠用。當(dāng)然,這顆芯片沒法運行那些需要原子操作(atomics)的現(xiàn)代操作系統(tǒng),但對于這次實驗來說,已經(jīng)足夠了。
搞清楚這些基本情況后,Gustave Monce 所做的第一步就是用 root 過的 boot 鏡像備份手表系統(tǒng),并進(jìn)行解析固件:

然后,Gustave Monce 先從原始 UEFI 里一點點提取 EFI 啟動文件,適配到 UEFI 環(huán)境里。這個過程并不簡單,但最終,他成功進(jìn)入了UEFI 界面。

在經(jīng)歷了數(shù)小時的補丁修復(fù)和加載順序調(diào)整(原本的順序完全亂套了),Gustave Monce 終于看到熟悉的UEFI Shell
沒想到的是,新的問題隨之出現(xiàn)——手表屏幕的分辨率太低,竟然不符合 UEFI 規(guī)范!這意味著他還得手動調(diào)整 UEFI 代碼,讓它能正確適配手表的顯示屏。

接下來,Gustave Monce 又開始調(diào)整ACPI 表(負(fù)責(zé)管理硬件資源的配置文件),這一步主要是從已知的 8250 設(shè)備上復(fù)制現(xiàn)成的 ACPI 表,然后補上定時器和中斷控制器(GIC)的信息,這些數(shù)據(jù)可以從原生設(shè)備樹(Device Tree)里找到。

這項工作并不算特別難,只要知道去哪里找數(shù)據(jù),大部分時候就是復(fù)制粘貼,加點修改,把關(guān)鍵的表格填好就行了。
為了進(jìn)行測試,他還準(zhǔn)備了一個簡化版的 DSDT ACPI 表,只定義了4 個 CPU:

終于,Windows 真的啟動了!

當(dāng)然,這只是 Windows PE(Windows 的簡化版),功能非?;A(chǔ),甚至還沒完全加載完(Gustave Monce 稱自己懶得等)。但它確實能運行,證明了這個瘋狂的想法是可行的!
初步驗證之后,新的挑戰(zhàn)出現(xiàn)了——
首先,手表的存儲空間有限,只有 32GB,而系統(tǒng)已經(jīng)占滿了所有可用空間,根本沒有地方放 Windows 文件。

然而,由于這是 Google 旗下的產(chǎn)品,它采用了“超級分區(qū)”(super partition)以及 A/B 雙系統(tǒng)槽機制,并使用了一些較新的分區(qū)格式,比如 boot image header v4。
于是,Gustave Monce 利用了 A/B 分區(qū)機制,將當(dāng)前未使用的 A 槽(對他而言)中的最大分區(qū)(modem_a)覆蓋,替換為自己的啟動文件。由于這個分區(qū)最多只有 150MB,因此他還對 Windows PE 進(jìn)行了精簡,最終成功解決了存儲問題。

升級導(dǎo)致崩潰
在正式發(fā)布這個項目前,他決定把手表升級到最新固件,以保證穩(wěn)定性。

但令Gustave Monce 沒想到的是,這一步差點讓他的努力白費。
Google 向手表推送了Android 15(此前是 Android 14 系統(tǒng))。

他更新后,Google 的Web 刷機工具崩潰了兩次,每次更新都要 4 個小時。更慘的是,更新完成后,Gustave Monce 發(fā)現(xiàn)自己的 UEFI 版本無法啟動了!
經(jīng)過排查,問題出在Google 更新了 ABL(Android Bootloader),導(dǎo)致他的 UEFI 啟動文件被認(rèn)為“太小”,無法通過驗證。

Gustave Monce 嘗試了各種方法,甚至改了設(shè)備自帶的內(nèi)核鏡像,最終發(fā)現(xiàn)新的 ABL 只接受特定格式的內(nèi)核頭文件。最終,他拿到官方的內(nèi)核頭文件,刪除代碼,只留下跳轉(zhuǎn)指令,然后把自己的 UEFI 追加到后面,終于讓系統(tǒng)再次正常啟動!

最后
Gustave Monce 的這次嘗試吸引了不少人的圍觀,有網(wǎng)友表示:“可以給微軟參考了,為 Surface Watch 鋪路....”,也有人調(diào)侃”真正踐行Windows on Arm的理念了“。
在昨天發(fā)布了這個項目后,Gustave Monce 自評道:“這次的愚人節(jié)項目,和我以往的風(fēng)格一樣:又真實又滑稽,而且還沒做完。你現(xiàn)在就能嘗試,但……你最好別試,哈哈哈。對我來說,這項工作非常有趣...我希望這個實驗對這個星球上的某些人來說是有用的。對于其他人,我希望你們會過得很愉快?!?/p>
如果你感興趣的話,更多詳細(xì)內(nèi)容可參考 Gustave Monce 個人博客:
https://gus33000.me/fish/
或者查閱 WOA 項目 相關(guān)內(nèi)容:
https://github.com/WOA-Project/mu_seluna_platforms
https://github.com/woa-project/pixelwatch-guides
4 月 2 日 20:00,CSDN《萬有引力》欄目特別邀請到OpenManus 項目一作、MetaGPT 開源核心貢獻(xiàn)者梁新兵,DeepWisdom 算法研究員、OpenManus 核心作者向勁宇相聚 CSDN 視頻號直播間,在CSDN &《新程序員》執(zhí)行總編、《萬有引力》主理人唐小引主持下,一起聊聊 00 后程序員的故事,以及 OpenManus 背后的秘密!
熱門跟貼