Skip to content

kitadai31/IOMate

Repository files navigation

目次: 導入方法 | 既知の問題、FAQ等 | 動作要件 | 機能 | Todo | 動作の仕組み | ChMateのおすすめバージョン | このアプリについて

IOMate

IOMateは、5ch.io対応前の古いChMateで5ch.ioに読み書きするためのローカルプロキシアプリです。
0.8.10.191や0.8.10.226など、今は使えなくなった改悪前の神バージョンを復活させることができます。

スクリーンショットを見る メイン画面のスクリーンショット 設定画面のスクリーンショット

導入方法

Releases からAPKファイルをダウンロードして、インストールします。

インストールしたら、IOMateを開いて [プロキシサーバー起動] ボタンを押します。
そしたら、ChMateの 設定→実験的→Proxyを使用する をオンにし、[Proxy] に localhost:8080 を入れます。
これで導入は完了です。

ここからは、現在最新版のChMateを使用中の方向けに、古いChMateへのバックアップの移行手順を説明します。

  1. ChMateのバックアップを取る
  2. 最新版ChMateをアンインストール
  3. IOMateを起動し、[ツール] 画面を開く
  4. 「5ch.netのスレを5ch.ioに変換」を実行して、1.で取ったバックアップのzipを変換する
  5. 使いたいバージョン (0.8.10.191等) のChMateのAPKをインストール
  6. 4.で変換したバックアップを復元する
  7. 上記のプロキシ設定をする

これで、今までの5chの★を付けたスレや履歴を、io対応前のChMate上で5ch.ioのスレとして引き続き開けます。
5ch.ioは外部板扱いになります。

お好みで、設定から端末の起動時にIOMateを自動起動するようにできます。

現在既にio対応前の古いmateを使用中の方へ (クリックして開く)

外部板専用や、閲覧専用などで、古いmateを現役で使用中の方向けの情報です。

5chのスレのログがあり、.ioのスレとして引き続き開きたい場合は、バックアップを取り、IOMateで変換して、そのまま復元すればOKです。
一旦アンインストールやアプリデータ削除をする必要はありません。

5chのスレのログ(履歴、★を付けたスレ)が一つもない場合は、変換をする必要はありません。
もしくは、ログは残っているものの、全く気にしていなかったり、DAT落ちしたスレしかなくて読み取り専用でいい場合も同様です。

既知の問題、FAQ等

一部の端末で読み込みが遅い

一部の端末(特にSamsung Galaxyシリーズ)で、IOMateを経由すると読み込み(通信全般?)が遅くなることがあります。
具体的には、エッヂでスレの読み込みが2~4秒以上かかる等です。(エッヂは高速なので、通常なら1秒未満で開く)

この問題は端末を再起動すると直るそうです。

原因はまだ不明です。

モバイルネットワークで書き込みができない

プロキシを使っていると、ChMateの「モバイルネットワークを使用」チェックボックスは効果がありません。
将来的に、プロキシ側でモバイルネットワーク書き込みを実装予定です。

全板スレタイ検索ができない

検索で「全板から ○○ を検索」をしても、何もヒットしません。
これは、ff5chスレタイ検索のサーバー側では5ch.ioのスレがヒットしているものの、古いChMateが5ch.ioのスレを検索結果に表示することに対応していないのが原因です。
ChMateは全板スレタイ検索の通信はプロキシを経由しない仕様なので、プロキシでは対処出来ません。

常駐通知について

Android8.0~12では、Android側のバックグラウンド実行の仕様により「IOMateは実行中です」という通知が表示されます。
邪魔な場合は、通知設定から「最小化」に設定すれば、ステータスバーに通知アイコンが出なくなって、「サイレント」欄に移動するので邪魔じゃなくなります。
通知を不許可にすることでも消せますが、端末メーカーによっては通知を不許可にするとアプリがキルされてしまうらしいです。(詳細は不明)

動作要件

Android 5.0 以上

(普段の開発はAndroid15のGoogle Pixel 3上で行っています。古い環境での動作確認は積極的には行っていないので、もし不具合があった場合はぜひ報告にご協力ください。)

機能

  • 5ch.io対応前のChMateで5ch.ioにアクセスできるようにする (5ch.ioへのアクセスのHTTPS化)
  • 5chの新仕様書き込みに対応前のChMate(v191等)で、5chに書き込みできるようにする
  • kako.5ch.ioの過去ログをHTML→DAT変換してChMateで閲覧する
  • 任意のドメインをHTTPSでアクセスするようにする (5ch.io以外のHTTPS強制外部板に読み書きするのに使える)
  • エッヂでスレタイ末尾の記者ID付きのスレ一覧(subject-metadent.txt)を取得する
  • リクエストヘッダ、レスポンスヘッダのログ
  • ChMateのバックアップのzipを編集する各種ツール

将来的に実装したいと思っている機能 (Todo)

優先度順で並んでいます

  • モバイルネットワークで書き込む
  • 5ch.ioの外部リンクをIOMateで受け取り、ChMateに中継して開く機能
  • 読み込みキャンセル時の内部動作の効率化(ChMateはHTTPリクエストを並列で送ってくることはないので、新しいHTTPリクエストが送られてきたら前のをキャンセルする)
  • [プロキシ] 画面にプロキシサーバーの現在の実行状態を反映する(開始ボタンと停止ボタンが分かれている上に、現在実行されているかどうかが分からないのは不便なため)
  • ログビューアをまともにする。現状は、logcatの出力をそのまま表示している。logcatの使用をやめて自前のロガーを実装したい。これによって、デバッグログ有効時にヘッダー全文がシステムのlogcatに流れなくなるので、安全性も向上する。
  • 浪人・Be・どんぐりアカウントへの対応
  • 書き込み時に、送信前に確認画面を出す(送信前に一呼吸置いて誤字脱字などに気付けるようにするため)
  • 専ブラ内のCookieを自由に編集する
  • User-Agent変更

