Учимся использовать 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 (совместимая с «кухней» версия находится по ссылке — перед установкой 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 просто отказывается запускаться после прошивки устройства.