古い Windows タブレット VT484 に Android-x86 をデュアルブートで導入してみた

正月休み中、ふと家に使っていない Windows タブレットがあることを思い出して発掘したはいいものの、お世辞にもパフォーマンスが良くない上に Windows タブレット自体の使い勝手が悪すぎてまたお蔵入りになりそうだったので、Android タブレット化して有効活用できないか試してみたときのメモ。

メモ書き&備忘録なのでところどころかなり端折ってたり他の環境だと動かなかったりするかもしれない。
もし参考にされる際は自己責任で。あと全部読んでから取り掛かること。

正直かなり手間がかかる上に起動はするものの色々クセがある(後述)ので、金があるなら素直に最新の Android タブレットを買った方が良い。元々のスペックが低いので、使えるとは言ってもかなり限定された使い方しかできない。
Sponsored Link

概要

発掘した Windows タブレットは 2013 年発売の 東芝 dynabook Tab VT484/26K(内蔵ストレージ 64GB のモデル)。確か元々親が使わなくなったので貰ったものの使いづらくて死蔵されてたみたいな経緯だったと思う。
2013 ~ 2014 年頃に一時期流行って廃れた Windows 8.1 搭載で Atom Z3740 とかの Bay-Trail チップセットを搭載していて内蔵ストレージが eMMC な 8 型タブレットの中の一つ。
海外版では WT8-A (WT8-A-102/WT8-A-103) という型番らしい。

OS は元々 Windows 8.1 だったが、数年前に親が Windows 10 にアップグレードしていた。
放置しすぎて OS のバージョンが 1803 で止まっていたが、電源入れてしばらく経ったら勝手に「サポート切れなのでアップデートします」とか言われて 20H2 まで一気にアップデートされてしまった(4時間くらいかかった)。

Android は元々 ARM 系の CPU でしか動かないが、それを Intel 製の x86・x64 CPU でも動くようにした Android-x86 という Android のディストリビューションがあるので、これを使ってみる。
さすがに動くか微妙な Android の代わりに Windows を丸々消すほどの勇気はないので、Windows と Android のデュアルブートとする。

下準備

まず OS のインストール云々にあたり、Android-x86 の ISO を焼く 8GB 以上の USB メモリと、回復ディスク用の 16GB 以上の USB メモリと、Bluetooth が使えないので無線か有線のキーボード&マウスと、それらをつなぐ USB ハブと、USB ハブの端子を MicroUSB に変換するケーブルが必要。

回復パーティション

(32GB モデルよりかはましとは言え)ストレージが 64GB しかないので、Windows 側の容量をあけないとそもそも Android の入るスペースがない。そこで、7 ~ 8GB も容量を食っていたリカバリ用の回復パーティションを削除して容量を空ける。

無理やり削除することもできるけど心もとないので、公式の手段でやる。
Windows 公式の機能で回復ドライブの作成という機能があり、それでリカバリ用の回復パーティション内のデータを USB メモリに丸々焼くことができる。回復ドライブを作った後は回復パーティションはわざわざ本体に残す必要もないので、回復ドライブの作成ウィザードの完了後に削除するウィザードへのリンクがあるので、それを使って回復パーティションを削除する。私の場合はこれで 8GB くらい空いた。このあたりは この記事 が参考になった。

ただし、ディスクの管理を見るとまだ残っている回復パーティションがある。
Windows 本体のパーティションと回復パーティションの間に挟まれている数百 MB 程度のパーティションだが、ストレージを拡張する際に邪魔なのでこれは DiskPart コマンドで消してしまう。回復ドライブは既に作ってあるので問題はないだろう。この記事 を参考に実行した。

これで回復パーティションの解放は完了。

パーティションの縮小

これだけではまだ 8GB 分しかないので、Windows 側でいらないソフトをアンインストールしたり、ゴミファイルを消したりして数 GB ほど容量を空けておいた。
これでパーティションを縮小し、20GB ほど未割り当ての領域ができ上がる状態にする。

