気の向くままに辿るIT/ICT/IoT
ハードウェア

Raspberry Pi 400/USBメモリにAndroid 12L/LineageOS 19をインストール

ホーム前へ次へ
Raspberry Piって?

Raspberry Pi 400/USBメモリにAndroid 12L/LineageOS 19をインストール

Raspberry Pi 400/USBメモリにAndroid 12L/LineageOS 19をインストール

2022/10/28
Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19
VNC越しにPCでスクショした
Raspberry Pi 400/USBメモリ上の
Android 12L/LineageOS 19

 Raspberry Pi 400の常用のSSDとは別に差し替え起動すべく、USBメモリにAndroidカスタムROMをRaspberry Pi 4/Raspberry Pi 400/Compute Module 4対応にしてくれた個人利用には制限なさ気なKonstaKang氏?製Android 12L/LineageOS 19をインストールしみてみた話。

 なお、同時に別のUSBメモリに同じくラズパイ用で、ほぼ素のAndroid 13ベースのAOSP13もインストールしてみました。

 ちなみにAOSPなAndroid 12L他もあります。

 先に試したAndroid 13/AOSP13と共通の点は下記リンク先に譲ります。

準備

 ハードウェアとしてRaspberry Pi 4系(4B/CM4/400)かつ、RAM4GB以上とブート・システム用のメディアが必要です(別途ラズパイ3用にもAndroid 7〜10相当のLineageOSもありますが)。

 今回は、Raspberry Pi 400 RAM4GBとUSBメモリを使ったので以降の説明もこれに準じます。

 また、メディアへのイメージ書き込みやメディア編集、microSDカード以外のメディアを使う場合、必要となるconfig.txtや場合によってはresolution.txtファイル編集などを行うにあたり、OSはなんでも良いですが、ラズパイパソコンやPCなどコンピュータが必要です。

 ソフトウェアとしては、一覧から今回は、LineageOS 19/Android 12Lを選んだのでLineageOS 19 (Android 12L) for Raspberry Pi 4を選ぶと手順やリンクが全て書いてあります。

 要約すると最低限、Androidカスタムイメージが、必要ならGoogle Playストアインストール用圧縮ファイル、rootアクセス権を与えるソフトウェア(zipとapk)、この後メディアに焼くイメージのuserdataパーティションをGPartedなどで事前に拡張したくないならリサイズ用のzipファイル、他に必要なものを用意できるならそれら。

 最低限と言ったのは、試してみたところ、Android 12L/LineageOS 19では、若干不安定ながらF-Droidのインストール、F-Droidからのアプリのインストールが共にできた、誰しもroot化したいわけじゃない、事前にリサイズはできるから。

Androidカスタムイメージをメディアに書き込む

Raspberry Pi ImagerでUSBメモリに書き込み中のラズパイ用KonstaKang Android 12L/LineageOS 19

 ddでも良いですが、Raspberry Pi Imagerを使い、[OS]として[カスタムイメージを使う]のが簡単でしょう。

パーティション拡張

 USBメモリのAndroidイメージを起動後、再起動からUSBメモリに入れたファイルのインストールもできるリカバリツールTWRPを起動してlineage-19.1-rpi-resize.zipをインストール...としても良いですが、どうみても手間がかかるのでGPartedなど好みのディスク管理ソフトを使えるPCなどの環境があるのなら、事前に設定しておくのが賢明でしょう。

 具体的には、FAT32 1つの他、3つあるext4パーティションの内、userdataパーティション領域が4GBちょっとしかなく、アプリを入れるなどすると不足する可能性があるので用意した、より大容量であるはずのメディアに応じて拡張しておくのが良いでしょう。

 ただ、説明のどこかにパーティション末尾に何かのための領域が必要らしく、resizeファイルではそれも確保してくれるらしき記述があったような...その容量は不明ですが、自身は、適当に1〜2GB空けておきました。

