» Прошивки

RK29kitchen

RK29kitchen – программный пакет, предназначенный для модификации прошивок Android-девайсов на основе процессоров Rockchip RK2918. При помощи него можно удобно и достаточно легко автоматизировать процесс различных операций по модификации программного обеспечения. В данной статье мы разберемся с основными вопросами касательно данной полезной утилиты.

Для начала, отметим, что RK29kitchen работает на операционных системах семейства Linux. Разработчик использует в качестве программной среды OpenSUSE 11.4/12.2, а для тестов применяется планшет китайского производства Cube U9GT2. Windows на данный момент не поддерживается из-за сложностей работы с разделом /system, а точнее – из-за отсутствия поддержки работы с файловыми системами, которые используются в Linux и Android – ext2/ext3/ext4.

Что может RK29kitchen? Во-первых, распаковывать .img-файлы прошивок (вида update.img – используя img mode и RKBatchTool), прошивки из набора файлов (вида RK29xxLoader.bin Image/boot.img Image/system.img, в Image mode, используя RKTool). Также пакет располагает возможностью изменять название девайса, размеры основным системных разделов (parameter file), получать Root-права (и устанавливать superuser), устанавливать busybox в /system/xbin, а также создавать symlinks для утилит busybox, как это может busybox pro. RK29kitchen также может выбирать, устанавливать или удалять системные приложения по выбору, изменять размер файла-образа system.img, настраивать параметры, указанные в файле build.prop, создавать образ для обновления update.img. Помимо всего прочего, предусмотрено создание собственных плагинов, автоматизированных скриптов на основе установленной библиотеки плагинов. Загрузить и сохранить в виде образа прошивку с устройства также не составит особого труда.

Пользовательский интерфейс создан на основе утилиты dialog. Каталог bin, то есть бинарные утилиты, можно скомпилировать следующей командой:

            # cd src/

# make all install

Зависимости включают: libusb-1.0, libusb-1.0-devel, libssl, libssl-devel, dialog, sudo, gcc. В процессе работы активно используется sudo. Крайне рекомендуется, для избежания лишний проблем, использовать беспарольный режим. Также можно запускать утилиту от Root.

Перейдем к основным понятиям, используемым программным пакетом. Рабочий каталог – это директория, в которой производятся все операции распаковки, модификации и последующей сборки прошивки обратно. Рабочий каталог отображен в верхней части экрана. Состояние – режим (mode) работы с прошивкой, также отображено в верхней части экрана и может иметь такие значения:

Undefined – неопределенное состояние, когда отсутствуют файлы с прошивкой.

Image – режим работы с нераспакованной прошивкой Image.

Img file – режим работы с прошивкой типа img.

Касательно типов прошивок, то, как мы только что сказали, бывает два их типа, это:

Image – частично распакованная прошивка, которая состоит из ряда файлов: Image/boot.img, parameter, Image/system.img и других (Moage, evolution).

Img file – стандратный формат Rockchip-прошивок, в основном это стандартные стоковые прошивки.

В состав RK29kitchen входят такие приложения:

menu.sh – главное приложение Rockchip-«кухни».

flashdump.sh – приложение, способное загрузить («слить») ROM с подключенного устройства.

batchImgRepack.sh и batchImageRepack.sh – готовые примеры скриптов, выполняющих распаковку, модификацию и конечную сборку прошивки.

apk (symlink на plugins/installApps/apk) – директория, содержащая приложения, которые можно сделать предустановленными в прошивке.

apkblacklist.txt – текстовый файл, который содержит «черный» список приложений, впоследствии автоматически удаляемых в процессе модификации прошивки.

apkwhitelist.txt – противоположность списка в предыдущем файле. Приложения, перечисленные здесь, не предлагаются для удаления. Естественно, это по большей части составляющие системы и gapps.

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

menu.sh

mkdir ~/work/v1/ && cd ~/work/v1 && cp ~/tmp/fw0.09.img . && ~/RK29kitchen/menu.sh

mkdir ~/work/v1/ && cp ~/tmp/fw0.09.img ~/work/v1 && cd ~/RK29kitchen && ./menu.sh ~/work/v1

Теперь перейдем к разбору главного меню утилиты, итак:

Select work directory – поменять используемый рабочий каталог.

Extract image files – выполнить распаковку файла(ов) прошивки для последующей работы.

Mount /system to Image/system – выполнить монтирование файловой системы system.

Umount /system from Image/system — выполнить демонтирование файловой системы system.

Check filesystem /system – выполнить проверку файловой системы system на ошибки с их последующим исправлением.

Edit parameter file — редактирование файл конфигурации parameter: изменить размеры разделов ROM (/cache/data(userdata)/system).

Resize system.img (/system partition) — изменение размера файловой системы system:

Use size from file «parameter» — используя размер из конфигурационного файла parameter.

Set value — ввод значения непосредственно.

Update file «parameter» by system.img file size — обновить значение,указанное в файле parameter, на основе текущего размера файловой системы.

Change bootloader – изменение бутлоадера (загрузчика).

System apps – изменение списка предустановленных в прошивке системных приложений:

Remove system apps — удаление ненужных приложений, используя «черный» и «белый» списки.

Install busybox — установка busybox в /system/xbin и создание symlink’ов на все утилиты из его соства.

Install su – установка Root-доступ (su и Superuser).

Install apps as system – добавить приложения из директории apk как системные.

Modify build.prop – редактирование параметров в файле build.prop:

Change default timezone – изменение часового пояса по умолчанию из списка.

Change default locale – установка языка и страны по умолчанию.

Change default dateformat – установка стандартного формата отображения даты.

Change default wifi scan interval – установка стандартного интервала сканирования Wi-Fi сетей.

Make update.img image file – создание нового файла update.img на основе всех проделанных изменений.

Flashing update to tablet – установка прошивки на подключенное устройство (автор указывает данный пункт пока как экспериментальную опцию).