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 – установка прошивки на подключенное устройство (автор указывает данный пункт пока как экспериментальную опцию).