ただし、そのままだとパーティションを縮小しようとしても引っかかって数百 MB しか縮小できないことがある。通常のファイルは縮小に合わせてデフラグを行い物理的なデータの位置を寄せるが、そうもいかない特殊なファイルがいくつか存在するらしい。
こういうときは ここここ を参考に、イベントログ → Windows ログ → Application を開いて引っかかってる当該のファイル(だいたいハイバネーションファイルかページングファイル)を一時的に削除して再起動し、その間にディスクの管理から Windows のパーティションを Android に使わせたい分縮小すれば OK 。
終わったら元に戻しておくとよいだろう(ハイバネーションに関しては使ってなかったら消しといたままでもいいかも)。

インストール用パーティションの作成

OS インストーラーでパーティションを作ることもできるらしいがかなり煩雑で面倒くさいらしいので、あらかじめ Windows 側で Android の入るパーティションを作っておく。
私の場合は回復パーティションの削除で約 8GB 、Windows 用パーティションの縮小で 12 GB くらい捻出したので、その未割り当て領域に新しいボリュームを割り当てる。
このとき、ドライブは割り当てないようにする(今後 ext4 にフォーマットするときいずれ見れなくなるため)。あと、パーティションのラベルに「Android-x86」とつけておく。インストール時にパーティションを見つけやすくなるため。

Android-x86 のインストール

早速 Android-x86 のインストール…と行きたいが、どうやら元々 Android-x86 がドライバの不足などで不安定な上、この機種含め Bay-Trail 世代の Windows タブレットはサポートが不完全らしい。
本家サイト からダウンロードできる Android 8.1 でインストールしてみようとしたが、そもそも LiveUSB ですら起動しなかった。

露頭に迷っていると、VT484 の海外機種版の WT8-A の後継機種(とはいってもスペックは下がってるらしい)、WT8-A / WT10-A 用の Android-x86 のカスタムビルド を発見。これをありがたく使わせてもらい、Release ページから最新の ISO ファイルをダウンロードし、適当に Rufus で焼いた。
LiveUSB でも動いたので、若干モデルが違うとはいえよく動くな…とびっくり。

この機種の場合 BIOS に USB から OS をブートさせるブートの優先順位設定が存在しない?ため、あらかじめ Android を焼いた USB を接続した状態で、Windows 側の設定 → [回復] → [PCの起動をカスタマイズする] で再起動する。その後の青い画面の [デバイスを使用する] から EFI USB Device を選択すると、USB 内の Android-x86 が起動する。

最初は BIOS 画面が表示される。試しに動くかどうかテストするなら Android-x86 [8.1-r5] Live を選択。
さっきちらっと触れたけど、Live(Live USB)モードで、一度自分の環境で動くか確認した方がいいと思う(ただし、Google Play からのソフトインストールやアップデートは正しく機能しないし(インストールしても再起動すると消える)、元々ライブ起動用 OS として設計されていないからかかなり不安定)。
本当にインストールする場合は Auto-Install ではなく、一番下の Advanced Options から、Android-x86 [8.1-r5] Custom Install を選択する。

Auto-Install だと PC のストレージがパーティションやデュアルブート関係なしに全て Android に置き換えられてしまう。今回はデュアルブートさせたいので、Custom Install にした。
カスタムビルドを使っているので、画面下にカスタムビルドの作者さんらしい OUIJA の文字が主張強めで入っている(Android-x86 の BIOS 画面はもっと素っ気ない)。BIOS の画面も一部変わっているが、むしろ本家よりもわかりやすくなっていると思う。
この BIOS 画面は縦固定で、画面回転とタッチパネルは機能しない。音量上下ボタンで移動、ホームボタンで決定ができた気がするけど、できる限りキーボードを接続しておいた方がいいと思う。

Custom Install を選択して Enter すると、心臓に悪い青い背景上にインストーラーが起動する。

Please select partition とあることからわかるように、ここでは Android-x86 をインストールするパーティションを選択する。ここでミスったまま続行すると既存の Windows やシステムパーティションをぶち壊して最悪 OS が起動しなくなるので注意。
私は一番下の Android-x86 とラベルのついているパーティションを選択した。先の手順通りやっていれば Android をインストールするために捻出したパーティションに Android-x86 というラベルがついているはずなので、それとそのパーティションに割り当てた容量で判別し、選択できたら OK で先に進む。

ファイルシステムをどうするか訊かれる。Do-Not-Format の場合、元から NTFS だった場合はその上に Android OS のイメージファイルが配置される(その場合、新たにパーティションを切らなくても Windows と Android を共存できることになる)が、速度的によろしくなさそう。
さっき作った空パーティションなので、Linux の標準的なファイルシステムである ext4 でフォーマットし直す。
OK するとパーティション内の全部のデータが消えるよ的なこと言われるので、消えてもいいか頭に確認した上で OK する。

