Настройка и твики 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`
В целом, ничего страшного в использовании скриптов-твиков нет, главное, как всегда, делать резервные копии всех изменяемых файлов и системы в целом.