ラズベリーパイ3BにAndroid9をインストールする
スマホで使われているAndroidOS。新しい技術の為進化が早いのか、セキュリティリスク対策にシビアなのか、ライバルのiOSに対抗してなのか、理由はよくわかりませんがOSの移り変わりが非常に速いものとなっています。
近年ではおおむね1年に1回のペースでメジャーなアップグレードをしています。これを書いている現在の最新バージョンは10です。
新しいOSに触れてみたい。とはいえスマホを買い替えるのは高いので、ラズベリーパイでとりあえずどんなものか体験してみようという話です。
基本的に現役でWindowsPCを持っていてそれでMicroSDカードの読み書きができるという前提で話を進めます。またラズベリーパイのバージョンは3 Bとなっています。
LineageOS
AndroidOSでは、ユーザーが操作する部分(UI)のデザインを自由に変更していいことになっており、それはスマホメーカーにより独自に提供されている場合が多いです。
ラズベリーパイにそれをインストールしようとする時は、デバイスメーカーで用意されているOSはありません。
コミュニティで調べてみたら投稿があり、非公式かつ非商用利用に限るイメージとしてLineageOS16.0が紹介されていました。
この記事を読んでいる読者様も筆者に対して抱くことだろうと思いますが、このソース大丈夫なのだろうか?という疑問が生まれます。
ダウンロード系のリンクすべて別のページへのリンクだし、トップページ(https://konstakang.com)を見るとブログ記事は2017年の2行のみで内容も募金を募るだけ。facebookもtwitterのリンク先も存在しない様子。
whoisというインターネット上のサービスでドメインの管理者を調べられます。
リンク先で調べてみたら「konstakang.com」は「Konsta Tuomio」という組織が管理しているドメインであることがわかりました。
この名前でネットを再検索したところLineageOSの公式ページに同じ名前が出てきたので、筆者としては信頼はできるんじゃないかという結論に至りました。
利用するかどうかは各自の判断でお願いします。有用なアプリにみせかけてバッグドアを仕掛けるトロイの木馬形式のマルウェアも世の中には存在します。
回りくどくなりましたが、こういった判断はフリーツールを使う際の心得の一つだと考えています。きれいな花にはトゲがある的な? 注意が必要だと思います。
以降はhttps://konstakang.com/devices/rpi3/LineageOS16.0/のページに従ってインストールを進めます。
まずダウンロードしたイメージをMicroSDカードに展開します。これはルータOS(OpenWrt)をラズベリーパイにインストールした際と選択するイメージファイルが違うだけで操作は同じです。
書き込みが終わると、「ドライブを使うにはフォーマットする必要があります」というメッセージが多数でますが気にする必要はありません。すべてキャンセルで閉じてください。
書き込んだMicroSDをラズベリーパイに差し込んで電源を入れます。OS起動後はタップの代わりにマウスで操作ができます。他のハードボタンはキーボードのファンクションキーに割り当てられています。
- F1:ホーム
- F2:バック
- F3:プロセス
- F4:メニュー
- F5:電源
- F11:音量下
- F12:音量上
無事起動することができました。
しかし、この状態だとGoogleストアアプリがないので、Android用のアプリをインストールできません。インストールしてみましょう。
ストアアプリインストールのためにリカバリー
スマホのOSが動かなくなったりした際に、それを再インストールするために使う小さなOSを「リカバリー」と呼ぶそうです。OSの機能としては必要最低限に限られています。
同様のものに「カスタムリカバリー」というものがあります。デバイスメーカーが用意する自OSのリカバリーとは異なる非公式のリカバリーです。これを使うとほぼ保証の対象外となります。しかし通常のリカバリーにない機能を持つので、オリジナルのOSをインストールする際によく用いられます。
上記でダウンロードしたOSにはカスタムリカバリーが同梱されています。この機能を利用してGoogleストアアプリをインストールします。
カスタムリカバリーを起動するためには開発者向けオプションを有効にしないといけません。そのためには「タブレット情報情報」の「ビルド番号」の部分を連続でクリックします。
そのあと「システム」「詳細設定」「開発者向けオプション」に移動します。次にある設定を変更してください。
- 「ルートアクセス」を「アプリとADB」に
- 「ローカルターミナル」を「有効」に
「ローカルターミナル」を有効にすると、ホーム画面の〇印を上にスワイプして出るメニューで「ターミナル」というアプリが増えています。それを選択して実行してください。
ターミナルの画面がだす警告はすべて許可してください。ターミナルの黒いウインドウに次のコマンドを打ち込みます。
$ su ... # rpi3-recovery.sh ...
これでカスタムリカバリー起動の準備が整いました。F5ボタン長押しで再起動メニューがでるので実行してください。再起動するとリカバリOSの画面になります。リカバリ画面はUSBマウスで操作します。「Swipe to Allow Modifications」のスライダーを動かすと、トップメニューが立ち上がります。
このOSでは画面下部中央の家のマークを押すとトップメニューに戻ります。
ウインドウズ等のPCからGoogleストアアプリをダウンロードしてきます。こちらからオリジナルのstoreアプリをダウンロードします。「ARM」「9.0」「pico」を選択して画面下の赤丸の部分よりダウンロードしてください。
zipファイルをダウンロードしたらzipファイルのままUSBメモリにコピーして、ラズベリーパイに差し込んで下さい。
ラズベリーパイの操作に戻ります。リカバリーのトップメニューより「Mount」をクリックしてください。Mount(マウント)とはディスクを使えるようにする作業です。USBメモリはUSB-OTGをチェックすると使えるようになります。他の項目(パーティション)もインストールの際使用するのでマウントしておきます。
参考までにOTGとは「On-The-Go」の略でUSB2.0からの規格です。これによりUSBはPCを介さないでもデータの受け渡しができるようになりました。例えばプリンタにUSBを接続しそここから直接データを送るということも可能になっています。
「Install」をクリックしてUSB内のzipファイルを選択します。(Up A Level)がなくなるまでクリックして最上位に行った後usb_otgディレクトリを選択するとUSBメモリの中を見られます。
zipファイルを選択した状態で「Install Image」を押します。その後確認を求めるスライダーを動かすとインストールが始まります。失敗することもありますので、画面の表示内容をよく確認してください。
今回は苦戦しました。エラーが回避できないときは面倒ですがMicoroSDをフォーマットして1からやり直すのも手です。筆者の場合はそれで解決しました。
インストールが終わったら、トップメニューから「Advanced」「Terminal」を選びます。ターミナルに次のように入力して、通常起動の設定にもどします。
この後に「reboot」から再起動をします。無事元のOSが立ち上がって、アプリの中にGoogleストアアプリが存在していたら成功です。ストアアプリインストール後はバックグラウンドで関連の作業が発生する様子です。しばらくOSが安定しないので、その後の操作はしばらく時間をおいてからにした方がいいと思います。
adb(参考)
今回のAndroid端末での操作はすべて端末側でやりましたが、各OS用に用意されているアプリを使うとUSBやネットワーク経由でAndroidに接続が可能です。
こちらのページからPlatform Toolsをダウンロードして、展開したフォルダにパスを通します。その後Windowsならコマンドプロンプトより操作をします。
- adb tcpip 5555
tcpipモードで端末を管理すます。
- adb connect [ip address]
端末に接続します。
- adb disconnect
端末と切断します。
- adb devices
稼働中のAndroid端末を表示します。
- adb -s [ip address または端末名] push filename /dir/
adbコマンドでfilenameをdirに転送します。
- adb -s [ip address または端末名] shell
端末のシェルをはじめます。筆者の環境では管理者権限がうまくとれませんでした、実機でやったほうが確実かもしれません。
- fastboot -s [ip address] devieces