Фотогалереи

Услуги

Помощь при использовании сайта

Скрипт в автозапуск Android

Купив свой первый смартфон на базе Google Android мне понадобилось добавить самописный скрипт в автозапуск. Получив права root и пошарившись по файловой системе и увидев знакомый /system/etc/init.d/ я создал скрипт там надеясь на то, что после перезагрузки он автоматически выполнится. Мои ожидания неоправдались и скрипт при загрузке не выполнялся.
Для того чтобы заработало надо создать по вышеназванному пути файл назвав его например 01myscript. Хочу отметить, что скрипты выполняются попорядку, то есть сначала выполняется 01myscript, потом 02myscript и так далее. Созданный файл не должен иметь никакого расширения, (даже .sh), но должен иметь права на исполнение. Права можно дать через Root Explorer или через эмулятор терминала при его наличии в прошивке

su
chmod 755 /system/etc/init.d/01myscript

Примером скрипта может послужить например блокиратор интернет трафика на определенном интерфейсе (wlan0 - Wi - Fi, или vsnet* - EDGE,3G)

#!/system/bin/sh
iptables -F OUTPUT
iptables -A OUTPUT -o vsnet0 -j DROP
exit 0
4.238095
21 голос
Ваша оценка: Нет


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Аватар пользователя anonymous

Автор, спасибо !

Аватар пользователя admin

Даже не верится, что нашлись люди которые пользуются запуском системных служб через стартовые скрипты в Android.

Аватар пользователя anonymous

А у меня в TV-Box Mele A2000 (ICS 4.0) папки init.d не нашлось, а я так надеялся, хотел при запуске шары монтировать. Теперь и не знаю как быть, где там вообще автозапуск храниться....

Аватар пользователя admin

Боюсь не смогу помочь. Во первых у вас ICS, а во вторых каждый вендор сам решает как устройству грузиться. В мире Android вообще многое сугубо индивидуальное в рамках одного устройства.

Аватар пользователя anonymous

А если по данному пути /system/etc/init.d/ нет директории init.d?

Аватар пользователя admin

Создать и попробовать закинуть в нее скрипт. Разумеется с правами на выполнение.

Аватар пользователя anonymous

китаец ctone mtk 6516 ./init.d нету. ладно,создаём, вставляем файл скрипта - обычно это твики. ребут. смотрим - ага выполнятся. ладно. потом было дело всё сносим, ставимся с sd update, так же создаём /init.d и далее, ребут и болт! т.е. насебут- не выполняется, думаеи, смотрим, переставляемся - опять ребут и насебут.
куева куча файлов - походу непонятные конфиги в корне и /system зачем почему -куйпроссышь - где искать? манов нет на фоорумах инфу с ресурсов разработчиков выдают за божественные откровения свыше, хорошо хоть в переводах не лагают....
стандртные твики для 2.2.1 то запускаются те нет хз
короче - если на дестопе самсобрал и вылизал и делать уже нечего - поросёночка уже маловато будет купи зелёного человечка = будешь занимать его увлекательным сексом....
как эта зараза работает - куй ево знает надо пересобирать и как то извлечь конфиги под 6516

Аватар пользователя admin

Во первых брать китайфон -- это моветон. Во вторых - скорее всего что то не так делаете второй раз если после повторной установки не работают одни и те же скрипты.

В следующий раз бери какого нибудь производителя который хоть исходники выкладывает с README внутри.

Аватар пользователя anonymous

Как от рута запускать?

su -c "mount -o bind /mnt/sdcard1/gameloft /mnt/sdcard0/gameloft"

не прокатываеть. Any ideas?

Сначала сказал бы где это ты выполняешь, в терминале или при загрузке. И писать кавычки не надо. Если скрипт, то он должен начинаться с

#!/bin/bash

А лучше с

#!/bin/sh
Аватар пользователя anonymous

Задача в том чтобы монтировать папки при старте системы.

скрипт /system/etc/init.d/01mounts

#!/system/bin/sh
su -c "mount -o bind /mnt/sdcard1/gameloft /mnt/sdcard0/gameloft"
exit 0

без ковычек в su -c "mount -o bind /mnt/sdcard1/gameloft /mnt/sdcard0/gameloft" даже из терминала корректно не монируется