Как собрать пользовательское ПЗУ из проекта с открытым исходным кодом Android

источник известный как AOSP (проект с открытым исходным кодом Android) .



Что касается AOSP, то чистый исходный код не включает аппаратные особенности устройства. Говоря простым языком, такое оборудование, как камера и графический процессор, не будет работать «из коробки» при разработке с использованием AOSP. Фактически, ваше устройство даже не загрузится без этих аппаратных двоичных файлов.

Если вы разрабатываете телефон под брендом Google (Pixel, Nexus и т. Д.), Вы можете найти двоичные файлы оборудования. прямо из Google , и это руководство поможет вам получить и встроить их в свой ROM. Однако, если вы разрабатываете ПЗУ для фирменного телефона (Sony, Samsung и т. Д.)… Что ж, благословите свое сердце, потому что вас ждет поездка.



Несколько производители имеют свои собственные проекты с открытым исходным кодом или выпускают инструменты разработки для потенциальных разработчиков, тогда как другие производители держат в секрете свои проприетарные коды. Вот краткий список проектов с открытым кодом от наиболее популярных производителей:



Центр выпусков с открытым исходным кодом Samsung
Мир разработчиков Sony
Поддержка Lenovo
Центр выпусков с открытым исходным кодом Huawei
Разработчики Motorola



Разобравшись с этим, давайте продолжим в предположении, что мы создаем ПЗУ для самого простого, ванильного Android-интерфейса для устройства Google Pixel. Обладая этими знаниями, вы сможете самостоятельно развиваться и начинать разработку индивидуальных версий ПЗУ конкретных производителей.

Требования к данному руководству:

  • Проект с открытым исходным кодом Android
  • Телефон Pixel XL или же эмулятор Android для Linux
  • 64-битная операционная система Linux - Ubuntu или же Linux Mint - самые удобные для новичков дистрибутивы, тогда как BBQLinux был разработан специально для разработчиков Android.
  • Python
  • Мощный компьютер (компиляция кода требует много памяти и места!)

Настройка среды сборки

Начнем с настройки эмулятора Android на вашем компьютере с Linux. Независимо от того, есть ли у вас устройство Google Pixel XL, всегда безопаснее всего попробовать новое ПЗУ на эмуляторе Android. до перепрошивка на ваше устройство. Мне больше всего нравится Genymotion, поэтому я расскажу вам, как установить именно этот эмулятор. Однако вы также можете ознакомиться с этим руководством « Лучшие эмуляторы Android », Поскольку большинство из них также имеют совместимость с Linux.

Перейдите к Сайт Genymotion , зарегистрируйте учетную запись, подтвердите ее по электронной почте и загрузите исполняемый файл на рабочий стол Linux.



Теперь откройте терминал Linux и введите:

Chmod + x genymotion-xxxxx.bin (замените xxxx номером версии в имени файла)
./genymotion-xxxxxx.bin

Нажмите И для создания каталога Genymotion. Теперь введите в терминал:

cd genymotion && ./genymotion

Теперь он попросит вас начать процесс установки, поэтому просто продолжайте нажимать «Далее», пока не дойдете до окна «Добавить виртуальные устройства». Выберите «Pixel XL» в разделе «Модель устройства» и завершите установку. Вы можете протестировать виртуальное устройство, если хотите, это будет похоже на телефон Pixel XL на вашем рабочем столе.

Теперь настроим Python:

$ apt-get install python

Теперь нам нужно установить Java Development Kit на вашем компьютере с Linux. Откройте терминал Linux и введите следующие команды:

$ sudo apt-get update
$ sudo apt-get установить openjdk-8-jdk

Теперь вам нужно настроить систему Linux, чтобы разрешить доступ к USB-устройству. Запустите следующий код в терминале Linux:

Это загрузит необходимый файл 51-android.txt, который разрешит доступ к вышеупомянутому USB-устройству. Откройте файл .txt и измените его, включив в него свое имя пользователя Linux, затем поместите файл .txt в следующее место: (как пользователь root ). Теперь подключите устройство к компьютеру через USB, чтобы новые правила вступили в силу автоматически.

Загрузка исходного кода Android

AOSP размещен на Git, поэтому мы собираемся использовать инструмент под названием Repo для связи с Git.

Сначала нам нужно настроить папку / bin в вашем домашнем каталоге. Введите следующие команды в терминал Linux:

$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH

Теперь мы загрузим инструмент Repo, поэтому введите в терминал Linux:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / репо

После установки Repo мы должны создать пустой каталог для хранения ваших рабочих файлов. Так что введите это в терминал Linux:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Теперь мы настроим Git с вашим именем и адресом электронной почты - используйте адрес Gmail, который вы регулярно проверяете , иначе вы не сможете использовать инструмент проверки кода Gerrit.

$ git config –global user.name «Ваше имя»
$ git config –global user.email
you@gmail.com

Теперь мы скажем Repo извлечь последний главный манифест AOSP из Git:

$ репо init -u https://android.googlesource.com/platform/manifest

Если все будет выполнено успешно, вы получите сообщение о том, что Repo инициализирован в вашем рабочем каталоге. Вы также найдете ' .repo » каталог внутри клиентского каталога. Итак, теперь мы загрузим дерево исходных текстов Android с:

$ репо синхронизация

Сборка исходного кода Android

1

Здесь вступают в игру двоичные файлы оборудования, упомянутые в начале этого руководства. Давайте перейдем к Драйверы AOSP страницу и загрузите двоичные файлы Pixel XL для Android 7.1.0 (NDE63P). Вы хотите загрузить образ производителя и компоненты оборудования. Они поставляются в виде сжатых архивов, поэтому распакуйте их на рабочий стол и запустите самораспаковывающийся скрипт из корневой папки. Выберите установку двоичных файлов в корневой каталог WORKING_DIRECTORY, который мы создали ранее.

Теперь введите в свой терминал Linux:

$ make clobber
$ source build / envsetup.sh

Теперь мы выберем цель для построения, поэтому введите:

$ обед aosp_marlin-userdebug
$ setpaths
$ make –j4

Итак, мы «построили» Android ROM из исходников. Итак, давайте протестируем это в эмуляторе, набрав в терминале:

$ эмулятор

Так что немного поиграйте в эмуляторе. Как видите, чисто обычная работа с Android минимальна, поэтому производители настраивают AOSP под свои нужды. Так что вы мог прошейте это ПЗУ, которое мы только что создали, на ваше устройство, если хотите, но без добавления каких-либо улучшений чисто ванильный опыт Android был бы действительно очень скучным.

Итак, что производители обычно делают с AOSP, это форкуют его, добавляют свои собственные проприетарные двоичные файлы, настраивают пользовательский интерфейс, добавляют загрузочный логотип и т. Д. Производители в основном просто закрашивают стандартное ПЗУ Android, и это будет вашей следующей целью. .

Следите за обновлениями, поскольку во второй части этого руководства мы расскажем о добавлении шрифтов, тем и загрузочной анимации в ваш ROM!

5 минут на чтение