monakey-remover-app
毎日のように再インストールして設定をやり直していて疲れた方へ!
あるアプリを全く異なる別のアプリで上書きするという斬新な鍵削除法です。
この方法では、ChMateのデータを削除することなく、鍵削除用APKの上書きインストールだけで鍵を削除します。(最初だけアンインストールが必要ですが。)
mate本体の改造は一切不要なので、初心者でも比較的簡単なアプローチだと思います。
PC不要、環境構築不要、root化不要、知識不要。
概要
再署名されたChMateに、鍵削除用のアプリ「monakey-remover-app」(以下鍵削除アプリ)を上書きインストールすることで、ChMateのデータを消さずに鍵を削除する手法です。
仕組みとしては、まず同じパッケージ名で同じバージョンコードで同じ署名の「ChMate」と「鍵削除用アプリ」を用意することで、2つのアプリは互いに上書きインストール可能になります。
(これはChMateでdev版の0.8.10.153とplay版の0.8.10.153が相互に入れ替え可能であるのと同じ原理です。)
ChMateのMonaKeyはアプリデータ領域に保存されているため他のアプリからは触れませんが、ChMate自体を上書きしてしまえばChMateのアプリデータにアクセスできるので鍵だけを消すことができます。
事前準備~実際の使用方法を簡単にまとめると…
- kitadai31再署名版のChMateをインストールする
- 鍵削除アプリのapkをダウンロードしておく
- 以降は鍵無効を食らったら、鍵削除アプリのapkをインストールして鍵を削除し、再署名版mateのapkをインストールしてmateに戻せばOK
詳しい手順は以下
事前準備
まず、今お使いのChMate(元の署名)はアンインストールする必要があります(署名が違うため)。バックアップを取ってアンインストールしてください。
次に、私kitadai31によってkitadai31の署名鍵で再署名されたChMateをインストールします。
ChMate0.8.10.153_resigned_kitadai31.apk
ChMate0.8.10.154_resigned_kitadai31.apk
この時、Playプロテクトの警告が出たら「OK」で は な くその左の インストールする を押します。
そして、Releasesページから monakey-remover-app-for-mateXXX.apk
をダウンロードしておきます。
これで準備は完了です。
使い方
以後は、鍵を削除したくなったら、ChMateを終了し、monakey-remover-app-for-mateXXX.apk
(鍵削除アプリ) をインストールします。
(既存のアプリのアップデートと表示されます。)
すると、ChMateが鍵アイコンのアプリに置き換わるので、起動します。
削除ボタンを押したら、鍵の削除は完了です。
そしたら、元の ChMate0.8.10.XXX_resign_kitadai31.apk
(再署名されたChMate) を上書きインストールします。
これで、鍵削除アプリがChMateに戻ります。
鍵削除の手順は以上です。
2つのapkを分かりやすい場所にこんな感じで一緒に保存しておくと使いやすいでしょう。
仕組み
Androidでは、「同じパッケージ名」で「同じ署名」で「同じバージョンコード」のアプリなら相互に自由に何度でも上書きインストール(アップデート扱い)できます。
これを利用することで、ChMateと「同じパッケージ名」で「同じバージョンコード」の鍵削除アプリを作成し、それと「同じ署名」でChMateを再署名することで、データを維持しつつ2つのアプリを自由に入れ替えられる状態を作れます。
ChMateのMonaKeyはアプリデータ領域の中に保存されているのでrootなしではどうあがいても他のアプリから消すことができませんが、この状態を作ってChMateそのものをMonaKey削除アプリで上書きしてしまえば、アプリデータを読み書きできるのでMonaKeyを消すことができます。
「バージョンコード」「署名」とは
「バージョンコード」とは、アプリの絶対的なバーションを表す数字です。
例えば、ChMate 0.8.10.153のバージョンコードは 417 です。
Androidでは、このバージョンコードを見てアプリのアップデートをチェックしたり、アプリの上書きダウングレードを防止したりしています。
このバージョンコードは、今インストールされてるAPKとバージョンコードが「同じ」である別のAPKがある場合、お互いに何度でも自由に上書きインストールできます。
ChMateでDev版とPlay版のバージョンが同じだと、Dev版を使っているのにも関わらずいつの間にかPlayストアで更新されてPlay版に変わってしまうあるあるがありますが、それはこれが原因だったりします。
これを利用しています。
「署名」はアプリの作成者を証明するものです。
署名が同じならアプリを上書きアップデートできますが、署名が異なると、たとえパッケージ名が同じであろうと別アプリ扱いになり、上書きアップデートはできません。
(これによって、悪意のある人物が偽物の新バージョンを作成して配布し上書きアップデートさせることなどを防いでいます。)
なので、本物の署名のmateは、第三者(わたし)が勝手にパッケージ名を被せて作った別アプリ(鍵削除アプリ)で上書きすることができません。
mateを再署名する必要があるのはこのためです。
このことから、kitadai31の署名で再署名したバーション417のChMate (パッケージ名: jp.co.airfront.android.a2chMate) と、kitadai31が署名したバーション417の鍵削除アプリ (パッケージ名: jp.co.airfront.android.a2chMate) を用意すれば、相互に上書きインストールできるようになります。
質問
- APKをインストールしようとするとPlayプロテクトが出てインストールされないのですが。
- 署名鍵が一般に出回っている本物のChMateと異なるために、Playプロテクトにより警告が表示されます。(普通に考えたら超危険な状況なので当たり前です)
- インストール時にPlayプロテクトの警告が出たら、[OK] で は な くその左の [インストールする] を押してください。
- ちなみに私が以前使っていた署名鍵はしばらく使ってたらいつの間にか警告が出なくなったので、「この未知のアプリを送信しますか?」みたいな画面が出たら根気よく送信していけばそのうちGoogleに認知されて警告が出なくなると思います。
- ChMateのアップデートが来たらどうなりますか?
- ChMateは、再署名しているため普通にはアプデできません。
- データを残したままアップデートするには、新バージョンのmateのapkを用意し、同じ署名鍵で再署名する必要があります。
- また、鍵削除アプリも新バージョンのバージョンコードに合わせてビルドしないと使えません。
- 新しいバージョンが出たらなるべく早く公開しようと思います。
- 元のChMateに戻すには?
- 再署名ChMateをアンインストールし、ストアやDeployGateから再インストールしてください。
- これ広めてもいいんですか?
- まず、広めれば広めるほどクソ運営は苦しみます。
スクリプト荒らしは元からもっと高度な方法で鍵を切り替えているのでこんなものは使いません。
mate作者は不利益を被りません。
よってこれは広めていいものでしょう。
- まず、広めれば広めるほどクソ運営は苦しみます。
- 安全ですか?
- ChMateの再署名は、単にzipコマンドで
zip -d hoge.apk "META-INF/*"
を実行してapkの署名を削除し、再びzipalignと署名をしただけです。最も安全なやり方だと思います。 - 安全性が気になれば、mateの再署名と鍵削除アプリのビルド・署名を自前で行えば同じことができます。
- ChMateの再署名は、単にzipコマンドで
- いちいちapkをインストールするのが面倒。ChMateの中に組み込んだりできないか。
- ↑も試したが、いちいちアクティビティ起動リンク踏むのも面倒。Cookie削除ボタンとかで消せないか。
- root環境でそれができるようになる某フタがありますが、なんと最近非rootでも使えるようになったらしいです。すごすぎます。
- もしくは、"玉ねぎ"を用意しておいたのでそれでもできます。
- ちなみにアプリの差分パッチを作るだけならReVanced方式なので問題ないらしいです。だから私は知りません。
- root環境でそれができるようになる某フタがありますが、なんと最近非rootでも使えるようになったらしいです。すごすぎます。
- root環境の人は?
- この方法は非root向けです。rootならCookie削除ボタン1つで鍵を消せるもっと便利なやつが使えます。
- つまりXposedというワードを知っている人はこの方法の対象外です。
注意事項
再署名されたChMateを使うので、PlayストアやDeployGateで更新できなくなります。別署名のmateを入れるにはアンインストールが必要です。それを理解した上で使用してください。
一応私が使っている署名鍵(jks)はソースに置いてあります。パスワードは000000
また、あるアプリを全く異なるアプリで上書きする、という通常ではありえないことをやるので、思わぬ不具合が発生するかもしれません。
データのバックアップは必ず取っておいてください。
この手法を使うのは自己責任でお願いします。
もし何らかの不都合が起こったら教えてください。
なお、いくら鍵(MonaKey)を消したところで、規制中の板に当該の回線や専ブラで書き込めばまた鍵が無効化されるだけなので、鍵規制の根本的な回避にはなりません(重要)。
お知らせ
・2022/08/30
いちいち削除ボタンを押す必要がない「nowindow」版を追加しました。
nowindow版では、アプリを起動するとウィンドウを表示することなくMonaKeyの削除だけを行い即座に終了します。(一瞬だけ画面が表示されることがありますが仕様です)
これを使うと、ファイラーからapkをインストールしたら完了画面で「開く」を押せばその場ですぐにMonaKeyが削除されるので、あとはそのままファイラーから続けてChMateのapkを入れれば爆速でBANから復帰できます。
ただし削除されたかどうかが少しわかりにくいので最初は通常版を使った方がいいと私は思います。
・2022/08/30 (2)
8月25日に、Android6~9環境で鍵削除apkを入れる度に毎回mateのストレージ権限が許可し直しになっていたのを改善した新バージョンをアップしています。(泥6~9でのみストレージ権限を宣言することにより対応)
Android6~9で毎回権限ダイアログが出てしまっている方は、今ある鍵削除apkを削除してreleasesからダウンロードし直してください。