nexus7(2013)でsuperdisplayが使えない状態をなんとかした

nexus7(2013)でsuperdisplayが使えなくなっていたので使えるようにした。

問題

以前は3日のトライアル期間内で接続できるか試して、素晴らしいレスポンス・使い勝手を味わったのだが、久しぶりにnexus7を引っ張り出してsuperdisplayを1000円ほどでFULLバージョンアドオンを購入して使ってみると、接続した瞬間にアプリが落ちるようになってしまっていた。USB接続でもWifi接続でも落ちてしまう。

これではアドオンを購入した意味がなくなってしまうので、androidタブレットを新調するのは最後の手段として、何とかしてみようと思った。

結果としてはnexus7だけで何とかなったのでその経緯を残しておきたい。

四苦八苦

四苦八苦した記録。手軽なトライと、端末の初期化以上のものが必要な重いトライを行った。手軽なトライでは直らなかったが、記録はしておく。重いトライでは最終的にはうまくいったが、結構面倒でnexus7の初期化とPCの作業が必須。

直らなかった手軽なトライ

まずは、superdisplayの設定でQualityを下げた状態(40くらい)でのUSB接続でもWifi接続でも落ちてしまうことを確認した。

次に、nexus7の設定からアプリのキャッシュやデータを削除してリトライしても落ちた。

そして、superdisplayを再インストールして試してみても、落ちた。

nexus7を再起動しても落ちた。

USBデバッグモードはずっとONだった。Wifiでも落ちるから無関係だとは思う。

この時点で考えた原因はおそらく関係性は薄いだろうが2つほどある:

  • superdisplayを使い始める前に不要なアプリを削除していた。
  • superdiaplayのアドオン購入判定処理がnexus7のスペック不足のためうまくいかない?

前者は関係のないだろう。後者だとしたら手軽な手段ではどうしようもないという考えに至った。

直ったが重いトライ

nexus7はこれにしか使わないので初期化を含む処置をしてもいいかと思い、思い切ってandroidのバージョンを上げてみることにした。 正確にはandroid12ベースのカスタムロムのlineageOS 19.1を導入してみることにした。

カスタムロムの導入はやったことがなかったが、割とすんなりとできた。その記録を残しておく。

環境は、android 6.0.1で、macosのターミナルからbashで操作を行った。windowsであっても.exeなどのソフトの用意は不要だ。コマンドプロンプトかpowershellでなんとかなる。.exeを使うようなWeb上の記述は全て無視していい。

準備

必要なファイルは、以下の4つ。自分のはWifi版なので、debでなくてfloの接尾辞のものを使う。

  • androidのplatform-tools
  • twrp-3.7.0_9-0-flo.img
  • lineage-19.1-20221012-UNOFFICIAL-flo.zip
  • sysrepart_1380_20.zip
  • BiTGApps-arm-12.1.0-v1.6_signed.zip

androidのplatform-toolsはandroidのアプリを作成するときに入るやつ。ターミナルでadbコマンドなどが使えるようになる。nexus7はこれを使ってbootloaderをunlockできる。 PATHは通しても通さなくてもいい。自分は通しておいた。通さないなら読み替えるか、adbがある場所にcdする。 Android Studioがインストール済みだとPCのどこかにすでにあるが、探すのが面倒もしくは未インストールならばOSごとにこちらからダウンロードできる:

SDK Platform Tools release notes  |  Android Studio  |  Android Developers
Android SDK Platform-Tools is a component for the Android SDK.

twrp-3.7.0_9-0-flo.imgは、androidのリカバリモードを拡張するというか高機能のリカバリモードそのもの。androidのbootloaderをunlockしたあとに導入する。ダウンロードはこちらのXDAのポストの下部、Downloads:の部分のGoogleDriveのリンクから:

[ROM][flo|deb][UNOFFICIAL][LineageOS 20.0]
LineageOS 20.0 lineage-20.0-20230830-UNOFFICIAL-flo.zip lineage-20.0-20230830-UNOFFICIAL-deb.zip Known issues: - We are ...

lineage-19.1-20221012-UNOFFICIAL-flo.zipは、導入するカスタムロム。日付が割と最近で安心する。sysrepart_1380_20.zipは、カスタムロムを導入にはストレージ内のシステムのパーティションが足りないので、パーティションを切り直すためのスクリプトのようだ。中身は見てない。 両方とも先ほどのTWRPと同じリンクから用意できる。GoogleDrive内にもあるし、同じポストの違うところにもリンクがある。サイズが足りないようならもう少し拡張できるスクリプトも同じポスト内にある。

BiTGappsはGooglePlayを入れるためのもの。先ほどのXDAのGoogleDrive内にもOpenGappsがあるが、種類がいろいろあり、 どれが最適か調べるのが面倒で、しかもバージョンが11で少し不安だったので、自分はこちらのリンクからダウンロードしておいた。これは最小限のパッケージであり、バージョンは12のものを使う。13ではAndroid SDK versionが異なるというエラーが出る:

301 Moved Permanently

カスタムロムの導入作業

ブートローダーのアンロック

まずは、nexus7のブートローダーのアンロックから。非常に簡単。端末の設定で開発者向けオプションからUSBデバッグをONにする。PCへのドライバの導入についてはなぜか不要だったので割愛。以前に入れたのかもしれない。

