» Прошивки

Учимся использовать dsixda’s Android Kitchen

Многие более опытные пользователи Android-девайсов желают создавать свои собственные прошивки для своих мобильных устройств, однако создание кастомной прошивки полностью с нуля это зачастую весьма трудоёмкий процесс, который требует немало терпения и времени. Тогда на помощь приходят различные программы, вроде Android Kitchen.

Android Kitchen – не совсем полноценный инструмент для работы с прошивками. Неполноценный он в том плане, что для создания кастома используется уже существующая база, то есть другой ROM. В данном руководстве мы поможем вам разобраться с основными функциями данной весьма полезной утилиты. Android Kitchen поддерживает большинство доступных на рынке мобильных устройств, в том числе от таких мировых брендов, как HTC, Samsung, Motorola, LG, Huawei, ZTE и других. Напомним, что любые действия с программным обеспечением вашего Android-гаджета вы проделываете на свой собственный страх и риск, а также перед любой модификацией или изменением прошивки настоятельно рекомендуем создавать резервные копии.

Android Kitchen требуется среда Linux для корректной работы, потому в первую очередь «кухня» ориентирована на работу в семействе операционных систем Linux. Разберемся с установкой Android Kitchen на примере Ubuntu (популярного дистрибутива Linux). Для начала, устанавливаем «Центр приложений Ubuntu». В последний версиях дистрибутивов Ubuntu он уже встроен заранее, но на случай если у вас более старая версия – в терминале вводим следующую команду:

sudo apt-get install software-center

(sudo apt-get install ia32-libs – команда, необходимая для 64-битных операционных систем). Запускаем установленный центр приложений вручную или через терминал командой «software-center», в поисковом окне вводим «Java», среди результатов выбираем «OpenJDK Java 6 Runtime» и устанавливаем его.