他にも、プロキシで実現可能なことにはなんでも取り組んでいきたいと思います。

動作の仕組み

ChMateにあるプロキシ設定を利用します。

このアプリは「プロキシサーバー」です。
バックグラウンドで常駐して、ChMateの通信を代わりに行います。

ChMateとは別の、独立したアプリ・外部ツールです。
ChMateのアプリ自体に何か手を加えるわけではありません。

ローカルプロキシなので、外部のプロキシサーバーを経由することはありません。
IOMateがChMateに代わって5chなどの鯖に直接アクセス(HTTPリクエストを送信)して、サーバーからのレスポンスをChMateにそのまま返す仕組みです。このChMate⇔IOMate間のやり取りはスマホの内部で完結します。

5ch.io対応前のChMateが5ch.ioにアクセスできない原因と、それをIOMateが解決している方法

簡単に言うと、5ch.ioはhttpだとアクセスできないので、httpsに変えます。基本的にはこれだけです。(書き込み新仕様への対応部分を除く)

詳しい説明(クリックして展開)

ChMate(v242以前)は、特定のサイト(5ch、open2ch、したらば、まちBBS)にはHTTPS決め打ちでアクセスし、それ以外の外部板には全てHTTP決め打ちでアクセスする、という仕様になっています。

また、5chはHTTPS強制サイトなので、HTTPでアクセスしようとすると「301 Moved Permanently」でHTTPSにリダイレクトされます。

しかしio対応前のChMateにとって5ch.ioは単なる外部板なので、HTTPでアクセスしようと試みてしまいます。301リダイレクトにも従ってくれません。
そのため、5ch.ioを開こうとすると「301 Moved Permanently」でアクセスできません。
これが、5ch.io対応前のChMateが5ch.ioにアクセスできない理由です。

IOMateは、ChMateに代わって5ch.ioにHTTPSでアクセスすることでこの問題を解決しています。

また、書き込み新仕様に未対応のv191で5chに書き込みするのには、このChMateの仕様を逆手に取っています。
外部板扱いされる5ch.ioならHTTPが使われるため、プロキシの力で新仕様に対応できるのです。
これは5chのドメインが変わったおかげです。.netだった頃は、強制的にHTTPSが使われてしまうので、プロキシでリクエストやレスポンスを改変することはできないので、v191で書き込みするのは不可能でした。

(Android 7.0以上では、アプリが既定ではユーザーCA証明書を信頼しないので、一般的に、アプリのHTTPS通信をプロキシで改変(MITM)するには、root権限を使ってCA証明書をシステムに追加するか、APKを改造してユーザー証明書を信頼させる必要があります。しかし、ChMate(v154以上)の場合はAPKの改造対策が超強力なので、root化以外にHTTPS通信を改変する手段はありませんでした。)

ChMateのおすすめバージョンランキング

第1位 0.8.10.191

196から様々な改悪が始まる前の、真の最終バージョンです。
一番おすすめです。
更に、192まではスレ上部の広告枠は5chのスレでのみ表示される仕様でしたが、5ch.ioは外部板扱いなので、スレ上部の広告枠が全く出ません。

(リリース日: 2024/08/29)

第2位 0.8.10.192

196以降の改悪直前の最後のバージョンだと思われがちですが、実はスレ・板を長押しすると表示されるプロパティのダイアログがJetpack Composeで書き直されています。つまり改悪は始まっています。

192にだけ存在した問題として、タブレットモード+広告枠透明化テーマで広告枠隠しをすると、プロパティのダイアログも透明になってしまう問題があります。

よって、通常は191の方が優れています。

ただし補足として、変更履歴によるとクラッシュが修正されているらしいので、191でクラッシュに遭遇する場合は192でもいいかもしれません。(自分は191でクラッシュしたことはありません。)
また、192も191と同様にスレ上部の広告枠が外部板(5ch.ioを含む)では出ないため、広告枠消しテーマを使用する意味はあまりありません。
プロパティ以外の画面は変わっていないので、広告枠消しをしない場合は191とほぼ同じです。

(リリース日: 2024/09/10)

第3位 0.8.10.226

196で大幅に改悪されて以来、数々の不具合や改悪点が徐々に改善されてきて、かなりマシになってきたバージョンです。
227で更に大幅に改悪&不具合祭りになるので、その直前のバージョンとして価値があります。

(リリース日: 2025/09/17)

その他

ここで挙げたバージョン以外でも、189や153でも使えたという報告をエッヂで立てたスレで頂きました。皆様ありがとうございます。

196がリリースされてからわずか1か月後に5chの書き込み仕様変更で192が使えなくなり、227がリリースされてからわずか3か月後に5chのドメイン移転で226が使えなくなったのは、流石に何らかの陰謀を疑わざるを得ません。

このアプリについて

不具合報告、要望などはスレへお願いします。
ChMate用ローカルプロキシ「IOMate」Part1
https://egg.5ch.io/test/read.cgi/android/1784271892/

このプログラムの開発者は「エッヂ民」です。
エッヂは、かつて日本最大級だった掲示板「なんJ」の流れを受け継いでいる掲示板サイトです。
あなたもエッヂで実況や雑談に参加しましょう。彡(^)(^)

エッヂ掲示板
https://bbs.eddibb.cc/liveedge/

これを明記しておかないと勝手にライバル板であるケンモメンの功績にされるので一応()

本プログラムはGPLv3でライセンスされたFree/Libre and Open Source Software (FLOSS)です。GNU一般公衆利用許諾書の条件下で、自由に改変したりフォークしたり学習したり再配布したりすることができます。

About

古いChMateを復活させるProxy

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages