» Мануалы

Настройка и твики init.d

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

Для работы твиков нужно, чтобы Android-устройство поддерживало init.d, а также установленный BusyBox. Естественно, для всего этого потребуется Root-доступ. Поддержку init.d можно эмулировать с помощью Script Manager или mcTweaker, активировав соответствующие пункты в данных программах. Стоит отметить, что в mcTweaker уже реализовано множество твиков для Android-устройств. В кастомных прошивках многие из скриптов-твиков могут быть предустановленны, так же как и BusyBox. Напомним, что любые манипуляции с системными файлами нужно проделывать с осторожностью. Не забывайте делать резервные копии – это гарантия, что вы в любой момент сможете «откатить» любые изменения.

Созданные скрипты-твики помещаем в папку system/etc/init.d. Для добавления, удаления или редактирования твиков удобно использовать Root Explorer.

Если папки init.d у вас нет, то, скорее всего, скрипты работать не будут. Любой скрипт начинается со строчки:

#!/system/bin/sh

После чего вставляется, собственно, код твика, например вот так:

            echo «500» > /proc/sys/vm/dirty_expire_centisecs

echo «1000» > /proc/sys/vm/dirty_writeback_centisecs

Внимание! Каждый скрипт-твик нужно оформлять в виде отдельного файла, много скриптов в один файл писать не рекомендуется. Файл скрипта можно назвать как угодно, но из рациональных рассуждений лучше дать такое название, чтобы потом было понятно, для чего же он, собственно, предназначен.

Твики для улучшения стабильности и скорости вашего интернет соединения:

echo «0» > /proc/sys/net/ipv4/tcp_timestamps;

echo «1» > /proc/sys/net/ipv4/tcp_tw_reuse;

echo «1» > /proc/sys/net/ipv4/tcp_sack;

echo «1» > /proc/sys/net/ipv4/tcp_tw_recycle;

echo «1» > /proc/sys/net/ipv4/tcp_window_scaling;

echo «5» > /proc/sys/net/ipv4/tcp_keepalive_probes;

echo «30» > /proc/sys/net/ipv4/tcp_keepalive_intvl;

echo «30» > /proc/sys/net/ipv4/tcp_fin_timeout;

echo «404480» > /proc/sys/net/core/wmem_max;

echo «404480» > /proc/sys/net/core/rmem_max;

echo «256960» > /proc/sys/net/core/rmem_default;

echo «256960» > /proc/sys/net/core/wmem_default;

echo «4096, 16384, 404480» > /proc/sys/net/ipv4/tcp_wmem;

echo «4096, 87380, 404480» > /proc/sys/net/ipv4/tcp_rmem;

Скрипты для улучшения производительности и лучшего использования памяти виртуальной машиной:

echo «4096» > /proc/sys/vm/min_free_kbytes

echo «0» > /proc/sys/vm/oom_kill_allocating_task;

echo «0» > /proc/sys/vm/panic_on_oom;

echo «0» > /proc/sys/vm/laptop_mode;

echo «0» > /proc/sys/vm/swappiness

echo «50» > /proc/sys/vm/vfs_cache_pressure

echo «90» > /proc/sys/vm/dirty_ratio

echo «70» > /proc/sys/vm/dirty_background_ratio

Твики для ядра, иногда могут немного увеличить производительность системы:

echo «8» > /proc/sys/vm/page-cluster;

echo «64000» > /proc/sys/kernel/msgmni;

echo «64000» > /proc/sys/kernel/msgmax;

echo «10» > /proc/sys/fs/lease-break-time;

echo «500, 512000, 64, 2048» > /proc/sys/kernel/sem;

Скрипты, которые позволяют увеличить время автономной работы:

echo «500» > /proc/sys/vm/dirty_expire_centisecs

echo «1000» > /proc/sys/vm/dirty_writeback_centisecs

