Система-на-чіпі Qualcomm Snapdragon 845 була анонсована ще в грудні, і її можна знайти на флагманських пристроях, таких як Samsung Galaxy S9, Xiaomi Mi Mix 2S і OnePlus 6. Компанія підтвердила, що вихідний код ядра буде випущено приблизно через 6 тижнів.
Qualcommостання висококласна система на чіпі, the Qualcomm Snapdragon 845, був оголосив на саміті Snapdragon Tech у грудні. The пропозиції чіпсетів 4 процесорних ядра Kryo 385 (A75 «продуктивність») і 4 Kryo 385 (A55 «ефективність»), найновіший графічний процесор Adreno 630, Spectra 280 ISP, Hexagon 685 DSP, модем Snapdragon X20 LTE і новий Secure Processing Unit (СПУ). Snapdragon 845 SoC є a електростанція в тестах і він уже доступний у таких пристроях, як Samsung Galaxy S9/S9+, Xiaomi Mi Mix 2S, і OnePlus 6. Розробники на наших форумах дуже чекали отримати в свої руки пристрій із найновішим і найкращим від Qualcomm, але є лише одна річ, яка змусила деяких розробники турбуються про майбутнє розробки на платформі: відсутність загальнодоступного вихідного коду для ядра, HAL, гілок фреймворку тощо. в Форуми CodeAurora.
Qualcomm і форуми CodeAurora
Якщо ви коли-небудь замислювалися, чому розробники на наших форумах віддають перевагу роботі з пристроями з чіпсетами Qualcomm над пристроями з чіпсетами від HiSilicon, Samsung, MediaTek, та інші, причиною є дружнє ставлення Qualcomm до спільноти розробників на замовлення. Android, з якого будують розробники спеціального ПЗУ, базується на проекті Android Open Source Project (AOSP). Google випускає a публічна частина AOSP але вони також розробляють частини Android приватно (саме тому, якщо ви створите ПЗУ з AOSP сьогодні, ви не отримаєте жодного з цікаві нові функції в Android P.) Для розробників спеціального ПЗУ єдиний вибір, який вони мають, щоб об’єднати найновіші функції платформи Android, — це чекати, поки Google випустить вихідний код із остаточним випуском. Проте постачальники чіпсетів мають угоду з Google, щоб отримати ранній доступ до наступної версії Android— вони розгалужуються з приватних репозиторіїв AOSP, змінюють код свого чіпсета, щоб він був сумісним, а потім розповсюджують цей код серед OEM-виробників для створення та розповсюдження ПЗУ для своїх пристроїв.
Загальний процес оновлення для кожного випуску Android. Джерело: Google.
Для дотримання Загальної публічної ліцензії GNU (GPL), згідно з якою ліцензовано ядро Linux, чіпсет Постачальники та OEM-виробники повинні випустити вихідний код ядра, але це все, що від них вимагається реліз. Вихідний код ядра для Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+, Xiaomi Mi Mix 2S, і OnePlus 6 вже доступні, наприклад. Цього достатньо для розробників, щоб розпочати портування користувацьких ПЗУ на основі AOSP на цих пристроях, але лише наявність доступу до вихідного коду ядра не означає, що його буде легко перенести LineageOS 15.1 до цих пристроїв (хоча це змінюється завдяки Проект Treble). Весь спеціальний код чіпсета для нових функцій чіпсета зазвичай недоступний у цьому ядрі випуски вихідного коду, що очікується, оскільки код розкриє, як пропрієтарні функції чіпсета працювати. Розробники мають доступ до цього коду у формі попередньо скомпільованих двійкових файлів (так звані двійкові великі об’єкти або BLOB), але це майже неможливо поєднати ці BLOB з їх роботою на AOSP ROM, оскільки немає документації про те, як це працювати.
На щастя для розробників, тут у пригоді Qualcomm CodeAurora Forums (CAF). На CAF Qualcomm випускає загальнодоступні частини коду свого чіпсета таким чином, щоб це дійсно розробникам ПЗУ легко створювати для платформи, не знаючи, як працює новий чіпсет працювати. Розробникам просто потрібно розщепити публічні частини сховищ нової платформи (наприклад, hardware/qcom/display і vendor/qcom-opensource/bluetooth) і об’єднайте його з попередньо скомпільованими двійковими файлами, і це, в основному, працюватиме здебільшого. Компанія Qualcomm опублікувала свій спеціальний код чіпсетів на CAF для попередніх SoC, таких як Qualcomm Snapdragon 820/821 і Snapdragon 835, і зазвичай протягом декількох днів після оголошення чіпсета! Однак це було 5 місяців з моменту анонсування Snapdragon 845, і ми це зробили ще не побачили, як звичайний вихідний код компанії потрапляє під гілку sdm845.
Пошук у CAF вихідного коду, пов’язаного з Qualcomm Snapdragon 835 SoC
Відкладений випуск вихідних кодів sdm845 у CAF змусив деяких розробників хвилюватися, що Qualcomm буде відмовившись від форуму, фактично ставши схожим на MediaTek, надаючи джерела лише своїм партнерам, а не громада. Розробники, з якими ми спілкувалися, стурбовані тим, що це зашкодить розробці спеціальної ПЗУ на пристроях від таких компаній, як Xiaomi, оскільки джерела CAF часто необхідні для створення стабільних ПЗУ для Snapdragon від Xiaomi пристроїв. Ми звернулися до Qualcomm, щоб дізнатися, що відбувається, і нарешті у нас є хороші новини, якими можна поділитися: CAF не покидають, просто випадіння коду Qualcomm Snapdragon 845 не відбудеться, доки Qualcomm не оголосить про свої нові мобільні платформи. Причина? Тому що витоки.
Форум CodeAurora та витоки чіпів Qualcomm
Коли інженери Qualcomm працюють над новими функціями платформи для своїх чіпсетів, вони рідко розробляють ці функції лише з одним чіпсетом. Невипущені чіпсети можуть використовувати те саме програмне забезпечення, яке є у вже анонсованих чіпсетах, таких як Snapdragon 845. Хоча компанії часто використовують кодові назви, щоб запобігти витокам, навіть це не повністю запобігає витокам. Наприклад, подробиці неопублікованого Qualcomm Snapdragon 670 знайшли в CAF Роланд Квандт з WinFuture. Пізніше ми дізналися від CAF, що це Qualcomm Snapdragon 670 змінюється бренд на Qualcomm Snapdragon 710. Qualcomm не підтвердила існування Snapdragon 670/Snapdragon 710, але завдяки посиланням у CAF ми вже знаємо багато про майбутній чіпсет.
Таким чином, щоб запобігти подібним витокам, Qualcomm вирішила відкласти випуск вихідного коду для Snapdragon 845. Нам сказали, що компанія не буде публікувати вихідний код чіпсета до моменту оголошення нових мобільних платформ. Після приблизно через 6 тижнів, компанія зможе випустити вихідні коди sdm845 на CAF. Представник Qualcomm вибачився за затримку випуску вихідного коду, заявивши, що компанія переглядає їхні угоди про найменування чіпсетів у коді, щоб вони могли випустити код для вже анонсованих чіпсетів, уникаючи при цьому витоки.