EFI GRUB2 をインストールするか?と訊かれる。デュアルブートしたい(=ブートローダーを GRUB にする必要がある)のでここは Yes で。

ちなみに既に Android-x86 が入ってるとこんなメッセージが出る。

/system ディレクトリを書き込み可能にするか(=本 Root 権限を有効にするか)を訊かれる。
Android-x86 はもともとギークな人が使うことを想定しているからか、標準で Root 化されている。
ただし、ここの /system ディレクトリ以下を書き込み不能にしておけば、システムファイルが外部プログラムでぶっ壊されることはないはず。Root 権限はあるので中を覗き見ることはできる。

私は一度ここを No にした後やっぱり Root 権限使いたくなったので再インストールする羽目になったので、特に理由がなければ Yes にしておくと良いと思う(後述する音量最大値を上げる手順をやるなら必須)。
インストール時間が長くなるみたいなことを言われるけど、そもそも Android 自体の OS サイズが小さいからか私の環境だと大して変わらなかった。

ここまで終わるとインストールが始まる。10分もかからずに終わった記憶。

インストールが無事終われば Android-x86 is installed successfully. と言われるはず。
このまま Android-x86 を起動することもできるけど私は Reboot した。

Reboot する前に USB メモリを抜くことを忘れないように(といっても、抜いても抜かなくても Windows 側から指定しない限り USB から起動してくれないけど)。

再起動するとこんな感じの画面に。
Android と Windows が選べるようになっているはず。タッチパネルは使えないが、音量上下キーが移動、Windows ボタンが決定になっているのでキーボードをわざわざ繋がなくても Android と Windows を選べるようになっている。ここで Windows を選択して Windows が起動すればとりあえず Windows が消える自体は回避できたことに(ないと思うけど)。
ここで Android を選択して、Android を起動させる。

Windows アイコンのついたタブレットに Android のロゴが表示されてる違和感…
「ようこそ」画面が出ればインストール自体は正常にできていることになる(ここまで1日かかった)。
ここまでくれば画面回転も効くしタッチパネルも使える。画面回転がきくので横画面にもできる。
このままキーボード操作でもいけなくはないけど、タッチパネルの方がやりやすいかも(標準でキーボードやマウスも使えるようになっているが、英字配列扱いなので注意・特にメールの @ など)。

後はサルでも分かるくらい簡単なのでセットアップの解説は割愛する。
画面の通りに設定すれば問題ない。

問題点と解決策

ざっと色々な設定をしてしばらく使ってみた結果、使えなくはないけど色々問題点があった。

1. スリープから戻ると、CPU コアが 1 コア目以外ほとんど使ってくれなくなる

不可解な挙動だが、一旦電源ボタンを押してスリープにした後、もう一度電源ボタンを押してスリープを解除すると Atom Z3740 の 4 つあるコアのうち、1 コア目しかほとんど使ってくれなくなるらしい。
計測には こちら のアプリを用いた。リアルタイムで通知欄に現在の CPU 使用率が表示されるので、特にこのようなスペック的に問題がある端末では入れておいて損はないと思う。
計測した値だけでなく、実際に動作速度も体感できるレベルで遅くなる(そりゃ性能が 1/4 近くになるんだから当たり前)。
あと、スリープ解除後は Wi-Fi が切れることがある。これは Wi-Fi を OFF → ON にしたりすると直るほか、何もしなくても勝手に直っている事もあった。よくわからない。

正確には 2 ~ 4 コアも使ってくれないわけではないのだけど、1 コアが CPU 100% くらいまで張り付いて頑張ってるのに 2 ~ 4 コアはせいぜい 10% 程度しか動かないような感じ。なんでそうなるのかは本当に謎…
ただ色々調べると Android-x86 自体がスリープからの復帰の挙動があまり宜しくないそうで、他の PC だとスリープした後そのまま電源が切れて復活できなくなるみたいな事象もあるらしい。
スリープはかなりハードウェアに近い部分の制御が必要だろうし無理もない。スペックが 1/4 近くなるとはいえ、スリープ解除できるだけまだましな気もする。

