- Самостоятельное создание прошивки для Android
- Создание прошивки для Android
- Шаг 1: Установка Recovery
- Шаг 2: Выбор прошивки
- Шаг 3: Подготовка системы на ПК
- Шаг 4: Использование Android Kitchen
- Шаг 5: Сборка прошивки
- Шаг 6: Установка прошивки
- Заключение
- Собираем свой Android для BeagleBoard
- Инициализация репозитория
- Сборка загрузчика
- Сборка ядра
- Сборка файловой системы
- Конфигурирование системы
- Установка и загрузка
Самостоятельное создание прошивки для Android
Прошивка на любом современном смартфоне, включая устройства на платформе Android, позволяет модифицировать буквально каждый элемент на собственный вкус. И хотя обычно рядовые пользователи используют уже готовые варианты, прошивку можно создать самостоятельно. Для этого потребуется ряд специальных инструментов, о которых нами будет рассказано в настоящей инструкции.
Создание прошивки для Android
Прежде чем перейти к основам, необходимо учесть: даже если в точности придерживаться ограничений и рекомендаций из нашей статьи, ваше устройство может прийти в нерабочее состояние. Связано это со многими факторами, от мелких ошибок до отсутствия совместимости. Поэтому любыми доступными способами проверяйте совместимость, чтобы сохранить девайс в целости.
Шаг 1: Установка Recovery
В одной из инструкций на нашем сайте был рассмотрен процесс установки кастомного рекавери, необходимого для перепрошивки Android-устройства. Этот шаг является обязательным и должен быть выполнен заранее до работы с самой прошивкой. При этом помните, что для разных смартфонов используется собственный вариант, но это никак не скажется на дальнейшем процессе за исключением некоторых отличий в интерфейсе.
Шаг 2: Выбор прошивки
Помимо добавления загрузчика с возможностью сохранения доступа к файлам нужно найти прошивку, совместимую с вашим девайсом. В этом вопросе трудно дать какие-то конкретные советы, так как существует огромное количество смартфонов и не менее большой ассортимент прошивок. Проще всего найти подходящий вариант, посетив раздел «Android» на русскоязычном форуме 4PDA или на англоязычном ресурсе XDA Developers.
Отыскав раздел с прошивками для вашего устройства, предпочтение стоит отдать чистым вариантам, которые не были модифицированы автором. Это необходимо для того чтобы изменить прошивку с нуля, не заменяя и не вырезая другие элементы. Загрузите архив в формате ZIP на компьютер, где и будут производиться дальнейшие изменения.
Шаг 3: Подготовка системы на ПК
Специальное ПО для компьютера, о котором пойдет речь в следующем разделе, в равной степени совместимо с ОС Windows, Linux и MacOS. Наиболее удобный метод сводится к использованию систем на основе Linux, в то время как на Виндовс потребуется ряд дополнительных действий и программ. В связи с куда большей распространенностью второго варианта, именно ОС Windows мы уделим внимание.
- Посетите официальный сайт Oracle и загрузите программное обеспечение JDK в соответствии с разрядностью вашей операционной системы.
Кликните по загруженному EXE-файлу и произведите инсталляцию программы.
Следом за JDK нужно скачать и установить Cygwin. Для этого посетите тему на форуме 4PDA по представленной ниже ссылке.
Перейти к скачиванию Cygwin
Откройте загруженный архив при помощи любого удобного архиватора и извлеките имеющиеся файлы.
Среди полученных файлов дважды кликните по «Setup», чтобы начать установку.
На этапе «Choose A Download Source» выберите вариант «Install from Local Directory» и нажмите «Далее».
В строке «Root Directory» путь оставьте без изменений, воспользовавшись кнопкой «Далее».
Дальше нужно изменить «Local Package Directory», указав папку Cygwin, которую вы извлекли из архива ранее. К примеру, в нашей ситуации она находится на рабочем столе, и потому путь выглядит так, как показано на скриншоте.
Дальнейшие действия по установке Cygwin производятся в автоматическом режиме.
По желанию можете создать на рабочем столе ярлык для более удобного запуска программы.
Запустите программу с помощью созданного значка. В ОС Windows выше семерки используйте «Запуск от имени администратора».
Дождитесь завершения создания директорий и файлов в консоли, после чего закройте Cygwin.
На этом этап подготовки можно считать завершенным и переходить к следующему шагу. Заметьте, внутри архива в файле «kitchen_readme» также имеется инструкция по установке.
Шаг 4: Использование Android Kitchen
Программа Android Kitchen, так же известная как «кухня», представляет собой наиболее удобное средство для создания кастомных прошивок. Загрузить архив можно с официальной страницы на Github по ниже представленной ссылке. Лучше всего брать последнюю вышедшую версию ПО.
- Загрузив «кухню» на компьютер, извлеките папку из архива так же, как и на прошлом этапе.
Переименуйте папку в «kitchen» и с помощью комбинации клавиш «CTRL+X» подготовьте к переносу.
Откройте «Локальный диск (C:)» и откройте папку по следующему пути: Cygwin/home/user . Нажмите сочетание клавиш «CTRL+V», чтобы добавить ранее извлеченную папку.
Примечание: Вместо «user» папка будет названа в соответствии с именем пользовательской директории в системе.
Переместите заранее скачанный файл прошивки, подходящей для вашего устройства, в папку «original_update». Эта директория расположена по следующему пути: Cygwin/home/user/kitchen/original_update .
Вновь запустите Cygwin и последовательно воспользуйтесь следующими командами:
cd kitchen
./menu
В случае успеха в консоли появится множество пунктов, предназначенных для работы с прошивкой.
Закройте «кухню» и переходите к следующему этапу.
Шаг 5: Сборка прошивки
Самой важной и наиболее трудоемкой частью является сборка прошивки, так как этот процесс необходимо выполнять с осторожностью, чтобы исключить вероятность ошибок. Данная процедура не будет проблемой при наличии опыта. По той же причине мы не будем акцентировать внимание на этапе сборки, упомянув лишь несколько моментов.
- В главном меню Android Kitchen введите «0» и нажмите «Enter», чтобы перейти к расширенному списку параметров.
Отсюда можно внести множество изменений в прошивку, будь то добавление ROOT, изменение анимации или запуск плагинов.
Для завершения нужно будет ввести «99» и нажать «Enter». Готовый файл будет находиться в папке «OUTPUT_ZIP» в пользовательской директории Cygwin.
Завершив процедуру редактирования, можно приступать к прошивке устройства.
Шаг 6: Установка прошивки
Как и в случае с установкой рекавери, процедура инсталляции кастомной прошивки вне зависимости от варианта ее получения была нами описана в отдельной статье на сайте. Ознакомиться с ним вы можете, перейдя по ниже представленной ссылке. Обратите внимание, что разные виды прошивок могут устанавливаться по-разному.
Заключение
Надеемся, наша статья помогла вам разобраться с процедурой создания собственной прошивки для Android-устройства. Важно учитывать, что без опыта и понимания достичь желаемого результата не получится, даже если уделить внимание конкретным примерам. Связано это с массой отличий в случае разных прошивок, версий Андроид и смартфонов.
Помимо этой статьи, на сайте еще 12476 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
Собираем свой Android для BeagleBoard
В этой статье, я хочу рассказать о процессе сборки Android, для контроллеров ARM. Надеюсь что для кого то эта статья окажется полезной, не только разработчику но и не искушённому пользователю. В основном конечно, хотелось бы показать как происходит сам процесс сборки, операционной системы для мобильных устройств. В качестве «подопытного кролика» я выбрал BeagleBoard-xM.
Это одна из отладочных плат, которые, как нельзя лучше подходят для подобных целей. кроме всего прочего она обладает HDMI и S-VIDEO выходами, для того что бы «пощупать» результат. А так же 4-я USB портами, которых вполне хватает для подключения клавиатуры, мышки и т.п. В своих экспериментах, я использовал BeadaFrame купленную на eBay, однако это условие абсолютно не принципиально, так как подойдёт любой «телевизор».
И так, грузиться наша плата будет с microSD, а для сборки Android нам понадобится Linux машина, например c Ubuntu 13.04-AMD x64, вполне можно использовать виртуальную машину, однако рекомендую убедиться в том что виртуальной машине доступно MMC устройство, т.е. сама microSD карточка, а для начала нам понадобится установить следующие пакеты:
Для нашего Android понадобится собрать три основные вещи:
- само ядро операционной системы, по сути, — это бинарный файл, который будет загружать загрузчик.
- загрузчик, в нашем случае — это будет u-boot, хотя можно использовать и x-loader.
- файловая система
А для работы создадим какую ни будь рабочую директорию, например: /home/ubuntu/Adroid/
и сразу добавим эту директорию в пути:
Если на Вашей виртуальной машине, не был установлен git, то придётся это сделать:
Инициализация репозитория
Теперь нам нужно получить исходный код самого Android, из которого, в дальнейшем, мы будем собирать само ядро операционной системы и файловую систему. Для этого внутри рабочей директории /home/ubuntu/Adroid, выполним следующую команду:
В результате мы получили файл androidrepo, с помощью которого мы и будем работать с репозиторием. Для этого назначим права исполняемого файла для androidrepo.
Далее, внутри наше рабочей директории, создаём каталог для исходного кода:
и инициируем репозиторий:
После успешной инициации, выполняем синхронизацию с репозиторием
Синхронизация — это достаточно долгий процесс, поскольку содержит ни только исподники ядра, но и файловую систему а так же компилятор с помощью которого и будет собираться и загрузчик, и само ядро.
По окончанию синхронизации, мы должны увидеть информацию об успешной синхронизации, что то вроде этого:
Syncing work tree: 100% (261/261), done.
Теперь, перед сборкой нам нужно настроить путь к компилятору, которым мы будем собирать и ядро и загрузчик. Сам компилятор находится внутри самого репозитория в директории prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin, так что устанавливаем путь к нему в переменной PATH.
На этом, подготовительную работу, можно считать законченной.
Сборка загрузчика
Как я уже писал, что в качестве загрузчика, мы будем использовать u-boot. Для сборки нам понадобится сделать клон репозитория u-boot, в нашей рабочей папке:
И собираем наш загрузчик, первую команду distclean, при самой первой сборке, можно пропустить.
Для сборки u-boot используется компилятор arm-eabi-gcc, путь к которому у нас уже установлен.
Результат сборки загрузчика — это два файла MLO, и u-boot.bin. Оба этих файла находятся в корне директории u-boot. Сразу перенесём их куда ни будь, просто для удобства, например в каталог build.
Сборка ядра
Теперь мы добрались до сборки самого ядра. Физически это один файл uImage, который по факту представляет ни что иное как — Linux ядро. Однако перед тем как приступать к сборке, необходимо установить Java SE 1.6. И именно версию 1.6, установить которую можно из репозитория:
или, например как описано в этой статье.
Далее, для сборки ядра, нам нужно зайти в директорию kernel, внутри Android репозитория. В нашем случае: /home/ubuntu/Adroid/source/kernel, и по примеру сборки загрузчика u-boot, выполнить сборку:
Надо заметить, что omap3_beagle_android_defconfig взят из каталога kernel/arch/arm/configs, в котором находятся конфигурации ядра. При желании можно изменить, добавить, или подобрать подходящую конфигурацию для конкретного «железа».
Результат сборки, будет находится в папке kernel/arch/arm/boot, т.е. в нашем случае /home/ubuntu/Adroid/source/kernel/arch/arm/boot, откуда мы берём файл uImage, собственно само ядро, и переносим его в уже удобную, для нас директорию build.
Сборка файловой системы
Это последний этап сборки нашей операционной системы, для этого нужно перейти в корень репозитория, и собрать её:
Файловая система собирается достаточно долгое время, да и места на диске требует около 20Gb. После компиляции самой файловой системы, нужно получить архив, в который войдут все необходимые файлы.
После окончания сборки архива, мы получаем файл footfs.tar.bz2, который находится в директории out: /home/ubuntu/Adroid/source/out/target/product/beagleboard/rootfs.tar.bz2, и собственно содержит файловую систему Android. Тут находятся все системные файлы, приложения, и утилиты входящие в состав операционной системы.
Конфигурирование системы
Сам процесс конфигурирования достаточно прост, а для упрощения, воспользуемся Rowboat Tools от Texas Instruments. Нам понадобится файл конфигурации загрузчика boot.scr, который содержит настройки переменных загрузчика.
Скачиваем и распаковываем непосредственно сам Rowboat Tools:
Для нас, сейчас интересен файл mkbootscr, который находится в каталоге RowboatTools-JB/am37x/mk-bootscr. Если заглянуть внутрь файла, то можно найти подобные строки:
Это и есть установка переменных загрузчика, т.е. например нам нужно установить разрешение экрана отличным от «по умолчанию», значит мы должны изменить значение dvi:1024×768-16, и выполнить mkbootscr. В результате мы получаем файл boot.scr с нашими новыми настройками. Менять сразу boot.scr не выйдет, потому что он несёт информацию о контрольной сумме, которая, конечно же, должна совпадать с размером самого файла.
Установка и загрузка
Сама плата, как в принципе и большинство устройств на ARM контроллерах могут загрузиться с NAND памяти, SD/MMC или USB/RS-232. В нашем случае, мы будем загружаться с MMC. Во первых этот безопаснее чем прошивка NAND памяти, а во вторых, на мой взгляд, просто удобнее особенно в демонстрационных целях.
И так, нам понадобится MMC, желательно от 2 до 8 Gb. Подключаем MMC к Linux машине, и подготавливаем файловую систему.
Загрузочный MMC диск должен содержать минимум два раздела. Первый FAT16 назовём его boot, с которого собственно и будет происходить загрузка u-boot и ядра операционной системы, и второй Ext4, на котором будет находится наша файловая система, назовём его rootfs.
Для упрощения создания файловой системы, я подготовил маленький bash скрипт, просто для удобства пользования. Если контроллер не найдёт загрузочный сектор, наша платформа просто не сможет загрузится.
Источник