快轉到主要內容

在小米Poco F1安裝Linux與Android雙系統,達成多重開機

智慧型手機 真Linux手機 postmarketOS Linux Android
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

🇺🇸 English version

在給128GB容量的小米Poco F1嘗試過 Windows 11 ARM + Android雙重開機之後,我想既然Poco F1還有Mobian、Ubuntu touch、postmarketOS可以刷,那麼要Linux + Android雙重開機也不是難事吧。

我這麼做的原因是要將Linux手機發行版當主力系統用,可Linux下相機仍無法運作,所以還是要安裝Android備用。

原理是用Renegade Project提供的GNU parted工具把手機UFS切出二個分區,64GB給Android,64GB給Mobian(Linux手機發行版),再把這二個系統分別刷入指定分區。然後因為有裝TWRP,要開機到哪個系統,就進入TWRP,然後把對應系統的boot.img刷入boot分區就可以開機了。

這樣相對Windows 11雙重開機要容易實作,不用想辦法搞出支援UEFI的boot.img。而且postmarketOS這個Linux手機發行版支援的手機要比Windows 11要來的多,很多手機也有TWRP支援,因此 本文的教學應該可以應用在其他Android手機上。 更重要的是,Linux遠比Windows要自由許多。

下面讓我來解釋一下實作過程。

1. 安裝TWRP
#

  1. 操作前記得在電腦上安裝 Platform tools

  2. TWRP官網下載Poco F1的TWRP,將手機重啟至fastboot,用Fastboot刷入:

fastboot flash recovery  twrp-3.6.2_9-0-beryllium.img

2. 開始分割手機UFS
#

  1. 從[Renegade Project官網]( GNU parted下載parted執行檔。

  2. 將手機重啟至TWRP,連線到電腦。將parted用ADB傳送到手機:

adb push parted /sdcard
adb shell
cp /sdcard/parted /sbin/
chmod 755 /sbin/parted
  1. 開始分割手機UFS:
umount /data
umount /sdcard
parted /dev/block/sda
# 列出手機上的分割表,這支手機應該有21個分區
print
# 將Android的分區(userdata) 縮小至64GB
resizepart 21 64GB
# 新增分區,剩下的容量都給Mobian
mkpart mobian ext4 64GB 123GB
quit
exit
  1. 再度重啟至TWRP,接著進入ADB Shell,把剛剛建立的二個分區格式化:
adb shell
mke2fs -t ext4 /dev/block/by-name/userdata
mkfs.ext4 /dev/block/by-name/mobian
exit

這樣就可以來安裝Android和Mobian了。

3. 安裝系統
#

  1. 為求輕便,Android系統我使用LineageOS。到 官網下載zip。

  2. 手機重啟至TWRP,按AdvancedADB Sideload,以ADB sideload方式刷入Android,ROM將會安裝至userdata分區。

adb sideload lineageos.zip
  1. 將LineageOS的壓縮檔解壓縮,將裡面的boot.img保存下來,重新命名為android-boot.img

  2. 下載 Mobian weekly builds

  3. 手機重啟至fastboot,刷入Mobian的boot.img

fastboot -S 100M flash boot mobian-boot.img
  1. 接著再刷入Mobian的檔案系統,將會安裝至剛剛新增的mobian分區
fastboot -S 100M flash mobian mobian-rootfs.img
fastboot erase dtbo
  1. 同樣,Mobian的boot.img要保存下來,並重新命名為mobian-boot.img

4. 雙重開機的步驟
#

手機重啟至TWRP,此時TWRP只會掛載Android的內部儲存空間。將其接到電腦,把二個系統的boot.img以MTP放到Android的內部儲存空間。

如果要重啟進Android,點選TWRP主界面的Install,點選Install Images,將Android的boot.img刷到boot分區,這樣重開機後就會進入Android。以此類推,Mobian也是同樣原理。

如果因為Android 12導致TWRP無法解密Android分區,那麼你就得把二個系統的boot.img儲存在SD卡或者電腦上。未來要是Android或Mobian有系統更新,記得也要備份新版本的boot.img。

5. 總結
#

雖然這個方式不用電腦也可以操作,不過還是有點麻煩,TWRP載入也要時間啊。

順帶一提,現在Renegade Project已經研發出 開機觸控選單,可以選擇要開機進Windows還是Android了,這方面他們的確蠻強的。

但我仍選擇使用Linux。並且就小米Poco F1而言,因為Ubuntu touch相機正常運作,且有Waydroid,我認為要用Ubuntu touch取代Android是可行的。並且等到未來Mobian/postmarketOS解決最後的相機驅動問題,我就可以只安裝單一系統了,因為他們系統架構比較接近電腦的Linux發行版。

相關文章

ASUS Zenfone 2 Selfie安裝postmarketOS
智慧型手機 真Linux手機 postmarketOS Zenfone
用電腦虛擬機體驗手機Linux系統:postmarketOS QEMU使用教學
智慧型手機 真Linux手機 postmarketOS
postmarketOS Netboot讓手機從網路開機
智慧型手機 真Linux手機 postmarketOS

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。