そして、nexus7とPCをUSBで接続。認識したら、adb reboot bootloaderでドロイド君の開かれた画面(ファストブートモード)へ。

無事にドロイド君画面へいけたら、fastboot oem unlockでunlockするかの確認画面が表示されるので、同意できるなら実行する。ファクトリーリセット相当のデータの削除・初期化が行われる。

起動画面で鍵が外れてるようなアイコンが表示されればOK。アンロック完了。

おそらく通常起動するのでUSBデバッグモードを有効にしておく。

TWRPの導入

これはファストブートモードから入れる。なのでまずは、adb reboot bootloaderでドロイド君画面へ。

そして、fastboot flash recovery <filepath of twrp-3.7.0_9-0-flo.img>でリカバリ領域のパーティションにTWRPをフラッシュする。コマンドが普通に終了すれば完了。

nexus7で音量ボタンでRecovery modeを選択して、今までと違うTWRPっぽい画面になればOK。タッチ操作ができて操作もしやすい。

パーティションの拡張

TWRP画面で行う。まずは、systemパーティションをマウントする。TWRPのメニューのMountからSystemをチェックしてマウントする。そしてホームボタンか戻るボタンで戻ればいい。

sysrepart_1380_20.zipをnexus7へpushする。adb push <filepath_of_sysrepart_1380_20.zip> /sdcard/で行う。

adb shell df -hでsystemのパーティションサイズが確認できる。

スクリプトの実行はTWRPのメニューにあるInstallから行う。pushしたzipファイルを選択して、Swipe to confirm flashからスワイプして実行。

無事に終わったら再起動する。確か普通に起動して(結構起動に時間がかかって)androidの初期設定になるが適当に終わらせた記憶がある。またUSBデバッグモードだけONにして、adb reboot bootloaderしてからのリカバリーモード選択でTWRPに戻ってこれる。

lineageOSの導入

これが導入の最後の作業。

最初に、systemパーティションをWipeする。TWRPのメニューのWipeからFormat Dataを押して実行する。yesを入力して実行する。

これが終わったらTWRPのホームに戻り、導入作業に入っていく。

lineageOSと同時にBitGAppsも導入しておく。まずはスクリプトと同じようにファイルをnexus7へ転送する。adb push <filepath_of_lineage-19.1-20221012-UNOFFICIAL-flo.zip> /sdcard/と、adb push <filepath_of_BiTGApps-arm-12.1.0-v1.6_signed.zip> /sdcard/を実行。

(自動でマウントされるかもしれないが)一応systemパーティションがマウントされているか確認して、再びTWRPのメニューのInstallから行う。

1つずつ複数選択できるので先ほどpushしたlineage-19.1-20221012-UNOFFICIAL-flo.zipBiTGApps-arm-12.1.0-v1.6_signed.zipを選択して、Swipe to confirm flashからスワイプして実行する。

エラー時は一応ログが表示されているので原因をチェックはできると思う。BitGAppsの時はそうだった。

実行が完了したら、Wipe Cache/Dalvikを実行してから、rebootボタンから再起動すればlineageOSの導入は終了。

superdisplayのテスト

lineageOSの初期設定が済んだら、先程BitGAppsを入れているなら普通にGooglePlayがあるので、普通に探してインストールすれば良い。言うまでも無いが、同一アカウントでないとFullバージョンアドオンの再購入が必要になる。

あとは普通に起動して変える必要があれば設定を変更してから接続すればよい。

ところが今度は接続は落ちなくなったが、画面が真っ黒で、マウスポインタだけは表示されるし、きちんとマウスの動きに合わせて動くという状況になってしまった。しかし、これはWindowsのディスプレイ設定で対象の解像度を1680x1050に下げたら直った。これで問題なく使えている。これより上の解像度だと真っ暗になってしまう。

結局

最後にWindows側で解像度をあげてなんとかしたが、もしかしたらこれがandroid 6.0.1で落ちていた原因ではないかとも思う。なので、未接続の状態でWindows側のこの解像度設定を変える方法があれば、OSのアップデート(カスタムロムの導入)も不要だったのではないか。しかし、その方法はあるのかわからない。

以前の解像度設定を覚えてないので、関係がない可能性もある。

また、USB接続だと充電されつつ使えるが、充電は追いついていないようで、5~10分ごとに1%ずつくらいの具合で減っていく。コンセント充電からのWifi接続なら減りはしないでかなり緩やかに充電される。このくらいは許容範囲なのでよし。

ともあれ、当初のnexus7でsuperdisplayを再び使えるようにするという目標は達成できたのでよかったよかった。

カスタムロムの導入がメインな感じになってしまったが勉強にはなった。Windowsの設定の弄りづらさを克服したいと思う。

参考

以下、参考にしたページ群。先人たちに感謝します。

nexus7(2013)のブートローダーのアンロック:

新型Nexus7(2013)のブートローダーアンロック(Bootloader Unlock)方法。 - アンドロイドラバー

nexus7(2013)のTWRPの導入:

新型Nexus7(2013)にカスタムリカバリ TWRPを導入する方法。 - アンドロイドラバー

adb, android platform toolsのインストール:

Adbを簡単にインストールする手順
今回はAndroid絡みでadbのインストール手順についてです。 adb(Android Debug Brid…

lineageOS 19.0をnexus7(2013)にインストール:

Page not found · GitHub Pages

以上です。

タイトルとURLをコピーしました