Поиск по сайту

Как в ядро Андроид добавить поддержку init.d

вкл. . Опубликовано в Android - Общее


Как в ядро Андроид добавить поддержку init.d


Как в ядро Андроид добавить поддержку init.d. В Android возможно встроить различные скрипты и твики которые начнут работать еще в процессе загрузки системы, для это нужна поддержка ядром init.d, но как ее добавить? Очень просто!

Более детально про init.d можете прочитать в wiki, если коротко, то с помощью данной системы инициализации, можно улучшить с помощью скриптов скорость работы 3G интернета, продлить время работы устройства от одного заряда аккумулятора, влиять на работу процессора и многое другое. Скрипты можно найти в интернет…

Что необходимо чтобы добавить поддержку init.d в Android?

Способ 1. ОС Windows

  1. Компьютер на ОС Windows (7/8/10)
  2. Ядро boot.img от вашего смартфона или планшета Android
  3. Скачать и распаковать архив с утилитой Android Image Kitchen
  4. Скачать и установить Notepad ++

Способ 2. ОС UBUNTU (Linux)

  1. Компьютер с ОС UBUNTU
  2. Ядро boot.img от вашего смартфона или планшета Android

Инструкция как в ядро Android добавить поддержку init.d

Способ 1. ОС Windows

1. Ядро boot.img поместить рядом в папку Android Image Kitchen 

Как в ядро Андроид добавить поддержку init.d

2. Перетянуть ядро на BAT-скрипт unpackimg.bat, после чего ядро будет разобрано

3. Открыть папку ramdisk и найти файл init.rc, после чего открыть его через Notepad ++

Как в ядро Андроид добавить поддержку init.d

Добавить после service bootanim /system/bin/bootanimation …. следующие стороки:

# Execute files in /etc/init.d during boot
service sysinit /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d
class late_start
user root
group root
oneshot

Как в ядро Андроид добавить поддержку init.d

5. Сохранить документ, закрыть Notepad ++, вернуться в папку Android Image Kitchen

6. Запустить Bat-скрипт repackimg.bat после чего будет созданно новое ядро image-new.img

Как в ядро Андроид добавить поддержку init.d

7. Готовое ядро прошить через Fastboot

 

Способ 2. ОС Ubuntu

 Подготовка

Установим пакет встраивающий открытие терминала в файловом менеджере

1. Открываем терминал и вводим следующую команду (с версии Ubuntu 15.10 терминал уже встроен в файловый менеджер Nautilus)

Для 32х разрядных систем:

sudo apt-get install nautilus-open-terminal:i386

Для 64х разрядных систем:

sudo apt-get install nautilus-open-terminal

2. После чего выполнить команду перезапуска файлового менеджера

nautilus -q

3. Установить пакет необходимый для работы с ядром Android

sudo apt-get install abootimg

В текстовом редакторе Gedit снять галочку с параметра «создание резервной копии»

Как в ядро Андроид добавить поддержку init.d

Работа с ядром

1. Создайте в папке home (Домашняя папка) папку с любым удобным именем и переместите туда ядро Android — boot.img. ( В примере будет указана папка kernel)

Как в ядро Андроид добавить поддержку init.d

2. Перейдите в папку kernel, в любом пустом месте нажмите правую кнопку мыши и выбрать «Открыть в терминале»

3. В открывшемся терминале введите команду:

abootimg -x boot.img

Как в ядро Андроид добавить поддержку init.d

После чего в папке kernel вы увидите что появились новые файлы (ядро распаковано)

Как в ядро Андроид добавить поддержку init.d

4. Создадим новую папку (назовем ее rw) внутри папки kernel, в терминале пишем

mkdir rw

и далее пишем команду для перехода в нее

cd rw

Как в ядро Андроид добавить поддержку init.d

5. Пишем команду в терминале для дальнейшей распаковки раздела initrd.img

zcat ../initrd.img | cpio -i

Как в ядро Андроид добавить поддержку init.d

6. После чего в папке rw вы обнаружите множество файлов

Как в ядро Андроид добавить поддержку init.d

7. Найдите и откройте файл init.rc

Как в ядро Андроид добавить поддержку init.d

8. В конце файла добавьте следующие строки

# Execute files in /etc/init.d during boot
service sysinit /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d
class late_start
user root
group root
oneshot

и сохраните файл и выйдете с него

Как в ядро Андроид добавить поддержку init.d

9. В терминале выполняем сборку файла initrd.img, пишем команду

find . | cpio -o -H newc | gzip > ../initrd.img

10.  Возвращаемся обратно в папку kernel, для этого в терминале  пишем

cd ..

11. Собираем ядро Android с внесенными изменениями

abootimg --create boot.img -k zImage -r initrd.img

и после еще одну команду

abootimg --create boot.img -f bootimg.cfg -k zImage -r initrd.img

Если получаете ошибку что ядро стало большим:

boot.img: updated is too big for the Boot Image

тогда собираем с такой командой

 abootimg --create boot.img -k zImage -r initrd.img
 abootimg --create boot.img -f bootimg.cfg -k zImage -r initrd.img -c "bootsize=размер_что_в_ошибке"

Ядро Android с поддержкой init.d собрано! Далее вам необходимо прошить!

Как проверить поддерживает ли ядро init.d?

1. Установите Busybox
2. Через любой терминал (с помощью ПК или приложение) введите команду:

 grep busybox /init.rc

3. Если появиться ответ со строкой:

 service sysinit /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d 

Значит все работает как надо, ядро поддерживает init.d

Где должна быть создана папка init.d в Android для добавления скриптов?

1. Скачайте приложение Root Browser

2. Установите Busybox

3. В приложение Root Browser перейдите в раздел /system/etc

4Создайте папку init.d

5. Задайте права доступа для папки (Permissions) — rwxr-xr-x или 07555 или буквой «П»

Как в ядро Андроид добавить поддержку init.d

6. Откройте текстовый файл конфигурации build.prop находящийся в корне раздела /system и дописать строку:

 sys.initd=1

Перезагрузите Android и все готово!