SultanXDA, OnePlus 3/3T의 통합 ROM 접근 방식 설명

우리는 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 Recognized Developer에 연락했습니다. 술탄스다 그의 방법 채택을 장려하기 위해 전체 절차에 대해 더 많은 정보를 제공합니다. 다음은 강조를 더한 대화의 주요 내용입니다.

통합 ROM을 허용하는 OnePlus 3/3T의 차이점은 무엇입니까?

통합 ROM이 가능한 이유는 원플러스가 BSP(독점 라이브러리) [보드 지원 패키지]를 통합했기 때문입니다. 커널 통합은 쉽지만 OEM만이 해결할 수 있는 BSP의 불일치로 인해 [ROM] 개발자에게는 일반적으로 ROM 통합이 불가능합니다. 결국 내가 해야 할 일은 커널을 통합하고 일부 GPU 펌웨어 이미지를 분리하는 것뿐이었습니다. Snapdragon 820과 821의 GPU 펌웨어 이미지가 다르기 때문에 상호 호환이 되지 않습니다. 커널을 수정해서 만들었어요 올바른 GPU 펌웨어를 로드하세요 각 장치마다 이 문제를 해결해야 합니다. 나는 그때 해당 펌웨어 이미지를 추가했습니다. 이 커밋의 ROM에. 나머지 장치별 펌웨어 이미지(예: 모뎀 이미지)는 각 장치의 펌웨어 파티션에 있으므로 GPU 문제 

내가 직면한 유일한 펌웨어 관련 문제였습니다..

ROM과 커널은 어떤 장치인지 어떻게 파악합니까?

커널은 부트로더 덕분에 어떤 장치에서 실행되고 있는지 알고 있습니다. 부트로더는 보드 ID와 일치하는 장치 트리 구성(커널 이미지에 포함됨)을 선택하고 이를 전달합니다. 이는 OnePlus 3와 OnePlus 3 모두에 대해 적절한 구성을 로드할 수 있는 커널 유연성을 제공합니다. 원플러스 3T. 해당 보드 ID를 확인할 수 있습니다. 원플러스 3 그리고 원플러스 3T 하이퍼링크를 따라가면 됩니다.

통합 빌드를 지원하려면 수정된 커널만 필요합니까?

아니요, ROM도 통합되어야 합니다. OnePlus는 OP3용 오픈 베타부터 BSP를 통합했으며 공식 OP3T OxygenOS 릴리스에서도 통합을 유지했습니다. 이는 ROM이 통합되기 위해서는 OP3의 오픈 베타 빌드 또는 OP3T의 공식 OxygenOS 릴리스의 독점 라이브러리를 사용해야 함을 의미합니다. 위에서 설명한 GPU 펌웨어 이미지 요구 사항과 OP3T의 터치스크린도 있습니다. 펌웨어도 ROM에 포함되어야 합니다(이것은 내가 연결한 GPU 펌웨어 커밋에 추가되었습니다). 위에).

또한 통합 커널에는 주의 사항이 있습니다. 개발자는 내 커널(이미 통합된)을 사용하거나 OP3T의 OxygenOS 커널에 OP3 지원을 추가해야 합니다. OP3T에 대한 지원은 불완전한 Snapdragon 821 지원으로 인해 단순히 OP3 커널에 추가할 수 없으므로 통합을 위해서는 기꺼이 OP3 개발자의 많은 작업이 필요할 수 있습니다. 내 커널은 OP3T를 받았을 때 이미 완전한 Snapdragon 821 지원을 갖고 있었기 때문에(내 커널은 CAF의 Snapdragon 821 분기를 기반으로 하기 때문에) 통합 프로세스는 나에게 다소 고통스럽지 않았습니다.

나는 많은 개발자들이 OP3에 대한 지원을 추가해야 하는 내 커널보다는 OP3T의 OxygenOS 커널을 사용하기를 원할 것이라고 확신합니다. 나는 OxygenOS ROM용 통합 커널을 만드는 것을 고려하지 않았으므로 이를 실현하려면 추가 작업이 필요할 수 있습니다.

다른 개발자가 코드를 보고 이것이 어떻게 수행되는지 확인할 수 있습니까?

예. Sultanxda는 자신의 모든 작업이 자신의 사이트에서 공개적으로 이용 가능하다고 언급합니다. GitHub 계정, 필요한 노하우가 있는 사람이라면 누구나 ROM 통합이 어떻게 수행되었는지 확인할 수 있습니다. 물론 절차가 약간 복잡하고 어느 정도의 전문 지식이 필요하지만 그것은 설정하고 잊어버리는 과정이 매우 많습니다 유지 관리 감소, 작업 중복 감소, 효율성 향상 등의 이점이 있습니다. 하나의 zip만 두 장치에 모두 작동하므로 사람들이 두 장치의 파일을 혼동하지 않을 것이라는 확신이 있습니다. ROM 또는 커널이 통합되고 OnePlus 3 및 OnePlus 3T 모두에서 완벽하게 작동하는 것으로 확인되면 추가 작업이 거의 필요하지 않습니다.


더 많은 개발자가 장치에 대한 통합 빌드를 선택하는 데 도움이 되는 새로운 정보를 공개하길 바랍니다. OnePlus 3T의 개발이 성장하고 있습니다., 통합 빌드는 앞으로 두 장치 모두의 미래입니다.