Magisk が Android Q で Google Pixel 3 と Pixel 3a をサポートするようになりました

Magisk 開発者は、Android Q 上の Google Pixel 3 および Pixel 3a の root-as-root および論理パーティションのサポートという 2 つの大きな進歩を遂げました。

Google は 3 月に最初の Android Q ベータ版をリリースし、Magisk 経由ですぐに root アクセスが可能になりました 利用可能になりました Google Pixel および Google Pixel 2 用。 ただし、Magisk の開発者は XDA 認定開発者であるため、Google Pixel 3 は Android Q でルート化できませんでした。 トップジョンウ、新しい論理パーティションのレイアウトを操作する方法を理解する必要がありました。 Apple での新たなインターンシップにより、topjohnwu 氏は Magisk に取り組む時間が減りましたが、それでも彼は開発において 2 つの大きな進歩を遂げることができました。 最新の Canary リリースでは、Magisk が system-as-root をサポートするようになり、アプリが root を検出することが難しくなります。 にアクセスし、Pixel 3 や Pixel 3a XL シリーズなどの論理パーティションを持つデバイスもサポートします。 アンドロイドQ.

Google Pixel 3 フォーラムGoogle Pixel 3 XL フォーラム

Google Pixel 3a フォーラムGoogle Pixel 3a XL フォーラム

Android Q での Google Pixel 3 および Pixel 3a 論理パーティションのサポート

開発者が既存のデバイスで Android の AOSP バージョンをテストできるようにするために、Google は Project Treble 互換デバイス ( GSI をインストールするには、ブートローダーのロックを解除する必要がありますが、これはすべてのデバイスで可能であるとは限りません。また、ユーザーをワイプした後、fastboot でシステム イメージをフラッシュする必要があります。 データ。 Android Q では、Google は次の新機能を導入しています。 動的なシステム更新 これにより、開発者はブートローダーのロックを解除したりデータを消去したりせずに GSI を起動できます。 動的システム アップデートをサポートするには、GSI インストール用のスペースを確保するために動的にサイズ変更できる論理パーティションがデバイスに必要です。 Google Pixel 3、Google Pixel 3 XL、Google Pixel 3a、および Google Pixel 3a XL には Android Q ベータ版に論理パーティションがありますが、DSU をサポートしているのは Pixel 3 と Pixel 3 XL だけです。 それにもかかわらず、Magisk が機能しなかったのは、パーティション構造のこの根本的な変更が原因でした。

topjohnwu が決意すれば、root アクセスを達成することを妨げるものは何もありません。 つい先日、彼は自分の Pixel 3 XL を Android Q ベータ 4 で root 化することに成功したと発表しました。 彼のコミットの説明 ここ 氏は論理パーティションのサポートをどのように実現したかについて技術的な詳細を説明していますが、重要なことは、論理パーティションの有無にかかわらず、Magisk をデバイスにインストールできるようになったということです。

System-as-Root のサポート

を備えたデバイスの場合 A/Bデュアルパーティションの場合、システム パーティションはルート ディレクトリ (/) としてマウントされますが、A/B デュアル パーティションのないデバイスでは、システム パーティションは /system にマウントされます。 これにより、更新が必要な RAM ディスク内のファイルがブート パーティションに配置されるため、非 A/B デバイスではシステムのみの OTA が不可能になります。 そのため、Android Pie 以降でシステムのみの OTA を可能にするために、Google は Android Pie で起動するすべてのデバイスが system-as-root パーティション レイアウトをサポートすることを義務付けています。 system-as-root レイアウトでは、RAM ディスク イメージがシステム イメージにマージされ、rootfs としてマウントされます。

Google が system-as root を導入して以来、 解決 root デバイスに戻すには、root としてのシステムを古いパーティション「initramfs rootfs」レイアウトに戻す必要がありました。 それ 作品 Android はこの古いレイアウトを従来からサポートしているため、Android 7.1 から Android 9 Pie には問題ありませんが、Android Q は完全に 削除します system-as-root としてのサポートは、Android Q にアップデートしているデバイスも含め、すべてのデバイスで必須になりました。 Magisk の以前のバージョンは、いくつかの「非常に厄介なハック」のおかげでまだ動作していましたが、topjohnwu 氏はその解決策に満足していなかったので、system-as-root を適切にサポートするために、 紹介された 「MagiskInit」

system-as-root パーティション レイアウトを適切にサポートすることによる良い副作用は、次のとおりです。 1つの潜在的な手段 ルート検出の機能が無効になりました。 topjohnwu が親切に説明してくれたように、古い「initramfs rootfs に戻す」方法は、Magisk がマウントするため、アプリが簡単に検出できました。 system を「/system_root」にバインドし、マウント「/system_root/system」を「/system」にバインドします。 root の存在を検出するためにアプリが行う必要があるのは、次のことだけです。 「/system_root」が存在するかどうか、または「/」が「rootfs」であるかどうかを確認してください。 ただし、実際にこれを利用して検出したアプリがあるかどうかは明らかではありません。 根。 それでも、後悔するよりは安全な方が良いです。

その他の変更点

Android Q では、「」と呼ばれるもののサポートが導入されています。胞胚プール」を Android アプリケーションのライフサイクルに適用します。 変更前のMagiskHide できない 新しい「プロセス プール」機能が有効になっている場合に、ルート アクセスを非表示にするアプリを検出します。 最新の Canary リリースでは、この機能がサポートされるようになりました。 topjohnwu 氏によると、「Q で導入された新しい胞胚プールの最適化を適切にサポートするために、プロセス監視用の ptracing ロジックのかなりの部分を書き直しました。」


Android Q ベータ版の Pixel 3、Pixel 3 XL、Pixel 3a、または Pixel 3a XL をお持ちの場合は、最新の Magisk Canary リリースを試して、デバイスを root 化できたかどうかをお知らせください。

Magisk カナリア チャンネル