Твик, который может улучшить скорость считывания данных с карты памяти за счет увеличения её кэша:

echo «2048» > /sys/devices/virtual/bdi/179:0/read_ahead_kb;

Скрипт для дефрагментации файлов без данных:

for i in

`find /data -iname «*.db»`

do

sqlite3 $i `VACUUM;`;

done

Скрипт для отключения записи лог-файлов:

rm /dev/log/main

Твик для настройки порогов, при которых происходит выгрузка приложений из оперативной памяти в случае её нехватки:

echo «2048, 3072, 6144, 15360, 17920, 20480» > /sys/module/lowmemorykiller/parameters/minfree

Скрипт-твинк для управления кэшем:

LOOP=`ls -d /sys/block/loop*`;

RAM=`ls -d /sys/block/ram*`;

MMC=`ls -d /sys/block/mmc*`;

for j in $LOOP $RAM

do

echo «0» > $j/queue/rotational;

echo «2048» > $j/queue/read_ahead_kb;

done

Твики, которые способны в некоторых случаях улучшить производительность центрального процессора вашего устройства:

SAMPLING_RATE=$(busybox expr `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency` * 750 / 1000)

echo 95 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold

echo $SAMPLING_RATE > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate

Скрипт, переносящий dalvik-кэш в раздел cache, что несколько разгружает раздел data:

CACHESIZE=$(df -k /cache | tail -n1 | tr -s ` ` | cut -d ` ` -f2)

if [ $CACHESIZE -gt 80000 ]

then

echo «Large cache detected, moving dalvik-cache to /cache»

if [ ! -d /cache/dalvik-cache ]

then

busybox rm -rf /cache/dalvik-cache /data/dalvik-cache

mkdir /cache/dalvik-cache /data/dalvik-cache

fi

 

busybox chown 1000:1000 /cache/dalvik-cache

busybox chmod 0771 /cache/dalvik-cache

 

# bind mount dalvik-cache so we can still boot without the sdcard

busybox mount -o bind /cache/dalvik-cache /data/dalvik-cache

busybox chown 1000:1000 /data/dalvik-cache

busybox chmod 0771 /data/dalvik-cache

else

echo «Small cache detected, dalvik-cache will remain on /data»

fi

Скрипт для удаления всякого «мусора» с накопителя, вроде временных файлов:

#remove cache, tmp, and unused files

rm -f /cache/*.apk

rm -f /cache/*.tmp

rm -f /data/dalvik-cache/*.apk

rm -f /data/dalvik-cache/*.tmp

 

if [ -e /data/system/userbehavior.db ]

then

rm -f /data/system/userbehavior.db

fi

 

if [ -d /data/system/usagestats ]

then

chmod 400 /data/system/usagestats

fi

 

if [ -d /data/system/appusagestats ]

then

chmod 400 /data/system/appusagestats

fi

 

#remove main log

if [ -e /dev/log/main ]

then

rm -f /dev/log/main

fi

Следующие твики переназначают приоритеты стандартных процессов в системе. Это позволяет несколько увеличить плавность и комфорт работы с пользовательским интерфейсом. Перед использованием данных скриптов лучше на всякий случай проверить названия соответствующих процессов именно в вашем устройстве:

renice -20 `pidof com.android.phone`

renice -19 `pidof com.android.inputmethod.latin`

renice -19 `pidof com.swype.android.inputmethod`

renice -17 `pidof com.android.systemui`

renice -9 `pidof com.android.settings`

renice -9 `pidof com.android.vending`

renice -6 `pidof com.sec.android.app.camera`

renice -6 `pidof com.sec.android.app.fm`

renice -6 `pidof com.google.android.apps.maps`

renice -4 `pidof com.google.android.apps.googlevoice`

renice -3 `pidof android.process.media`

В целом, ничего страшного в использовании скриптов-твиков нет, главное, как всегда, делать резервные копии всех изменяемых файлов и системы в целом.