Android 7.1 Nougat 用の非公式 Xused フレームワーク

Xused Framework を Android 7.1 Nougat ROM にもたらすフラッシュ可能な zip が利用可能になりました。 この zip は、OnePlus 3T だけでなく他の多くの携帯電話でも機能します。

何ヶ月も待った後、最終的に Nougat ROM に対する Xused Framework のサポートが得られました (非公式ではありますが)。 独自の XDA フォーラムの才能ある開発者のおかげで、フラッシュ可能な zip を使用して Android Nougat ROM に Xused Framework をインストールできるようになりました。

これまで、Nougat での Xused の将来は少し不安定に見えました。 Rovo89 - Xused Framework の開発者 - 1 週間ほど前に Android Nougat のサポートに関するアップデートを提供しました. Rovo89 は基本的に、Nougat 上で Xused を適切に動作させるためにはやるべきことがまだたくさんあり、辛抱強く待つ必要があると述べました。

ありがたいことに、その場しのぎの措置を心配して待っていた私たちにとっては、一時的な解決策が得られたようです。 PurifyOS チームは、開発者が開発した ART モジュールを入手しました。 我慢する に取り組んでいました(そして 今日の初め頃に投稿されたものです)、フラッシュ可能な zip を介して他のカスタム ROM にインストールできるように適合させました(ROM のコンパイル時に実装する必要はありません)。

現在、さまざまなプラットフォームに対応する 3 つのバージョンが利用可能です (Xused SDK25 を含む) ARM64、Xposed SDK25 、および Xused SDK25 バツ86. PurifyOS チームは、Android 7.1 ベースの OxygenOS を実行する OnePlus 3T でこの新しいバージョンの Xused をテストしましたが、動作するはずです。 Android Nougat を実行している他の携帯電話でも、ユーザーはすでに Android Nougat を別の ROM に正常にインストールできたと報告しています。 デバイス。 たとえば、OnePlus 5 を使用している数人のユーザーは、それが機能することを報告しています (OnePlus で実行されることを考えると、驚くことではありません) 3T は問題ありません)、しかし、Samsung Galaxy S6 の AOSP ベースの ROM を実行しているユーザーも、それがうまくいったと報告しています。

解決すべき癖があり、これまでのところ誰もがそれを機能させることができているわけではなく、一部のユーザーは強制終了やその他の奇妙な現象に遭遇しています。 ただし、このような状況であっても、Android OS の前のバージョンがリリースされて以来、Nougat で Xused が登場するのを待っていたのであれば、試してみることはできます。 既存の Xused Framework モジュールすべてがすぐに動作するわけではありませんが、Amplify などの非常に人気のあるモジュールは動作することが報告されています。

デバイスや ROM がサポートされているかどうか不明な場合は、必ず定期的にバックアップを作成し、始める前にスレッドをよく読んでください。 最後に、重複した質問を残す前に必ず「検索」機能を使用してください。 Android O はもうすぐそこまで来ているかもしれませんが、よく言われるように、 「遅刻しないよりはマシだ」 さらに、多くのユーザーは、自分のデバイスで Android O を目にするのはしばらく先になるでしょう。そのため、Xused は、取り残されたと感じさせないための素晴らしい機能となるはずです。


更新: Rovo89 の応答

Xused Framework の背後で開発されたオリジナル、XDA 上級認定開発者 ロボ89は、これらの最近の展開についての考えを Github で返信しています。

私の経験から言えるのは、基本的なことをやるのは確かにそれほど難しいことではありませんが、細部を理解するには非常に時間がかかります。 これは 80 対 20 ルールに似ていますが、95 対 5 程度に近い点が異なります。