準備したファイルのコピー

 オリジナルの説明には、「別途USBメモリを用意しても良い」旨記述がありますが、FATパーティションのものを試してみたところ、なぜか、起動中にUSBポートに挿してもTWRP上では読み込めなかったので、Androidイメージを焼いたUSBのuserdataパーティションの方が賢明かも?何れにせよ保存できる領域をマウントして書き込んだイメージ以外に事前に用意したzipファイルなどをコピーしておきます。

config.txtファイルの編集

...
#dtoverlay=android-sdcard
dtoverlay=android-usb
...

 microSDカード以外のメディアを使う場合は、bootパーティションをマウントしてconfig.txtを開き、このようにdtoverlay=android-sdcardをコメントアウトして無効化すると同時にdtoverlay=android-usbを有効にすべく、編集します。

 これでUSBブートできるようになります。

...
#over_voltage=0
#arm_freq=1500
over_voltage=6
arm_freq=2000
gpu_freq=700
...

 また、放熱量が増えたり、負荷がかかりやすいので必須ではありませんし、しなくてもそこそこ快適ですが、例えば、こんな風にクロックアップしておくとより快適な操作感を味わうことができるかもしれません。

resolution.txtファイルの編集

1920x1080

 デフォルトでは、1920x1080とかになっていますが、なんと実際に使用するモニタの画面の解像度が異なるだけで起動できない(できているのかもしれませんが、表示されない)ので異なるのであれば、一致する解像度に書き換える必要があります。

 尤もAndroidイメージは、ほぼ特定のAndroidデバイス用に作られたり、カスタムされたり、派生したりしているのでディスプレイ解像度に汎用性をもたせたり、変更できるようにしておいたりする必要はないと考えると、なんとなく理解できる気はしますけどね。

 解像度設定のresolution.txtはbootパーティションにあるので編集するなら、これをマウントします。

 ちなみにオリジナルの説明には「書き換える代わりにresolution.txtを削除することでも使用している液晶ディスプレイの解像度になるでしょう」といった旨の記述がありますが、少なくともリネームではダメでした。

LineageOSを書き込んだUSBメモリから起動

 これでRaspberry Pi 400などラズパイ4系でLineageOS 19/Android 12Lを書き込んだUSBメモリから起動することができるはずです。

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19上のタブレット情報画面

 Raspberry Pi 4系(4/CM4/400)用は、タブレットとして認識されるようになっているようです。

 タブレット情報画面を見ると(実機は400ですが、)[モデル]は[Raspberry Pi 4]、[Androidバージョン]は[12]、[LineageOSバージョン]も表示されています。

ラズパイが有線LAN接続のみでもLineageOS 19/Android 12Lはネット接続可

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19上のネットワークとインターネット画面

 LANケーブルを接続して有線で使っているRaspberry Pi 400でもLineageOS 19/Android 12Lはネット接続できるようにしてくれていました。

 設定アプリの[ネットワークとインターネット]を開くと[<-->インターネット ネットワークを切り替えるには、イーサネット接続を解除してください]と表示されていました。

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19上のインターネット画面

 この表示をタップ(クリック)して[インターネット]を開くと併せてWi-Fiスキャンも行われており、自身のステルスにしていない方のWi-Fiルータ含め、周辺のSSIDが表示されていました。

 が、なにか間違っているのか、自身の場合、今のところ、Android 12LもAOSP13もLANケーブルを抜いて、Wi-Fi用のSSIDやパスフレーズの入力設定、「自動的にWi-Fiを接続する」旨の設定をONにしても、なぜかWi-Fi接続できていません...。

 ん?ステルスモードのSSIDだったから?まっ、有線では、つながるんだから、いっか。