幸い、再起動すると(またスリープさせない限りは)直る。起動速度は Windows と違ってべらぼうに早いので、スリープするくらいならシャットダウン→起動、という使い方でも悪くないのかも。

Nova Launcher

外に持ち出す訳ではないのでスリープ自体ができなくなるのは個人的に大して困らないのだが、スペックが落ちるのを気にする場合、画面が消せなくなるのは普通に困る。
いろいろ試したが、結局 Nova Launcher の画面ロック機能(という名の疑似スリープ機能)でどうにかなった。
標準のランチャー(Launcher3)はお世辞にも使いやすいとは言えず、真っ先に無料で高機能なことで有名な Nova Launcher に変えていた。すると丁度良いことに Nova Launcher 自体に擬似スリープ機能があったので、それを使うことにした。

まずは Nova Launcher をインストールした後、Nova の設定というアプリがあるので、それを開く(デスクトップのカスタマイズとかに関しては語ってたらきりがないので各自いい感じにしてほしい)。
一番下に [高度な設定] というのがあるので、その中の [画面ロック方法] をタップ。
デバイス管理・タイムアウト・Root と 3 つ選択肢があるが、タイムアウトを選択する。
最後に [ジェスチャーと入力] → [ボタンアクション] から、ホームボタンのアクション割り当てを [画面ロック] にすれば OK 。これでデスクトップを開いている状態でホームボタンを押すと画面が消灯するようになる。
5秒間真っ暗な画面(液晶はついている)になった後、液晶が消灯する。液晶を点灯させたい場合は Windows ボタン(ホームボタンに割り当てられている)を押せばできる。

[デバイス管理] モードでは完全にロック(スリープ)されてしまうし、本当は [Root] モードが使えればよかったんだけど Android-x86 という特殊な環境だからかホームボタンを押しても何も機能しなかった。

いろいろ設定した後のデスクトップはこんな感じ。
カスタマイズしたデータは ここ に置いておく(他環境で使えるかは知らない)。

2. 音量の最大値が Windows と比較して小さい

音量を 100% にして YouTube を聞いてちょうどいいかちょっと音が小さいかなレベルなので、後述するイコライザなんかを間に差すと音が小さすぎて聞き取れない…。Windows の最大値を 100% だとしたら 70% くらい。

いろいろ調べまくった結果、どうも Android の音関連を司っているのは Linux ではおなじみ Alsa (Advanced Linux Sound Architecture) で、alsa の Bay-Trail 世代のチップセット用の設定ファイル(カスタムビルド側で追加されてた)でハード側の音量レンジが 0-39 なのに対し、最大音量が 29(75%)に設定されていたのが原因だった。

なんで 29 に設定されてるのかはよくわからないけど、Windows ではもっと出ていたわけでもっと上げても問題ないはず…

その証拠に、ターミナルで su と入力して Root ユーザーになった後に、alsa_amixer sset Speaker 39 というコマンドを実行すると音が一気に大きくなる(参考)。ちなみに 40 以上にしても値は 39 のまま。
起動毎に毎回このコマンドを叩くのもめんどくさいので、その設定ファイル (bytcrrt5640.state) 内の設定値を 29 から 39 に変更し、最初からハード側の音量レンジ最大まで音量をあげられるようにする。

まず、X-plore(Root 権限があれば Root 内のファイルも見れるファイラー)をインストールし、設定から [Rootアクセス] を [Superuser + マウント書き込み可能] に変更する(👈重要)
[Superuser + マウント書き込み可能] は Root 権限でシステムファイルを書き換えられるとても強い権限なので、作業が終わったら [Superuser] か [通常] に戻しておくとよいと思う。

その後、X-plore で /system/etc/alsa/ に移動し、そこにある bytcrrt5640.state を編集する。
「Speaker Playback Volume」と検索し、出てきた項目の value.0 29value.1 29 の部分をそれぞれvalue.0 39value.1 39 に変更し、保存する(くれぐれも間違った箇所を編集しないように!)。
作業を始める前にファイルをどこかにバックアップしておいた方がよいだろう。

終わったら再起動する。再起動後、音量が大きくなっていたら完了。

3. 音質が悪い