以前のリリース用に設計したフッキング アプローチはかなり安定しており、新しいリリースにも適用できます。 すべての場所をチェックするのにほとんどの時間がかかったと思います。 IsProxyMethod() そして IsDirect() が呼び出され、新しいメソッド修飾子を考慮するかどうかを決定します(つまり、パラメータを使用します) true か否か)。 そうしないと、新たにそのような通話を導入した場所を見逃していた可能性があります。 次のようなメソッドも同様です InstallStubsForMethod()、フックされたメソッドに対して呼び出された場合でも、元の元のメソッドで動作する必要があります。 これに関連する可能性のある場所が他にもないか確認する必要があります。 まだ数日以内ですが、これを怠ると、デバッグが非常に困難な、不明瞭なクラッシュや不正動作が発生する可能性があります。

それに加えて、完全に最初からコンパイルされた ROM に対してのみフックが適切に機能するというアプローチもとりました。 ストック ROM やほとんどのカスタム ROM (ビルド中にポートが含まれていないもの)、さらにはデバイスが以前にコンパイルした可能性のあるアプリでも同様です。 したがって、特別な ROM を実行しているワイプされたデバイスで最初からやり直す必要があります。 そうでない場合、最適化 (インライン化など) によってメソッドがまったく呼び出されなくなる可能性があり、フックが機能しなくなります。 これの最悪の点は、正確な動作が ROM、またはユーザーのデバイスの使用方法にさえ依存することです (現在、アプリはプロファイルに基づいてコンパイルされています)。 モジュールはランダムに失敗し、モジュール開発者は何が間違っていたのか疑問に思うでしょう (答え: 何もありません)。 すべての前提条件が満たされていない場合、それはかなり信頼性の低い API になります。 Google がアップデートを公開したと想像してください。 OnClickListener ROM を最初からコンパイルしない限り、ボタンの一部が呼び出されないことがありました... 私個人にとって、これは大きな制限です。

彼はさらにこう続けます。

このポートは ROM を最初から再コンパイルすることのみを目的としているため、これでフラッシュ可能な ZIP を公開することはまったく意味がありません。.

そして恐れていた通り、 これが不完全なポートであり、多くの場合 API コントラクトの履行に失敗する可能性があるという警告は 1 つもありません。. 😠 それは開発者とユーザーにとって良くないことです。少なくとも、それが不完全であることを知って、それをサポート/使用するかどうかを決定できるようにする必要があります。 大きな警告がなければ、私はそのようなことをする勇気は決してありません。 実際のところ、私はかなり完璧主義者なので、不完全なバージョンはまったく公開しません。私にとって信頼性は非常に重要です。

Git ログを確認したところ、(このポートのような) 基本的なフックの準備が 10 月に完了していました。 それ以来、私は制限を取り除くことに取り組んできました。 プリコンパイル済み ROM での信頼性を高めるために、再コンパイル部分も移植することもできましたが、それでも理想的ではありません。 上のどこかで説明したように、現在は JIT があり、すべての最適化を維持し、フックによって直接影響を受けるメソッドのみを無効化 (場合によっては再コンパイル) することができます。 これは単なるコピー&ペーストではないため、非常に困難です。 それが完了しない限り、私は何も公開しません。 (今までの) 9 か月は本当に長いと思いますが、まあ、それは私の暇な時間です。 に引っ越したため 新しいアパートに住んでいたので、数か月間 (!) まったく Xused に取り組むことができず、それ以外の時間は非常に限られていました。

これらの最近の展開は、皆さんが知っている真の「Xped」ではないことを明確にする必要があります。 気に入っていますが、機能的には Android でいくつかの Xused Framework モジュールを使用できるようになりました ヌガー。 Android 用 Xused Framework の、より安定し、より互換性のある公式バージョンを待たなかったあなたを責めるつもりはありません。 Nougat ですが、この反復は一部のユーザーのニーズを満たすことを目的とした単なる一時しのぎの措置であることを明確にしておきたいと思います。 今。 将来的には、これは Xowned の処理方法ではなくなる可能性があります。


XDA フォーラムで Nougat 用の非公式 Xused フレームワークをダウンロード