Скрипты-твики для init.d
Данные скрипты-твики для init.d призванны улучшить работу гуглофона и настроить его под свои нужды. Для работы твиков необходима поддержка init.d прошивкой вашего аппарата, а также BusyBox. Однако, поддержку init.d можно эмулировать с помощью таких программ как mcTweaker или Script Manager, включив соответствующие пункты в программах. Причем в mcTweaker реализовано множество твиков для вашего аппарата.
Напомню, что в кастомных прошивках BusyBox может быть установлен, да и многие твики уже реализованы!
Все Вы делаете на свой страх и риск! Для манипуляций нужен root-доступ!
Общая информация:
Скрипты-твики необходимо класть по пути /system/etc/init.d/:
Для редактирования/добавления/удаления скриптов я пользовался Root Explorer.
Если у Вас нет папки init.d, то значит скрипты работать не будут 100%!
Каждый файл скрипта начинается со строчки:
1
#!/system/bin/sh
Далее вставляется код твика, например:
1
echo "500" > /proc/sys/vm/dirty_expire_centisecs
2
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
Образец файла скрипта
#!/system/bin/sh
echo "500" > /proc/sys/vm/dirty_expire_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
Каждый твик оформляется отдельным файлом! Все твики в один файл не кладем! Файл скрипта называем по-любому, но так чтобы сами могли распознать их, например, Battery_tweak - твик аккумулятора.
Твики скорости интернет-соединения
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
Твик скорости чтения sd-карты(увеличение кеша карты)
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
Удаление кэша, tmp-файлов и прочего мусора
#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'
В прикрепленном архиве лежат готовые скрипты-твики, которые осталось только закинуть в папку init.d. Нумерация скриптов сохранена!
Все манипуляции над вашим аппаратом лежат на вашей совести! При использовании программ-твикеров типа mcTweaker удаляйте свои пользовательские скрипты да бы избежать неприятных ситуаций и всегда делайте бэкап!