見出し画像

Kitsune Maskについて

意外にも日本語で概要を説明した記事が無かったので作りました。ヘッダーは本家サイトより拝借。
なんで公式の次にこれが出てくるんだよ!おかしいだろ!!
(2023年03月11日追記):UIまわりがいろいろ変わってたので改訂
(2023年08月11日追記):ver.26.1の開発進行に合わせて改訂
(2024年04月22日追記):ver.27.0-canaryの要素を踏まえて改訂

来歴・本家との比較

Root化用のマネージャーとして、最早その道で知らない人はいないであろうtopjohnwu氏作のMagisk。こいつがベトナムからやって来たHuskyDG氏の魔の手に掛かって改変されたのがKitsune Mask(旧名Magisk Delta)となる。

本家のMagiskに加えて様々な機能が追加されている。

Zygiskの改良

Magiskに元から備わるZygiskという独自プロセスでRoot権限を実行する(?←言ってて合ってる自信がない💦)機能は健在で、更に独自のプロセスを用いるようになっている。ベースとしてZygisk Nextを使用しているらしい。
更に、プロセスの起動が出来なかった場合にモジュールを一回全部停止させて再起動させる「Bootloop Protection」という機能もある。同じくHuskyDG氏が作った(Magisk Bootloop Protector)の機能をMagisk本体に内包した形である。
そして、Zygisk以前のプロセスであるRiruも設定によっては実行できるようだ。ただRiruは開発終了している上、LSPosed等主要なモジュールもZygiskへの移行が済んでいる今、わざわざこの機能を使う必要性は相当薄いと思う。
言わばRender Dragon環境で影modの普及が進んだ段階で旧式エンジンに戻すようなもの。

Magisk Hideの復刻

Zygiskと同時に削除され(事実上DenyListに置き換えられた)Magisk Hideがしれっと設定欄に復活している。DenyListは再起動の度にシステムアプリ(GMSとか)の適用が外れたり、あとその性質上List入りしてるアプリにはRootの効果が効かない場合があったりする※ため、非常に有り難い。
基本的にMagisk Hideはブラックリスト形式(適用したものからMagiskを隠す)仕組みなのだが、これを反転、ホワイトリスト化させ(適用することでroot権限が得られるようになっ)たSuListという機能も存在している。ただ下手をするとモジュールが付かなくなって死ぬなど、扱いはかなり上級者向け。特にランチャー置き換え系モジュールを使っている場合は詰むので実質使用不可。
まともな用途としては、rootはほぼ要らんけどカスタムROM下でPlay Integrity(MEETS_DEVICE_INTEGRITYまで)を楽に通したいから使うという想定はできる。実際検知にはKernelSUには及ばずとも、本家比でかなり強い。

※Listのアプリに対しRoot権限を持っていないように偽装している都合があるため。ただ例外もあり、一概に全てが効かないとは言えない。

エミュレータへの対応

地味に一番大きいメリットかもしれない。NoxPlayerBlueStacksといったWindows上で動くどろいどエミュレータはSuperSU等を用いたRoot機能しか(普通に使っていると)使えないのだが、Kitsuneはこれらにも対応してインストール可能となっている。勿論悪用厳禁。
全くの余談だが、Microsoft公式エミュレータもといWindows Subsystem for Android用のMagiskも開発されていたりする

最新UI・独自アイコンの実装

アプデでアイコン自体がMagisk本来のアノニマス仮面っぽいのから、狐のお面を模したアイコンに変わった。にわかライダーヲタ的には令和ライダー4つめにして随一の傑作を想像してしまうがまあ偶然でしょう。でUIも独自のものに変わった。ちょっとKernelSUっぽい。
26.1版~では現状そこまで手を回す暇がないのか元のに戻っている。

前述のサイトより

…といった感じで、見方によっては進んだRootツール兼マネージャーアプリとも言える。

その他の本家との違い(開発者向け)

[App] ブートイメージを持たないエミュレータ用に、Magiskを/systemパーティションにインストールする機能を追加
[Zygisk] Zygiskのロード方法をptrace initの実装に変更(Android 8+が必要)、実装はZygiskNextから。この方法はプロパティを変更する必要がなく、ro.dalvik.vm.native.bridgeプロパティを無視するいくつかのエミュレータとより互換性があります
[General] モジュールのpre-initでのマウントをサポート
[General] overlayfsに似た、指示されたホワイトアウト文字デバイスを使用したファイル削除をサポート
[Zygisk] GrepheneOS Android 14のサポートを追加しました。GrepheneOSはプライバシーとセキュリティを重視したモバイルOSで、Androidアプリとの互換性があります。これは公式のMagiskがサポートしていないためです。
[General] 公式Magiskによって削除されたselinuxがサポートされていないデバイスのサポートを復元しました。これにより、カーネルでselinuxが有効になっていないデバイスでもMagiskを使用できるようになります
[General] 読み取り専用プロパティのシリアルカウンタが増加しないように resetprop を更新
[Module] モジュールファイルをシステムにマウントする際にミラーが不要になりました
[App] root権限の付与に生体認証を追加
[General] init.rcのフルパスをチェックするようにしました
[General] デフォルトでshellにrootを付与する(デバッグビルド用)
[General] magiskアプリの署名検証を無効にする
[Module] より多くのパーティションのMagic Mountをサポート

https://github.com/HuskyDG/magisk-files/blob/main/note.mdより翻訳

で、これはおすすめできるの?

ハッキリ言って微妙。Zygisk改良は普通に使う分にはどう変わったのか正直わからないし、Bootloop Protection及びMagisk Hideも対応するモジュールがあるため特に困らない。とはいえ少しでもモジュールを減らしたいという人もおり、また本体とモジュールが一体化している都合上、バージョンによる相性を考慮しなくていいという点は大きいかもしれない(最新Shamikoと本家Magiskでは機能しない環境がある、という報告が某Discord鯖であった)。
そしてある意味最大のデメリットとして、最新環境を使いたい場合常時canary版である故にアプデ頻度が非常に多いことが上げられる。下手したら1日に2回来たりもする。この辺も極論常に最新版で使わなければ済む話ではあるが、更新のボタンが気になる人にとっては相応のストレスになるとも思われる。

ということで
・エミュレータにMagiskを導入したい人
私の父上のように新しいもの好きな人
には導入の価値があるのでは、という結論に至っている。

おまけ:本家Magiskから入れ替える際の注意

これは私が入れ替える際にちょっと手こずったので少し。そのままpatched_boot.imgを焼き直してKitsuneにしてしまうと、Root権限が引き継がれなかったりモジュール動作に不具合が生じたりといろいろ問題が生じる。おそらくだがRootアプリ&モジュールの再インストールをしないとちゃんとは動かないだろう(FDE.AIモジュールは一回アンインストールしないと動作しなかった)。
ちょっと試してみたい、という場合も一度バックアップを取ってROM焼き直して総入れ替え、くらいの覚悟でやった方がいいかと。

おしまい。


この記事が気に入ったらサポートをしてみませんか?