在給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#
操作前記得在電腦上安裝 Platform tools。
從 TWRP官網下載Poco F1的TWRP,將手機重啟至fastboot,用Fastboot刷入:
fastboot flash recovery twrp-3.6.2_9-0-beryllium.img
2. 開始分割手機UFS#
從[Renegade Project官網]( GNU parted下載parted執行檔。
將手機重啟至TWRP,連線到電腦。將parted用ADB傳送到手機:
adb push parted /sdcard
adb shell
cp /sdcard/parted /sbin/
chmod 755 /sbin/parted
- 開始分割手機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
- 再度重啟至TWRP,接著進入ADB Shell,把剛剛建立的二個分區格式化:
adb shell
mke2fs -t ext4 /dev/block/by-name/userdata
mkfs.ext4 /dev/block/by-name/mobian
exit
這樣就可以來安裝Android和Mobian了。
3. 安裝系統#
為求輕便,Android系統我使用LineageOS。到 官網下載zip。
手機重啟至TWRP,按
Advanced
→ADB Sideload
,以ADB sideload方式刷入Android,ROM將會安裝至userdata
分區。
adb sideload lineageos.zip
將LineageOS的壓縮檔解壓縮,將裡面的
boot.img
保存下來,重新命名為android-boot.img
手機重啟至fastboot,刷入Mobian的boot.img
fastboot -S 100M flash boot mobian-boot.img
- 接著再刷入Mobian的檔案系統,將會安裝至剛剛新增的
mobian
分區
fastboot -S 100M flash mobian mobian-rootfs.img
fastboot erase dtbo
- 同樣,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發行版。