F-Droidをインストールしてみた

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19にF-Droidをインストール

 ネットにつながったところでホーム画面を上にスワイプ(ドラッグ)するとアプリ一覧に[ブラウザ]があったのでF-Droidをダウンロード、インストールしてみたら、LineageOS 19/Android 12Lではできました。

 というのも先に試したAOSP 13/Android 13ではF-Droidのインストールまではできたのですが、「この提供元のアプリを許可」とか「提供元不明なアプリのインストール」など、これを許可する設定がなく、アプリをインストールできなかったので。

 その際、ブラウザでダウンロードしたapkファイルをインストールすべくダブルクリックすると[ブラウザ]に対して「不明なアプリをインストール」する旨の権限を与えるか否かを問われ、[OK]なりすると[キャンセル]/[インストール]と表示され、[インストール]をタップ(クリック)することでF-Droidのインストール完了。

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19上のF-Droid

 F-Droidを起動、[カテゴリ]を表示してみたのがこれ。

 若干、更新に時間がかかり、表示されるまで間がありました。

 また、後で起動してみると一向に表示されず、F-Droidアプリをapkファイルから再インストールすると表示されるといった、どっちに起因するのかわからないご愛嬌も。

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19にF-DroidとそこからBarcode Scannerをインストール後のアプリ一覧

 F-Droidを起動し、任意に選んだBarcode Scannerをインストールしてみたところ、[F-Droid]に対して「不明なアプリをインストール」する旨の権限を与えるか否かを問われ、[OK]なりすると[キャンセル]/[インストール]と表示され、[インストール]をタップ(クリック)することでBarcode Scannerもインストール完了。

 尚、[F-Droid]に対してのみなのか、他の代替アプリストアでもそうなのか、LineageOS 19/Android 12Lにおいては、[設定]アプリのアプリ一覧や個別設定パネルからでは、「不明なアプリのインストール」設定項目がなく、設定できず、この個別アプリのインストール時のみ可能でした。

 ちなみにAOSP13/Android 13では、[F-Droid]のダウンロード・インストールはできたものの、どの方法でも「不明なアプリのインストール」設定ができず、F-Droidからアプリをインストールすることはできませんでした。

 とは言え、何れもTWRP経由で事前準備したファイルからGoogle Play Storeはインストールできますが。

 と言うことは、Androidそのものが、代替アプリストアを拒絶し始めている可能性もある?

LineageOS 19/Android 12Lのショートカットメニュー

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19上のショートカットメニュー

 ホーム画面上で上からスワイプ(ドラッグ)するか、画面上部右側の[<-->]アイコンをクリックするとショートカットメニューを表示できます。

LineageOS 19/Android 12LでTWRPを起動する

 先に試したAOSP13/Android 13では設定アプリの[システム]から[Reboot to recovery]をONにした後、電源アイコンから再起動させることでTWRPを起動することができたのですが、LineageOS 19/Android 12Lにはこのスイッチが(デフォルトでは、)ありませんでした。

 それにより事前準備したファイルをインストールすることができなかったこともあって前述のようにF-Droidをインストールしてみたのでした。

 ただ、一通り終えてから、オリジナルの説明を読み直してみると電源アイコンをタップ(クリック)し、上級者用設定でTWRPから再起動させることができる旨、記載があることに気づきました。

 USBメモリが不調なので実機では確認してませんが。

LineageOS 19/Android 12LでVNCサーバーを有効にする

Arm64なRaspberry Pi 400/USBメモリにインストールしたKonstaKang Android 12L/LineageOS 19で標準搭載のVNCサーバを有効化

 Android 12から?SSHサーバやVNCサーバがデフォルトで組み込まれているようで設定アプリの[システム]に有効化/無効化できるトグルがありました。

 この内、VNCサーバをONにした結果、Raspberry 400パソコン上で操作している画面をノートPC/Debian bullseye側でvncviewer IPADDRESS:5900としてアクセス、表示することができました。

 このページに掲載した画像は全てVNCビューワ(TigerVNC Viewer)越しにPC側でスクリーンショットを撮ったものです。

 ラズパイ400パソコンで使用しているディスプレイがグレア(光沢あり)でスクショアプリを入れてPCに送信することもできたでしょうが、VNCのおかげで面倒なくスクショできたので助かりました。

 何れにせよTWRP画面上ではスクショできず、スマホやPC側のWebカメラで撮るとグレアゆえに映り込みがひどくて微妙なので掲載省略...。

ホーム前へ次へ