Tab5-MTPを作る

 ebikinのバックエンドをCodex Solにしたので、ちょっとコーディングにも使えるレベルにはなっているハズなので、Tab5でAndroidスマホの写真や動画をバックアップするアプリを作らせてみる。

 長いことデファクトのAndroid端末からのファイルコピー手段だったAndroid File Transferの公開が停止されて、写真のバックアップが不便になっている。また、LINKLETは、adbが許可されていないので、MTPで動画や写真をコピーするしか手段が提供されていない。

 Tab5を使って、Android端末のストレージをTab5のSDカードにコピーするツールは作れますか?Android端末はadbは使えません。MTPで行います。

 技術的にはあまりハードルはなさそう。MTPライブラリがないので、そこは自前で実装することになりそう。「同じファイル名があるときはコピーしない」という条件だけを与えて作ってもらう。

 仕様案には、SDカードの存在確認やフォーマットチェックが入っていなかったので、追加を指示する。

 何かと指示待ちで止まるので、待たずに判断してやるように指示する。勝手に30分ごとに進捗を報告することにしてくれたようだ。

 ESP-IDF 6.0.2は勝手にダウンロードしてセットアップしている。他のバージョンも使うかもしれないので、インストールディレクトリを指示する。

 ビルドはできて、自分で問題点を見つけてデバッグしている。いい感じ。

 binはできたのだけど、Telegramでの添付には失敗している。まぁ、これはしょうがないかな。scpで受けることにする。なんか、ばらばらのbinをもらっても困るので、merged.binを作ってもらう。

 なんか、もうやめろというまで、ずっと新しい機能の追加とかしている。もういらないんだけど。勝手に進めろと指示したからかな。なので、明確に停止する。

 できたバイナリをTab5に焼いてみたけど、画面が真っ暗www こうでなくっちゃ!

 暗いっていったら、勝手に問題を分析してアップデートを作ってきた。

 こういうところは弱いよね。ほんとはTab5をebikinに直接接続してデバッグさせるといいのかも。

 あとは、シリアルデバッグができるようにして、失敗したときのログをebikinに送る。

 MTPの検出がうまくいっていないバグがあったけど、それも自力で修正している。

 「この端末はMTP転送インターフェースを標準の 06/01/01 ではなく、ff/ff/00 として公開しています」とかいうのも検出して対応している。

 やりとりを繰り返して、やっと動作するものができた。ちょっとリクエストを追加する。

 こういう配慮は弱いか。画面のエミュレータを入れて、確認させたらよかったのかも。

 ちょっとした修正で、うまく動いてたのがダメになることもある。

 というわけで、ようやく想定していたものが出来上がった。

 とはいうものの使ってみると問題が出る。3回繰り返すと落ちる。他にも問題が出る。

 このバグはなかなか解消できなかったけれど、何回かログを作って渡すと原因を特定して修正してきた。

 Githubには接続していないので、ビルドに必要なソースコードを抽出してアーカイブして渡してもらった。

 ちゃんとSDカードにバックアップされているのを確認した。

 起動もそこそこのスピードは出るし、タッチで制御できるし、状態確認も画面でできる。SDカードも接続できるし、なかなか便利かもしれない。

 Tab5 Android Consoleのときは、本体が結構過熱していたけれど、Tab5-MTPでは、ほとんど熱くなることはなかった。熱いとつらいなと思っていたけど、使い方次第ということか。もっとも、無線も使っていないのでこんなものかも。

 ebikinでの開発も、エミュレーターやカメラとタッチできる指を与えると、勝手にいろいろやって完成できるのではなかろうか。あとghコマンドを入れてgithubのアカウントを使えるようにしてやるといいかな。


オリジナル投稿:
Tab5-MTPを作る|kinneko|pixivFANBOX
https://kinneko.fanbox.cc/posts/12366582