Створюємо самостійно прошивку

Далі можемо прописати будь-який текст, який буде виведений на екран пристрою, наприклад, про творця прошивки і цілях її створення.

Налаштовуємо смугу прогресу під час установки прошивки, наприклад, ось так:

Після цього слід демонтувати такі диски, як data, cache і system.

Відключивши, зазначені диски (блоки) можна і потрібно повністю форматувати.

format ( «rfs», «EMMC», «/ dev / block / Block_name»);

RFS - це файлова система, можна вказати також EXT4 замість неї, а Block_name - назва блоку, відповідно. Через термінал можна дізнатися, що саме і куди монтується, використовуючи наступні команди:

su
mount> /sdcard/dv.log

Після форматування, демонтувати блоки необхідно монтувати назад.

mount ( «rfs», «EMMC», «/ dev / block / Block_name1», «/ data»);

mount ( «rfs», «EMMC», «/ dev / block / Block_name2», «/ system»);

mount ( «rfs», «EMMC», «/ dev / block / Block_name3», «/ cache»);

Копіюємо вміст папки data в прошивці в папку data вже на пристрої (якщо, звичайно, в прошивці є що копіювати).

set_perm_recursive (1000, 1000, 0771, 0644, «/ data / app»);

Після цього створюємо символічні посилання на відповідні папки.

Призначаємо права доступу блоку system, а також bin. в тому числі видаємо права для Root, якщо він є - в більшості випадків є, і закінчуємо видачу прав доступу всьому, що тільки можна.

set_perm_recursive (0, 0, 0755, 0644, «/ system»);

set_perm (0, 3003, 06755, «/ system / bin / ip»);

set_perm (0, 3003, 02750, «/ system / bin / netcfg»);

set_perm (0, 3004, 02755, «/ system / bin / ping»);

set_perm (0, 0, 06755, «/ system / bin / su»);

set_perm_recursive (1002, 1002, 0755, 0440, «/ system / etc / bluetooth»);

set_perm (0, 0, 0755, «/ system / etc / bluetooth»);

set_perm (1000, 1000, 0640, «/system/etc/bluetooth/auto_pairing.conf»);

set_perm (3002, 3002, 0444, «/system/etc/bluetooth/blacklist.conf»);

set_perm (1002, 1002, 0440, «/system/etc/dbus.conf»);

set_perm_recursive (0, 0, 0755, 0555, «/ system / etc / ppp»);

set_perm_recursive (0, 0, 0755, 0644, «/ system / vendor / firmware»);

set_perm (0, 0, 06755, «/ system / xbin / su»);

Також, якщо ядро ​​прошивки підтримує виконання init.d. то вказуємо його виконання в сценарії.

set_perm_recursive (0, 0, 0755, 0755, «/system/etc/init.d»);

Приступаємо до прошивці самого ядра, найчастіше воно має назву zImage або boot.img. Додатково виводимо на екран інформацію про це.

ui_print ( «Kernel now flashing.»);