Створюємо самостійно прошивку
Далі можемо прописати будь-який текст, який буде виведений на екран пристрою, наприклад, про творця прошивки і цілях її створення.
Налаштовуємо смугу прогресу під час установки прошивки, наприклад, ось так:
Після цього слід демонтувати такі диски, як 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.»);