Но если на вашем компьютере установлена операционная система Windows – не беда, можно запустить Android Kitchen через виртуальную машину. Разберем такой вариант сначала на примере Cygwin (это UNIX-среда для систем Windows). Сначала устанавливаем Java JDK для Windows (32-битную версию, и, что более важно – нельзя устанавливать сам Cygwin (совместимая с «кухней» версия находится по ссылке — http://d-h.st/qo7) перед установкой JDK). Далее скачиваем и распаковываем сам Cygwin, следуем инструкциям в текстовом файле «Установка.txt». Второй способ заключается в использовании Virtual Box. Устанавливаем в виртуальную машину Linux, и оттуда уже запускаем сам Android Kitchen. Не забываем при этом расшарить директории между операционной системой Windows и Linux на виртуальной машине.

Также возможна работа «кухни» из-под Mac OS X, однако стопроцентная работоспособность данного метода не гарантируется. Итак, создаем .dmg-образ диска «кухни». Устанавливаем Java JDK, GNU версии sed (Mac OS X в sed не совместим с Android Kitchen), компилятор GCC (если он уже не установлен по умолчанию) – для проверки можно ввести «GCC», он входит в программный пакет XcodeTools установочного DVD-диска. После всего этого устанавливаем wget.

Перед самим запуском, папку из архива с «кухней» распаковываем в директорию C:/cygwin/home/username/, если используется Cygwin или в file-system/home/username/, если используется Linux, при этом username нужно заменить на имя пользователя. Переименовываем распакованную папку в kitchen.

Для запуска нужно либо пользоваться Cygwin, либо ввести команды в терминал:

cd kitchen

./menu

Если в процессе установки изменили путь, то, соответственно, будет отличаться первая команда – то есть переход в директорию с «кухней». Также, для корректной работы имя пользователя должно состоять только из латинских букв, и вообще – это золотое правило всегда и везде.

Для того, чтобы импортировать нужный ROM прошивки в Android Kitchen, копируем его в папку «original_update folder». «Кухня» умеет работать с такими форматами прошивок: .zip-файлы, system.img, boot.img и подобные, и .exe-файлы прошивки. ROM, соответственно, берем из стоковой или кастомной прошивки в зависимости от того, какую хотим использовать базу для своей создаваемой версии.

После импорта ROM`а, можно приступить к работе с ней. Запускаем её, как говорилось немного выше, и, если всё было сделано правильно, появится меню:

======================================

Android Kitchen — by dsixda (xda-developers.com)

======================================

1. Set up working folder from ROM

2. Add root permissions

3. Add BusyBox

4. Disable boot screen sounds

5. Add wireless tethering

6. Zipalign all *.apk files to optimize RAM usage

7. Change wipe status of ROM

8. Change name of ROM

9. Check update-script for errors

10. Show working folder information

 

0. Advanced Options

99. Build ROM from working folder

 

00. About/Update kitchen

0. Exit

 

Зайдя в пункт 0 («Advanced Options») видно следующие пункты:

11 — Deodex files in your ROM

12 — Add task killer tweak for speed (stock ROM only)

13 — Add /data/app functionality

14 — Add Nano text editor + sysro/sysrw

15 — Add Bash (command shell)

16 — Add Apps2SD

17 — Add /etc/init.d scripts support (busybox run-parts)

18 — Add custom boot animation functionality

19 — Porting tools (experimental)

20 — Tools for boot image (unpack/re-pack/etc.)

21 — Unpack data.img

22 — Sign APK or ZIP file(s)

23 — Convert update-script or updater-script

24 — Miscellaneous optins / Plugin scripts

0 — Back to main menu

Для простоты использования данной утилиты мы приведем полный перевод всех пунктов:

1 – создание рабочей папки из ROM`а прошивки.

2 – добавить Root-доступ в прошивку.

3 – добавить в прошивку BusyBox.

4 – отключить звуки на загрузочном экране.

5 – включить функцию работы устройства как Wi-Fi-точки доступа.

6 – Zipalign все файлы .apk, то есть сжать (для экономии оперативной памяти).

7 – сменить статус wipe ROM’а.

8 – сменить имя ROM`а.

9 – проверить update-script на наличие ошибок.

10 – показать информацию о рабочей папке.

0 – дополнительные опции.

99 – собрать ROM прошивки из рабочей папки.

00 – о программе/обновить «кухню».

0 – выход.

11 – выполнить деодексирование (deodex) системы.

12 – добавить улучшение работы Task Killer’а для повышения производительности (актуально только для стандартных стоковых версий прошивок).

13 – добавить функционал папке «/data/app».

14 – добавить текстовый редактор Nano text editor + sysro/sysrw

15 – добавить в прошивку Bash (командную строку).

16 – добавить в прошивку Apps2SD (перенос приложений на карту памяти).

17 – добавить в ROM поддержку скриптов «/etc/init.d» (для работоспособности необходим установленный busybox).

18 – добавить кастомную анимацию загрузки.

19 – инструменты для портирования (эксперементальный пункт).

20 – инструменты для загрузочного образа (распаковка/перепаковка/и т.п.).

21 – распаковка образа data.img.

22 – подписать .apk или .zip файл (файлы).

23 – конвертировать update-script или updater-script.

24 – разнообразные опции (запуск плагинов или скриптов).

0 – возврат в главное меню.

Примерная последовательность действий для работы с Android Kitchen:

Импортируем ROM прошивки.

Запускаем Android Kitchen.

Создаем из ROM`a рабочую папку.

Добавляем в прошивку Root-доступ и Busybox.

Выполняем деодексирование.

Модифицируем, добавляем и удаляем всё по желанию.

Собираем ROM в рабочей папке.

После выполнения сборки готовый к прошивке .zip-файл будет помещен в директорию OUTPUT_ZIP.

Теперь несколько слов о замене ядра (Kernel) в создаваемой прошивке. Во-первых, сразу оговоримся, что Kernel – это файл в образе boot.img, но boot.img – это не само ядро, помимо Kernel’а тут содержатся файлы для инициализации во время загрузки. Итак, чтобы заменить ядро, можно пойти несколькими путями. Если нужное ядро закрыто в .img-файле, то переименовываем его в boot.img, заменяем текущим boot.img, который находится в «кухне» и заменяем модули, если они есть.

Если же нужно скопировать Kernel из одного образа boot.img в другой, то в «Advanced options» выбираем «unpack boot.img» из папки «any folder» (то есть, любой). Новый boot.img копируем в эту папку, извлекаем сам Kernel (zImage). Выбираем опцию «unpack a boot.img from your working folder». Будет создана папку BOOT-EXTRACTED. Копируем zImage из нового boot.img в данную папку (BOOT-EXTRACTED). Выбираем опцию «Re-pack the boot.img». Теперь boot.img, который находится в рабочей папке, имеет новое ядро. Не забываем перенести модульные файлы, если они также входят в «упаковку».

Если новое ядро само по себе, а не находится внутри boot.img (то есть Kernel в виде zImage или boot.img), то делаем следующее. В меню «Advanced options» выбираем пункт «unpack the boot.img» из рабочей директории. Копируем файл Kernel в созданную папку BOOT-EXTRACTED, переименовываем его в zImage. Выбираем пункт в «кухне» «re-pack the boot.img». Теперь boot.img в рабочей папке имеет новый Kernel. Если ядро идет в комплекте с другими файлами, вроде .ko-файлов для папки /system, то их также нужно скопировать в соответствующую директорию.

В создаваемую прошивку можно добавить свои собственные приложения по желанию. Для этого можно скопировать их по пути рабочая директория/system/app, разумеется, с заменой. Или же, устанавливаем их в папку data. Для этого в «Advanced options» выбираем пункт «Add /data/app functionality», после чего будет создана папка «рабочая директория/data/app», куда и копируем нужные нам приложения. Отметим, что не все программы одинаково хорошо «вшиваются» в ROM, например Dr.Web просто отказывается запускаться после прошивки устройства.