私たちは SultanXDA に連絡を取り、彼の統合 ROM とカーネルが OnePlus 3/3T でどのように機能するかについて尋ねました。 分かり次第読んでみてください!
XDA 認定開発者について取り上げたときのこと スルタンクスダ 彼を解放した OnePlus 3T 用のカスタム CyanogenMod 13 ROM とカーネル、OnePlus 3T 用にリリースされた「同じ」ROM ビルドが OnePlus 3 にも (またはその逆!) 登場したのを見て多くの人が驚きました。
Sultanxda は、ROM を配布するための統一アプローチを採用しました。 ワンプラス3 そしてその ワンプラス 3T ハードウェアと低レベルのソフトウェアがほぼ似ているためです。 これは、ROM が両方のデバイス間で相互互換性を提供し、同じ ROM zip をデュオに配布できることを意味しました。 相互互換性のある zip により、ユーザー (そして開発者も) が誤って間違った zip をフラッシュしてデバイスが動作しなくなることを心配する必要がなくなります。 これは、OnePlus 3/3T がブリックしやすいということではありません。関係者全員にとって全体的な頭痛の種が軽減されるだけです。
XDA 認定開発者に連絡しました スルタンクスダ 彼の手法の採用を促進するために、手順全体にさらに光を当てるためです。 会話からの主な要点をさらに強調して以下に示します。
ROM の統合を可能にする OnePlus 3/3T の違いは何ですか?
なぜ統一ROMが可能なのかというと、OnePlusがBSP(独自ライブラリ)を統一した「Board Support Package」だからです。 カーネルの統合は簡単ですが、OEM のみが対処できる BSP の不一致のため、[ROM] 開発者にとって ROM の統合は通常不可能です。 私がしなければならなかったのは、カーネルを統合し、いくつかの GPU ファームウェア イメージを分離することだけでした。 GPU のファームウェア イメージは Snapdragon 820 と 821 で異なるため、相互互換性はありません。 カーネルを修正して作成しました 正しい GPU ファームウェアをロードする これを修正するにはデバイスごとに。 そして私は・・・それから私は 対応するファームウェアイメージを追加しました このコミットの ROM に。 残りのデバイス固有のファームウェア イメージ (モデム イメージなど) は、各デバイスのファームウェア パーティションに配置されます。 GPUの問題 私が直面したファームウェア関連の問題はこれだけでした.
ROM とカーネルはどのデバイスをどのように認識するのでしょうか?
カーネルは、ブートローダーのおかげで、どのデバイスで実行されているかを認識します。 ブートローダーは、ボード ID と一致するデバイス ツリー構成 (カーネル イメージにパックされている) を選択し、これを渡します。 これにより、カーネルに OnePlus 3 と ワンプラス3T。 のボード ID を見つけることができます。 ワンプラス3 そしてその ワンプラス 3T ハイパーリンクをたどってください。
統合ビルドをサポートするには、変更されたカーネルのみが必要ですか?
いや、ROMも統一する必要がある。 OnePlus は、OP3 のオープン ベータ版から BSP を統合し、公式 OP3T OxygenOS リリースでも統合を維持しました。 これは、ROM を統合するには、OP3 のオープン ベータ ビルドまたは OP3T の公式 OxygenOS リリースのいずれかの独自ライブラリを使用する必要があることを意味します。 上で説明した GPU ファームウェア イメージの要件と、OP3T のタッチスクリーンもあります。 ファームウェアも ROM に含める必要があります (これは、リンクした GPU ファームウェアのコミットに追加されました) その上)。
また、統合カーネルには注意点があります。開発者は私のカーネル (すでに統合されています) を使用するか、OP3T の OxygenOS カーネルに OP3 サポートを追加する必要があります。 Snapdragon 821 のサポートが不完全であるため、OP3T のサポートを OP3 のカーネルに単純に追加することはできないため、統合には意欲的な OP3 開発者による多くの作業が必要になる可能性があります。 OP3T を受け取ったとき、私のカーネルはすでに Snapdragon 821 を完全にサポートしていたため (私のカーネルは CAF の Snapdragon 821 ブランチに基づいているため)、統合プロセスは私にとってはそれほど苦痛ではありませんでした。
多くの開発者は、OP3 のサポートを追加する必要がある私のカーネルではなく、OP3T の OxygenOS カーネルを使用したいと確信しています。 OxygenOS ROM 用の統合カーネルの作成については検討していないため、それを実現するには追加の作業が必要になる可能性があります。
他の開発者はコードを見て、これがどのように行われるかを確認できますか?
はい。 Sultanxda は、彼の作品はすべて、彼のウェブサイトで公開されていると述べています。 GitHub アカウント, そのため、必要なノウハウを持っている人なら誰でも、ROM の統合がどのように行われたかを確認できます。 確かに、この手順は少し複雑で、ある程度の専門知識が必要ですが、 それは非常に設定して忘れるプロセスです メンテナンスの軽減、作業の重複の削減、および機能の強化という形でメリットが得られます。 1 つの zip だけで両方のデバイスに対応できるため、2 つのデバイスのファイルを混同することがないという安心感が得られます。 ROM またはカーネルが統合され、OnePlus 3 と OnePlus 3T の両方で完全に機能することが確認されたら、追加の作業はほとんど必要ありません。
より多くの開発者がデバイスの統合ビルドを選択するのに役立つ新しい情報が明らかになることを願っています。 OnePlus 3T の開発は拡大中、統合ビルドは今後、両方のデバイスの未来となります。