3 CONF_FILE="/sdcard/hero.user.conf";
11 cc_backingswap=/dev/block/mmcblk0p3
12 CC_DEVICE=/dev/block/ramzswap0
15 linux_swap_partition=/dev/block/mmcblk0p3
20 dirty_expire_centisecs=3000
21 dirty_writeback_centisecs=500
22 dirty_background_ratio=5
33 linux_swap_file_size=32;
34 linux_swap_file=/sdcard/swap.file;
39 echo "/system/sd/userinit.sh [-s|-c config.file|-i]"
42 echo "Sets system configuration based on the paratermers"
43 echo "that listed in /system/sd/user.conf"
45 echo " -s: check configuration status and cross"
46 echo " verifiction with user configurations "
47 echo " -c config.file: use user parameters that defined"
48 echo " in config.file "
49 echo " -i: Current system settings and info "
62 -s) STATUS_CHK=1;shift;
64 -c) CONF_FILE=$2; shift;shift;
66 -i) DISP_SYS_INFO=1; shift;
76 if [ ! -e ${CONF_FILE} ]; then
83 # reads user specfic parameters
86 if [ -e ${CONF_FILE} ]; then
88 ### clean windows format if needed
89 if [ "`grep -c
\r $CONF_FILE`" != "0" ]; then
96 COMMENTS=$(echo $inputline | grep "#" | wc -l);
97 COMMENT2=$(echo $inputline | grep "#" | awk -F"#" '{print $1}');
98 [[ $COMMENTS -eq 1 ]] && [[ -z "$COMMENT2" ]] && continue
101 [[ -z "$inputline" ]] && continue
103 inputline=$(echo $inputline | awk -F"#" '{print $1}');
105 # check begin of configurations
106 BEGIN_CHK=$(echo $inputline | grep "{" | wc -l);
107 END_CHK=$(echo $inputline | grep "}" | wc -l);
109 if [ $MATCH -eq 0 ]; then
110 if [ ${BEGIN_CHK} -eq 1 ] ; then
112 GROUP=$(echo $inputline | grep "{" | awk -F"{" '{print $1}');
113 GROUP_PARS="${GROUP}_pars=\""
117 if [ ${END_CHK} -eq 1 ]; then
119 if [ $GROUP != "custom_shells" ]; then
120 GROUP_PARS="$GROUP_PARS\""
124 if [ $GROUP == "custom_shells" ]; then
125 #inputline=$(echo $inputline | sed -e 's/;//g');
126 #inputline=$(echo $inputline | sed -e 's/"/\"/g');
127 custom_shells_pars="$custom_shells_pars #"$inputline" "
130 PAR=$(echo $inputline | awk -F"=" '{print $1}');
131 if [ $(echo $inputline | grep _en | wc -l) -eq 0 ]; then
132 GROUP_PARS="$GROUP_PARS $inputline "
140 LAST_LINE_CHK=`tail -1 $CONF_FILE | grep "}" | wc -l`
141 if [ ${LAST_LINE_CHK} -eq 1 ] && [ $MATCH -eq 1 ]; then
143 GROUP_PARS="$GROUP_PARS\""
147 # checking compcache version
148 # if [ -e /system/bin/rzscontrol ]; then
150 # CC_STATUS_FLAG="rzscontrol ${CC_DEVICE} -s";
154 CC_STATUS_FLAG="cat /proc/ramzswap";
158 # overwrite swapiness
159 if [ ${compcache_en} -eq 1 ] ; then
160 swappiness=${swappiness};
166 if [ ${STATUS_CHK} -eq 1 ] || [ ${DISP_SYS_INFO} -eq 1 ]; then
167 echo === user.conf ===
168 echo "*** general ***"
169 #echo general=$general
172 #echo compcache_pars=$compcache_pars
173 echo "*** CompCache ***"
174 #echo compcache=$compcache
175 echo compcache_en=$compcache_en
176 echo cc_memlimit=$cc_memlimit
177 echo cc_disksize=$cc_disksize
178 echo cc_backingswap_en=$cc_backingswap_en
179 echo cc_backingswap=$cc_backingswap
181 echo "*** Swap File ***"
182 echo swap_file_en=$swap_file_en
183 echo linux_swap_file_size=$linux_swap_file_size
184 echo linux_swap_file=$linux_swap_file
186 echo "*** Linux Swap ***"
187 #echo linux_swap_pars=$linux_swap_pars
188 #echo linux_swap=$linux_swap
189 echo linux_swap_en=$linux_swap_en
190 echo linux_swap_partition=$linux_swap_partition
193 #echo sys_vm_pars=$sys_vm_pars
195 echo sys_vm_en=$sys_vm_en
196 echo swappiness=$swappiness
197 echo page_cluster=$page_cluster
198 echo laptop_mode=$laptop_mode
199 echo dirty_expire_centisecs=$dirty_expire_centisecs
200 echo dirty_writeback_centisecs=$dirty_writeback_centisecs
201 echo dirty_background_ratio=$dirty_background_ratio
202 echo dirty_ratio=$dirty_ratio
203 echo vfs_cache_pressure=$vfs_cache_pressure
204 echo overcommit_memory=$overcommit_memory
205 echo overcommit_ratio=$overcommit_ratio
211 # try to optimize call aswering
216 renice -18 `pidof com.android.mms`
217 renice 5 `pidof com.google.process.gapps`
218 renice -18 `pidof com.android.phone`
219 renice -18 `pidof android.process.media`
220 renice -18 `pidof mediaserver`
221 renice -16 `pidof com.htc.launcher`
222 renice -15 `pidof com.htc.music`
229 CC_ON=$(lsmod | grep ramzswap | wc -l);
230 if [ $STATUS_CHK -eq 0 ] && [ ${CC_ON} -ge 1 ];
232 swapoff ${CC_DEVICE};
233 #rm -fr ${CC_DEVICE};
235 #CC_ON=$(lsmod | grep ramzswap | wc -l);
236 #if [ ${CC_ON} -ge 1 ]; then
237 # echo unable to remove compcache modules
246 if [ $STATUS_CHK -eq 1 ] && [ ${compcache_en} -eq 1 ]; then
248 echo === CompCache status ===
249 echo CompCache version ${CC_VERSION}
250 SYS_VAL=`$CC_STATUS_FLAG | grep DiskSize | awk -F" " '{print $2}'`
251 CC_ON=$(lsmod | grep ramzswap | wc -l);
253 if [ ! -z $SYS_VAL ] && [ -e ${CC_DEVICE} ] && [ ${CC_ON} -ge 1 ]; then
254 echo Compcache enabled
256 echo !!!ERROR Compcache disabled
257 dmesg | grep ramzswap | tail -10
260 for i in $compcache_pars;
262 USER_VAL=$(echo $i | awk -F"=" '{print $2}');
263 USER_PAR=$(echo $i | awk -F"=" '{print $1}');
264 if [ $USER_PAR == "cc_disksize" ] && [ ${cc_backingswap_en} -eq 0 ] ; then
266 USER_VAL=$((${USER_VAL}*1024));
267 SYS_VAL=`$CC_STATUS_FLAG | grep ${USER_PAR} | awk -F" " '{print $2}'`
268 echo "CompCache: $USER_PAR "$SYS_VAL"(system) "$USER_VAL"(user)"
270 elif [ $USER_PAR != "cc_disksize" ] && [ ${cc_backingswap_en} -eq 1 ] ; then
271 if [ $USER_PAR == "cc_memlimit" ]; then
273 USER_VAL=$((${USER_VAL}*1024));
274 SYS_VAL=`$CC_STATUS_FLAG | grep ${USER_PAR} | awk -F" " '{print $2}'`
275 echo "CompCache: $USER_PAR "$SYS_VAL"(system) "$USER_VAL"(user)"
276 elif [ $USER_PAR == "cc_backingswap" ] && [ ${CC_NEW_DECT} -eq 1 ]; then
277 USER_PAR="BackingSwap"
278 SYS_VAL=`$CC_STATUS_FLAG | grep ${USER_PAR} | awk -F" " '{print $2}'`
279 echo "CompCache: $USER_PAR "$SYS_VAL"(system) "$USER_VAL"(user)"
282 SYS_VAL=`$CC_STATUS_FLAG | grep ${USER_PAR} | awk -F" " '{print $2}'`
283 echo "CompCache: Backing_swap "$USER_VAL" , size $SYS_VAL"
289 # backing swap detection is still missing
293 echo === CompCache status output ===
297 elif [ $compcache_en -eq 1 ]; then
300 cc_disksize=$((${cc_disksize}*1024));
301 CC_DISKSIZE_FLAG="disksize_kb=${cc_disksize}";
302 cc_memlimit=$((${cc_memlimit}*1024));
303 CC_MEMSIZE_FLAG="memlimit_kb=${cc_memlimit}";
304 CC_BACKINGSWAP_FLAG="backing_swap=${cc_backingswap}";
307 if [ ${cc_backingswap_en} -eq 1 ] && [ -e ${cc_backingswap} ]; then
311 CC_BACKINGSWAP_FLAG="";
314 # if [ ${CC_NEW_DECT} -eq 0 ]; then
316 mknod /dev/block/ramzswap0 b 253 0
317 [ $? -eq 0 ] || fail "Failed to create the block device"
319 insmod /lib/modules/lzo_compress.ko
320 insmod /lib/modules/lzo_decompress.ko
321 insmod /lib/modules/xvmalloc.ko
322 insmod /lib/modules/ramzswap.ko ${CC_DISKSIZE_FLAG} ${CC_MEMSIZE_FLAG} ${CC_BACKINGSWAP_FLAG};
323 echo insmod /lib/modules/ramzswap.ko ${CC_DISKSIZE_FLAG} ${CC_MEMSIZE_FLAG} ${CC_BACKINGSWAP_FLAG};
326 # if [ ! -z ${CC_DISKSIZE_FLAG} ]; then CC_DISKSIZE_FLAG="--${CC_DISKSIZE_FLAG}"; fi;
327 # if [ ! -z ${CC_MEMSIZE_FLAG} ]; then CC_MEMSIZE_FLAG="--${CC_MEMSIZE_FLAG}"; fi;
328 # if [ ! -z ${CC_BACKINGSWAP_FLAG} ]; then CC_BACKINGSWAP_FLAG="--${CC_BACKINGSWAP_FLAG}"; fi;
330 # rzscontrol ${CC_DEVICE} ${CC_DISKSIZE_FLAG} ${CC_MEMSIZE_FLAG} ${CC_BACKINGSWAP_FLAG} --init;
332 # echo "rzscontrol ${CC_DEVICE} ${CC_DISKSIZE_FLAG} ${CC_MEMSIZE_FLAG} ${CC_BACKINGSWAP_FLAG} --init";
335 echo "${swappiness}" > /proc/sys/vm/swappiness
337 [ $? -eq 0 ] || fail "Failed to turn on the swap"
339 elif [ $compcache_en -eq 0 ]; then
346 if [ ! -e ${linux_swap_file} ] && [ ${swap_file_en} -eq 1 ]; then
347 linux_swap_file_size=$((${linux_swap_file_size}*1024));
348 echo "Creating swap file: ${linux_swap_file}"
349 dd if=/dev/zero of=${linux_swap_file} bs=1024 count=${linux_swap_file_size}
350 mkswap ${linux_swap_file}
351 if [ -e ${linux_swap_file} ]; then
352 echo "SWAP file "${linux_swap_file}" created "
354 echo "ERROR!!! Unable to create swapfile "${linux_swap_file}""
356 elif [ -e ${linux_swap_file} ] && [ ${swap_file_en} -eq 1 ]; then
358 elif [ -e ${linux_swap_file} ] && [ ${swap_file_en} -eq 0 ]; then
360 echo Remove "${linux_swap_file}"
361 rm ${linux_swap_file}
369 LINUX_SWAP_ON=$(cat /proc/swaps | grep ${linux_swap_partition} | wc -l);
370 if [ $STATUS_CHK -eq 0 ] && [ ${LINUX_SWAP_ON} -eq 1 ]; then
371 swapoff ${linux_swap_partition};
372 echo swapoff ${linux_swap_partition};
379 if [ $STATUS_CHK -eq 1 ] && [ ${linux_swap_en} -eq 1 ]; then
381 echo === Linux Swap status ===
382 for i in $linux_swap_pars;
384 USER_VAL=$(echo $i | awk -F"=" '{print $2}');
385 USER_PAR=$(echo $i | awk -F"=" '{print $1}');
386 if [ $USER_PAR == "linux_swap_partition" ]; then
387 if [ ! -n ${USER_VAL} ]; then
388 echo !!! Linux SWAP error :${USER_VAL} is not a device node;
390 LINUX_SWAP_ON=$(cat /proc/swaps | grep ${USER_VAL} | wc -l);
391 if [ ${LINUX_SWAP_ON} -ne 1 ]; then
392 echo !!! Linux SWAP error: Linux swap is not enabled;
394 echo Linux SWAP enabled on ${USER_VAL}
399 elif [ ${linux_swap_en} -eq 1 ] && [ ${cc_backingswap_en} -eq 0 ]; then
402 if [ -n ${linux_swap_partition} ] && [ ${swap_file_en} -eq 0 ]; then
403 echo mkswap ${linux_swap_partition};
404 mkswap ${linux_swap_partition};
406 echo ${swappiness} > /proc/sys/vm/swappiness;
407 echo swapon ${linux_swap_partition};
408 swapon ${linux_swap_partition};
409 elif [ ${linux_swap_en} -eq 0 ] ; then
417 if [ $STATUS_CHK -eq 1 ] && [ ${sys_vm_en} -eq 1 ]; then
419 echo === VM status ===
420 for i in $sys_vm_pars;
422 USER_VAL=$(echo $i | awk -F"=" '{print $2}');
423 USER_PAR=$(echo $i | awk -F"=" '{print $1}');
424 if [ $USER_PAR == "page_cluster" ]; then USER_PAR=page-cluster; fi;
425 SYS_VAL=`cat /proc/sys/vm/"$USER_PAR"`
426 if [ $USER_VAL -ne "$SYS_VAL" ] || [ -z $SYS_VAL ]; then
427 echo "ERROR!!! Set VM: $USER_PAR - "$SYS_VAL"(system) "$USER_VAL"(user)"
429 echo "Set VM: $USER_PAR - "$SYS_VAL"(system) "$USER_VAL"(user)"
433 elif [ ${sys_vm_en} -eq 1 ] && [ ${sys_vm} -eq 1 ];
435 echo ${page_cluster} > /proc/sys/vm/page-cluster;
436 echo ${laptop_mode} > /proc/sys/vm/laptop_mode;
437 echo ${dirty_expire_centisecs} > /proc/sys/vm/dirty_expire_centisecs;
438 echo ${dirty_writeback_centisecs} > /proc/sys/vm/dirty_writeback_centisecs;
439 echo ${dirty_background_ratio} > /proc/sys/vm/dirty_background_ratio;
440 echo ${dirty_ratio} > /proc/sys/vm/dirty_ratio;
441 echo ${vfs_cache_pressure} > /proc/sys/vm/vfs_cache_pressure;
442 echo ${overcommit_ratio} > /proc/sys/vm/overcommit_ratio;
443 echo ${overcommit_memory} > /proc/sys/vm/overcommit_memory;
444 echo ${swappiness} > /proc/sys/vm/swappiness;
451 if [ ${DISP_SYS_INFO} -eq 1 ]; then
459 echo === ${CC_STATUS_FLAG} ===
465 echo === VM configurations ===
480 cmd=`echo $custom_shells_pars | cut -d "#" -f $i`
481 if [ -z "$cmd" ]; then
500 if [ ${STATUS_CHK} -eq 0 ] && [ $renice -eq 1 ]; then
501 renicerloop > /dev/null 2>&1 &