128GB容量の小米Poco F1でWindows 11 ARM + Android雙重開機を試した後、Poco F1にはMobian、Ubuntu touch、postmarketOSも焼けるのだから、Linux + Androidのデュアルブートも難しくないのでは、と思いました。
こうする理由は、Linuxスマホ向けディストリビューションをメインシステムとして使いたいからです。ただしLinuxではまだカメラが動作しないので、予備としてAndroidも入れておく必要があります。現実はだいたいカメラで殴ってきます。
原理は、Renegade Projectが提供するGNU partedツールでスマホのUFSを2つのパーティションに分け、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をインストールする#
作業前に、PCへPlatform toolsをインストールしておきます。
TWRP公式サイトからPoco F1用のTWRPをダウンロードします。スマホをfastbootへ再起動し、Fastbootで焼き込みます。
fastboot flash recovery twrp-3.6.2_9-0-beryllium.img2. スマホのUFSを分割する#
Renegade Project公式サイトGNU partedからparted実行ファイルをダウンロードします。
スマホをTWRPへ再起動し、PCへ接続します。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へ入って、先ほど作成した2つのパーティションをフォーマットします。
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.zipLineageOSの圧縮ファイルを展開し、中にある
boot.imgを保存して、android-boot.imgへリネームします。Mobian weekly buildsをダウンロードします。
スマホを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の内部ストレージだけをマウントします。PCへ接続し、2つのシステムのboot.imgをMTP経由でAndroidの内部ストレージへ置きます。
Androidへ再起動したい場合は、TWRPメイン画面のInstallを押し、Install Imagesを選び、Androidのboot.imgをbootパーティションへ焼き込みます。これで再起動後にAndroidへ入ります。同じ要領で、Mobianも同じ仕組みです。
Android 12が原因でTWRPがAndroidパーティションを復号できない場合は、2つのシステムのboot.imgをSDカードまたはPC上に保存しておく必要があります。今後AndroidやMobianにシステムアップデートがある場合も、新しいバージョンのboot.imgを忘れずにバックアップしてください。
5. まとめ#
この方法はPCなしでも操作できますが、それでも少し面倒です。TWRPの読み込みにも時間がかかりますからね。
ちなみに、現在Renegade Projectはすでに開機觸控選單を開発しており、Windowsで起動するかAndroidで起動するかを選べるようになっています。この方面では、彼らは確かにかなり強いです。
それでも私はLinuxを使うことを選びます。小米Poco F1について言えば、Ubuntu touchではカメラが正常に動作し、Waydroidもあるため、Ubuntu touchでAndroidを置き換えるのは可能だと思います。そして将来Mobian/postmarketOSが最後のカメラドライバー問題を解決したら、単一システムだけをインストールすればよくなります。これらのシステム構造は、PC向けLinuxディストリビューションにより近いからです。