元々大して音質のいいスピーカーを積んでいるわけではないのでしょうがないんだけど、音質がすこぶる悪い。まだ Windows の方がよく聞こえた気がする…。と思いきやどうも気のせいではなかったらしく、Windows 側では Intel のイコライザがバックグラウンドで動いていて、標準で音質を上げてくれていたことが判明。
試しにイコライザを切ってみたら Android 側と同じような中音域の音量が大きくシャリシャリした音になってしまった。

というわけでイコライザを入れようとしたものの、これがなかなか悩ましい。
Google Play で上位に上がるイコライザはどれも 5-Band のもので微調整があまりできず、音質向上もあまり効果がなかった。ViPER4Android という Root 環境のみで使える強力なイコライザもあるらしいけど、これも Android-x86 という特殊な環境、Bay-Trail 世代のイレギュラーな端末ということもあってか、残念ながらドライバのインストールで失敗して使えなかった。2.5・2.6・2.7 全部試したけどダメ( Root 権限はあり書き込み権限もあるはずなのに、 Can’t remount /vendor to rw みたいなエラーが何度やっても出続ける)。

結局、Equalizer Pro という今では Google Play から削除されてしまったアプリに落ち着いた。
Google Play から削除されているというだけありインターフェイスは Android 4.0 系のそれだし、Android 5.0 だかで変わった通知の送信形式に対応できていないのかエラーのトーストが出るし、一度タスクに残したまま閉じてもう一度タスク一覧から開こうとすると落ちるだとか、バグが結構多い。でもイコライザ機能に関しては申し分なく、Android のイコライザとしては珍しく 10-band 対応になっているほか、プリセットも豊富でわかりやすい。

5-band が多い理由は Android SDK が 5-band だけだからって理由みたいだけど、となるとこのアプリ含め 10-band 対応イコライザはどうやってるんだろう?Root 権限使ってるわけでもないし。
後継となるアプリも出ていたが、あちらは使っている SDK の関係なのか 5-band に減らされていて残念。

いろいろ微調整し、上の画像のような設定に落ち着いた。この値通りにしておけば音質が見違えるほどに向上すると思う(その分音量は下がるけど)。
あと、上の画像には映っていない Bass Boost と Virtualization はほどほどに。上げすぎると音量が下がってしまう。
このアプリは入れておくだけでいちいち毎回立ち上げなくても起動時に一緒に起動し(サービス扱い)、イコライザとしての役目を果たしてくれる。本来は通知欄に背後で動いてる旨出るんだろうけど、バグなのか出ていない(その分通知欄がすっきりするとも)。

4. スクリーンショットが撮れない

本来スクリーンショットはホームボタン + 音量下ボタンとかの組み合わせで取れたりするが、Android-x86 という無理やり Android をぶち込んだような環境なのでそのようなハードキーコマンドは用意されていないらしく、素の状態ではスクリーンショットが撮れない。キーボードがあれば PrtSc キーで撮れるのかもしれないけど、キーボードなしで運用する方向のため厳しい。

これに関しては 無音スクリーンショット というアプリを入れることで解決した。
元々無音でスクリーンショットを取るためのアプリだそうだが、オーバーレイアイコンやホームボタン長押し、通知バー、センサーからなど様々なアクションでスクリーンショットを取ることができる。

ただし、ホームボタン長押しはアシストアプリとして起動する関係上白い半円が映り込むことが多く、オーバーレイアイコンは邪魔なのでそれ以外のアクションはオフにして通知をタップしての撮影だけオンにしている。
通知からの撮影の場合すぐに撮影されると通知欄が引っ込む前に撮影されてしまうので、私はアプリ → [スクリーンショット] → [セルフタイマー撮影] → [通知] を 0.3 秒に設定した。
スクリーンショットの確認通知を表示することもできるが、うざかったのでオフにした。

5. 動作が重い

スリープさせず 4 コア全て使った状態で重いのであれば、それがこのタブレットの限界という事なんだろう。
友人曰く、Android は Windows と比べると少し軽くなるかな程度で、軽量 Linux ほど軽くはないらしい。
一般論ではあるが、YouTube や Chrome といった重いアプリは極力単独で使い、YouTube なら YouTube、Chrome なら Chrome と、タスク一覧に使っているアプリ以外のアプリを残さない状態にしたり、メモリ解放アプリ で定期的にメモリ解放したり、たまに再起動したりして少し軽くなるかな…といった所か。

