EFIDroid: завантажувач другого етапу, що використовує мікропрограму UEFI для мультизавантаження [XDA Spotlight]

Мультизавантаження — це складна тема, і для її ввімкнення часто потрібні виправлення ядра або відновлення. EFIDroid — це інструмент, який працює навколо цього.

Реалізація подвійного завантаження та кількох ПЗУ була серйозною проблемою для розробників Android досить довго. Попередні рішення, як правило, вимагали значного розробка для конкретного пристрою і подальша підтримка від розробників ПЗУ. Навіть тоді вони часто складніші, ніж вони варті для середнього користувача ПЗУ. EFIDroid прагне все це виправити.

Раніше відомий як GRUB4Android, EFIDroid був створений визнаним розробником і учасником XDA m11kkaa як засіб ефективного дозволу майже будь-яке ПЗУ можна багаторазово завантажувати без змін потрібний ROM або поточне відновлення. Це означає, що жодних патчів ядра немає kexec, відсутність проблем із несумісністю ПЗУ та відсутність головного болю для користувачів або розробників ПЗУ.


Що таке EFIDroid?

Авторство зображення: EFIDroid

EFIDroid – це a завантажувач другого етапу призначений для того, щоб дозволити оригінальному коду завантажувача пристрою обробляти сам апаратний інтерфейс, таким чином спрощуючи роботу, яку потрібно виконати, щоб перенести цю програму на різні пристрої. Це засновано на Intel

EDK II проект, який має добре налагоджену кодову базу та забезпечує значну можливість розширення. Ця реалізація використовує відкритий завантажувач Qualcomm, Little Kernel (LK), і як така підтримка є наразі обмежено пристроями Snapdragon.

Встановлення таке ж просте, як і завантаження Програма EFIDroidManager із магазину Google Play на пристрої з root-доступом, за умови, що ваш пристрій має підтримку, об’єднану з проектом репозиторій github. Якщо ваш пристрій підтримується, програма завантажить відповідний код і дозволить вам встановити, видаляти, перевстановлювати та відновлювати EFIDroid, а також дозволяти вам керувати своїми ПЗУ під час мультизавантаження конфігурація. Після встановлення EFIDroid ПЗУ можна встановити у вибране вами місце (зазвичай десь, наприклад, /data/media/0/multiboot/NAME).

На даний момент підтримується лише кілька пристроїв, включаючи Moto E (Кондор), Moto G 4G (Сапсан), Nokia X2, OnePlus One, Vega Iron 2 і Fairphone 2. Однак m11kkaa є шукаю розробників для допомоги з портуванням EFIDroid на інші пристрої – деякі вже отримують «неофіційну підтримку». Якщо ви можете змусити EFIDroid працювати на іншому пристрої, процес його включення в програму просто вимагає надсилання запиту на отримання до EFIDroid git сховище. M11kkaa також повідомив нам, що в майбутньому він планує розширити програму для потенційної підтримки плагінів завантаження та програм UEFI (хоча майте на увазі, що на даний момент це лише плани).


Як це працює

EFIDroid використовує LK як рівень абстракції для взаємодії з апаратним забезпеченням пристрою. Додаток дає змогу повною мірою скористатися перевагами цих компонентів завдяки широким можливостям UEFI, серед яких можливість завантажувати ядро ​​Linux на

пізніший пункт.

EFIDroid використовує бібліотеку ядра Linux як засіб компіляції ядра Linux як програмної бібліотеки. Це дає змогу UEFI використовувати драйвери файлової системи для читання та запису в декілька завантажувальних розділів і з них, а також надає йому можливість завантажуватися з кількох ПЗУ або середовищ відновлення. EFIDroid також може відображати повідомлення про помилки попереднього невдалого завантаження. Творець навіть згадав про потенційне використання бібліотеки ядра Linux для додавання підтримки сенсорного екрану в майбутньому.

Усе це, звичайно, вимагає кореневого доступу та розблокованого завантажувача на вашому пристрої але не вимагає спеціального ядра.

Авторство зображення: EFIDroid


Більше, ніж просто мультизавантаження 

Реалізація завантажувача UEFI відкриває для пристроїв Android багато можливостей. У середовищі UEFI доступні різноманітні плагіни, включаючи діагностику, наприклад Memtest86, відкриття командного рядка та навіть ігри. Хоча для реалізації цих можливостей потрібна підтримка, EFIDroid все ще пропонує деякі ключові функції для сумісних пристроїв. Незалежно від того, чи використовується просто як альтернативний завантажувач для пристроїв, у яких можуть бути відсутні параметри відновлення, чи як інструмент для керування та усунення несправностей кількох ПЗУ або середовищ відновлення, цей інструмент пропонує все вищезазначене та робить це за допомогою зручного для користувача та зрозумілий інтерфейс користувача завантажувати.

Для подальших обговорень перейдіть до тема форуму або слідкуйте за проектом за посиланнями нижче!

EFIDroid на Github

Офіційний сайт EFIDroid

Спільнота Slack EFIDroid


Ви вже пробували EFIDroid? Бажаєте побачити підтримку для свого пристрою? Дайте нам знати в коментарях нижче!