為什麼小米 4 可以刷 Win10 ?


有個啥不同啊,全都是Snapdragon,在到你們手裡之前都是用幾乎一樣的開發機調試的,而且小米又不像三星,使用自己專有的屏幕,當初在高通的時候,我們經常就拿wp開發機刷Android,因為開發機總是比開發人員少。。。更何況在高通,搞Android和搞windows的大樓就在兩隔壁。。。


架構沒不同。Snapdragon 801的,和HTC One M8一樣。


有驅動,啥都好說


首先說明下題主的問題不夠具體:

架構都完全不同

我對這裡的架構有兩種理解:第一種是,運行Windows10一般都是電腦,為什麼硬體架構不一樣的小米手機也能運行Windows10?第二種是,Windows10與小米手機原來運行的基於Android的MIUI的架構並不相同,為什麼小米手機依然可以運行?

對於第一種理解,已經有人回答過了,一般的電腦上運行的Windows10和手機上(不只是小米手機,包括Lumia當中一些型號)運行的Windows10並不是一回事。手機上的win10全稱為Windows10 mobile,而一班的電腦上運行的是Windows10。而微軟所計劃的win10全平台統一的計劃是和APPX分不開的。根據微軟的一些介紹以及新聞表示APPX應該是同時兼容手機端和PC端的。微軟想通過引導開發者通過從exe往APPX轉移,也就是藉助PC平台的成功來帶動手機平台。

雖然微軟號稱Windows10與Windows10 mobile底層已經相同,但是在某些協議等等方面由於平台的差異(PC為x86,而手機端為arm)是很難真正做到統一的,所以無論微軟如何努力,目前依然可以理解為Windows10和Windows10 mobile是兩個不同的東西。

這就像當初的Windows8.1有一個為arm平板設計的RT版本,後來由於8.1應用商店的失敗搭載那個系統的win8.1的平板基本都成了殘廢,它們由於CPU指令集不同,是沒法像使用x86架構CPU且搭載了8.1的平板和PC一樣運行exe應用。Windows10 mobile可以理解就和當初的RT版的win8.1差不多,雖然也屬於8.1,但和我們日常用的PC上的8.1並不是一回事。當然,看著現在的趨勢,Windows10應該會比8.1成功的:)

對於第二種理解,我先說結論:主流搭載了高通CPU的平台的手機其實基本都可以刷Windows10 mobile/WindowsPhone的。

正常Android手機啟動主要流程可以分為三個階段:Bootloader引導、Linux kernel啟動並啟動init進程、Android啟動。其實iPhone和Windows Phone手機以及電腦甚至是路由器等等主要啟動流程都是這樣的(關於底層啟動流程我沒什麼研究,這段話看看就好,我不保證嚴謹性,如有錯誤歡迎指出,也希望有人能補充)。總結下手機啟動的主要流程是三步,Bootloader引導,然後控制權交給了內核,內核引導系統的啟動。隨著wp對硬體要求從7到8再到8.1以及現在的win10mobile正在逐漸寬鬆,所以很多Android手機其實都是可以運行wp/win10mobile。先把eMMC分區改成Windows能識別的分區,通過改寫bootloader並將Windows內核和系統文件寫入到eMMC中完全可以實現Android手機刷Windows。

對,此時你會疑惑,能刷Windows的Android手機也不是沒有,為什麼就那麼幾個呢(HTC HD2,中興N880e三星內存版)?這是因為大多情況下廠家是不會公開bootloader這種等級的底層的源碼的。據說當年的HD2好像就是廠家和微軟流傳出了源碼導致社區的大牛重寫bootloader並公開了刷機過程,後來微軟和廠家都怒了,開始嚴格限制底層源碼防止流出,據社區的大牛們說不然的話能通刷Windows和Android的將不只是HD2(注意:這一段我是聽說的,來源已經無處考證了)。

廠家為什麼要限制底層級別的源代碼的放出呢?Android不是開源的嗎?這是因為底層的源碼和硬體關係很大,公開了底層源碼幾乎就公開了硬體規格等等一系列重要的資料,這是硬體廠家不能接受的。

但是Google的上述做法隨之帶來了一個問題,Kernel和Android採取不同的許可證,Kernel採用GPL許可證,而Android採用Apache Software License(簡稱ASL)許可證。在GPL許可證中規定,對源碼的任何修改都必須開源,所以Android需要開源,因為它修改了Kernel。而在ASL許可證中規定,用戶可以隨意使用源碼而不必開源,所以建立在Android之上的硬體驅動和應用程序都可以保持封閉。這種封閉得到了更多硬體廠商的支持,Google特意修改了Kernel,使得原本應該包括在Kernel中的某些功能都被轉移到了「userspace」中,所以就避開了開源。

這是來自《Android 驅動開發與移植實戰詳解》書中的一段話(侵權請聯繫我刪除),相信已經解釋了這個問題了,還解答了為什麼Android被踢出了liunx開源社區的問題。

當然,有一門技術叫做逆向。通過逆向工程理論可以實現對bootloader的破解,然後將底層不完全開源的Android手機刷入Windows系統。但是逆向工程所花費的時間和所需要的人才這兩個條件正常情況下幾乎無法滿足,而且還有被廠家告上法庭的風險。這次小米4可以刷win10我腦補小米給了微軟米4的底層源碼。

最後歡迎糾錯和補充,另外求底層大牛帶我飛!自己看書根本看不下去啊啊啊~~~


那叫win10 mobile,不叫win10。只能使用metro應用,傳統的桌面應用還是不能用。

那些說什麼「打通平台」的,有本事你拿個iso給你們手機刷機去。個人認為只要還需要適配,就不該叫打通平台。


小米4的Win10,為什麼要等這麼久?


把ARM指令集上的叫做win10是不嚴謹的說法,其實應該叫做Win10 Mobile,這個是在ARM指令集上運行的,和PC上x86架構的Win10不同


我又想起神機HD2 TM還能刷XP呢。


小米上的是Win 10 Mobile,本來就是基於ARM架構的~

不同架構(X86、X64)的是Win10~


win10 mobile ,看清楚 mobile 噢


我想知道我用的聯想K900是Intel處理器x86架構的,能不能刷Windows


推薦閱讀:

Windows10完整版支持ARM處理器並可運行x86程序是否意味著巨頭大融合?架構效能如何?
微軟為何現在依然捆綁 IE 瀏覽器?
微軟 Windows 10 32TB 代碼泄露有什麼後果?
微軟WinHEC 2016演示Win10 ARM完整版:驍龍820筆記本運行桌面程序,該技術是否意味著Surface Phone運行傳統X86程序有很大可能?
微軟發布Win10旗艦Lumia950/XL:Liquid Cooling是什麼技術?

TAG:微軟Microsoft | 手機 | 小米手機 | Windows10 |