やったこと

日本語入力環境を整える

Android-x86 はデフォルトで日本語入力が入っておらず、英語とアルファベット的な文字を使う言語の IME しか入っていない。
そのため、別途 Google Play から Google 日本語入力なり、日本語 IME ソフトを入れる必要がある。

最初はいつもの Google 日本語入力をインストールしたのだが、「Gboard だとキーボードをフロート表示できる」という情報をどこかで見たので Gboard に変更した。
入力画面が表示された状態でキーボード上部のいろいろアイコンが表示されているのなかから [フロート表示] のアイコンをタップすると、キーボードがフロート表示される。キーボードのサイズを変更することもできる。
私はタブレットでの QWERTY 入力よりもまだスマホのフリック入力の方が楽なので、キーボードを右下に寄せて右手だけで文字入力ができるようにした。非常に快適になったのでおすすめ。

ただし Gboard にもいくつか欠点があって、一番の欠点はパスワード等の入力時に強制で QWERTY キーボードになってしまうこと。特にターミナル系アプリでそうなることが多くてつらい。私はそのときだけ Google 日本語入力使うなどして一応対策してはいるが、もう少し Google 日本語入力の利便性、カスタマイズ性を引き継いでほしかったな…という気持ち。

ナビゲーションバーを右下に寄せ、アイコンの順番を反転する

標準の状態ではナビゲーションバーは中央に表示され、左から ◀ (戻る) ● (ホーム) ■ (タスク一覧) のような割り当てになっている。ただ中央に表示されると片手だけで操作しづらい。また片手だけで操作する時にタスク一覧よりも戻るボタンの方が使用率が高く、アイコン順番を反転させたかった。

いろんなアプリを試してみたが、できることとしては Custom Nagivation Bar というアプリが頭ひとつ抜けていたのでそちらを利用。アプリの使い方は こちら の記事が詳しいのでそちらに譲る。
一点だけ注意点として、その記事では ADB コマンドを PC にインストールして云々…とめんどくさい手順で紹介されているが、Root 化されている端末ではわざわざ PC から ADB コマンドを送らなくてもナビゲーションバーをカスタムするための権限を獲得できるので、そっちを使った方が手っ取り早い。

私はこのアプリで [Navigation Bar] → [Layout] → [Right-leaning] からボタンを右寄せにし、[Navigation Bar] → [Inverted] から戻るボタンとタスク一覧ボタンの位置を反転させ [Normalize button size] でアイコンを中央に寄せるようにした。これでキーボードともに片手でも操作しやすくなりとても満足。

また、このアプリはナビゲーションバーを隠す機能もある。[Immersive mode] がそれだが、特定のアプリだけ適用させるには Pro 版を購入する必要がある。200円程度で買い切りなので、気に入ったら買ってしまっても良いだろう。私はナビゲーションバーなしの全画面で楽しみたいアプリがあったので買った。
先程のスクリーンショットのナビゲーションバーが右により気味なのはそのため。

あとがき

正直、操作感としてはあまり快適とは言えなかった(2013年製の本来 Android として動くことが想定されていないタブレットなので無理もない)。用途によっては Windows の方が軽いケースもありそう。
でも前述したような対策をした上で、重いゲームなどは避けせいぜいブラウジングなどの比較的軽い用途にとどめておけば、それなりに使えるんじゃないかなーという感じ。

Windows タブレットではキーボードなしでの利用だとタッチ操作に最適化されたアプリが極端に少ないのがつらかったので、Android アプリが使えるのが Android-x86 の醍醐味。
何より手元に Root 化した端末がなかったので、開発やお遊びなんかに使えそう。
元々ベッドの上にタブレットアームを取り付けて寝ながら動画とか見れるようにするのが目的だったので、とりあえずその目的は達成できた。

ただ、比較的快適に使えるようにするために結局4日くらいかかってしまった上に Windows と比べて大して軽くなるわけでもなかったし、時間が惜しいなら素直に最新の Android タブレットかもっと手を伸ばして iPad を買った方がいいな…とも思った。
これを整備するのとサイズと液晶的には同じくらいな Amazon の Fire HD 8 を買うので迷ったが、結局どっちの方がスペック上だったのかだけ気になる(さすがにスリープでコア数 1/4 云々とかはないと思うけど…)。

コメント