[Android General] peat_psuwit:
You may have applied V6 Supercharger to your phone. And after reboot, you stuck at the boot splash. Reboot once and V6 Supercharger install script tell you that you aren't supercharged. Here is how to fix it. (If you get looped in boot animation, this is NOT your fix. Sorry!)

Depend on your rom, you may have to do one of following:

Open the (rooted) File Manager, open the directory /etc/init.d/ and open file 99SuperCharger. OR

Turn on ADB on your phone, use your computer to pull the file /etc/init.d/99Supercharger by running

adb pull /etc/init.d/99SuperCharger

Edit the file at the almost bottom of the file, change the following code:

if [ "`ps | grep -m 1 [a]ndroid`" ]; then HellzYeah;
else HellzYeah &; fi;

To look like this:

if [ "`ps | grep -m 1 [a]ndroid`" ] || [ $1 = "bypass" ]; then HellzYeah;
else
rm $bootloopcookie
$0 bypass &
fi;

Depend on what you have done on step 1, do the following:

If you use (root) file manager, save the file. Grant the superuser permission if needed. Then browse to /data and delete file !!SuperChargerBootLoopMessage.log. Don't worry if it's not exist.

If you use your computer to edit your file, run the following command:

adb root
adb remount
abd push /path/of/99SuperCharger /etc/init.d/99SuperCharger
adb shell

And inside the adb shell, run:

chmod 755 /etc/init.d/99SuperCharger
rm /data/!!SuperChargerBootLoopMessage.log
exit

Don't worry if file /data/!!SuperChargerBootLoopMessage.log doesn't exist.

And that's it! The V6 Supercharger bootscript is worked as it's designed to. Thanks to zeppelinrox to make this great script.

For one who want to know some technical info (and my assumption of the cause), wait me until tomorow and i'll explain how i found it. read on:

In order to run script in /etc/init.d at boot, the line like this is inserted in init.rc:

on boot
...
# Start the init.d service
exec /system/bin/sysinit

(In case of cm - for example)

But, what does the /system/bin/sysinit do? Just this:

#!/system/bin/sh

export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
/system/bin/logwrapper /system/xbin/run-parts /system/etc/init.d

And this is the real source of problem. For some reason run-parts with logwrapper doesn't move on when you run a shell script function in background. If you scroll up in file 99SuperCharger, you'll found that "HellzYeah" is actually a function. And when it's execute in a boot process, "HellzYeah" will wait for boot process to continue. But run-parts (and the whole boot process) is waiting for the script to finish. You see? A deadlock!

The workaround is to execute function in the other way. What my modification do is re-executing the script with the parameter "bypass" in the background. This way, run-parts will not wait for it anymore. Then, when the script is re-executed, it will detect that it's called with the parameter "bypass". It'll run the function "HellzYeah", wait for boot process to finish, and, when the boot process is finished, supercharge your phone!

(if anyone is reading this, please inform zeppelinrox about this problem. I'm not able to post on the development forum yet.)

(This is my first post in xda. Hopefully it's helpful)