Post Reply

[Guide]How to recover from a bootloop

18th May 2012, 02:41 PM   |  #1  
broodplank1337's Avatar
OP Recognized Contributor / Recognized Developer
Flag Nijmegen
Thanks Meter: 10,024
 
4,940 posts
Join Date:Joined: Nov 2011
Donate to Me
More
Guide: How to Recover from a bootloop

by brooplank1337


This guide will learn you the common ways of fixing a bootloop, how to create a custom CWM Fix-Zip and how to use ADB to recover from a bootloop.


Chapters:

Chapter 1: Finding the cause of the bootloop
Chapter 2: Using a CWM ZIP as solution
Chapter 3: Using ADB as solution



Chapter 1: Finding the cause of the bootloop

Bootloops are mainly caused because system files interfering with each other which causes instability and/or crashes at the boot sequence.
To find the cause of a bootloop you have to think about what you did before getting the bootloop.
Choose one of the following reasons that caused the bootloop for you and try out its solution.



- After flashing a new rom

If you flash a new (base)rom with odin your /data will be kept. This means your old dalvik-cache will be used for the new system files which would result in a bootloop, to fix this problem:

1. Start your phone in CWM Recovery
2. Go to Advanced
3. Choose "Wipe dalvik-cache"
4. Now go to "Mounts & Storage"
5. Choose "Wipe /cache"
6. Reboot your phone


if the problems still exists after doing that and you're sure it's not related to the rom, then you need to do this:

1. Start your phone in CWM Recovery
2. Now go to "Mounts & Storage"
3. Choose "Wipe /data"
4. Choose "Wipe /cache"
5. Reboot your phone



- After restoring a system only backup

This one is actually the same as the above one, since only /system is restored (advanced restore) there is an incorrect dalvik-cache present which will cause the bootloop. perform the same steps as above to solve the problem.


- After installing a Mod / Theme or UOT Kitchen output

When you install a Mod / Theme or UOT Kitchen output and you get a bootloop, you know there is something wrong with the file that you are installing. This is mostly caused by an incorrect BaseROM of the mod/theme, but can also happen if the creator just didn't create it properly.
Wiping dalvik-cache won't be enough to fix this, you will need to open the zip on your computer and look at the files that are installed with the mod/theme. you can do this by looking into the system folder in the zip, there you can find the files that are being installed. for example:

You have installed an Extended Power Menu mod but it causes a bootloop, here is what you do:

1. Open the installation zip with Winrar (Extended Power Menu in this case)
2. Now look inside the "system" folder, in my case I found the framework folder inside the system folder
3. The framework folder contains: android.policy.jar & framework-res.apk, so these are the suspicious files.
4. What you simply do is searching for the original files (from your (base)rom) and drag them into the framework folder (inside winrar)
5. Now it will ask for a compression level, choose "Store" and the archive will be done in seconds.
6. You will need to put the file on your external sdcard using the "Mount USB Storage" option in CWM under "Mounts & Storage"
7. Install the zip just as you did with the mod, you should now be bootloop free, if not reinstall the zip with a mounted /system (Mounts & Storage > Mount /system) (and you can optionally wipe /cache and /dalvik-cache, this will never harm any file/setting.

Q: Ok... but I have no external sdcard.. how to fix it then?
A: Have a look at the "Using ADB as solution" chapter


- After setting wrong permissions

Android is very dependent on the right permissions, if you adjust file permissions incorrectly you could get a bootloop, giving a file to less permissions would break it, but also giving a file to much permissions would break it. most common permissions of system files are:

- 644 (RW-R-R) - (this is best known system permission, it exists in /system/app, /system/framework, /system/etc, /system/lib and allot of seperate files)
- 755 (RWX-RX-RX) - (mainly used for /system/bin)
- 777 (RWX-RWX-RWX) - (used for scripts inside /system/etc/init.d and busybox files)

An easy fix is performing the "Fix permissions" option in CWM under Advanced. be sure to mount the partitions before running the fix. Although this doesn't cover all permissions. have a look at the CWM or ADB chapter to find the solution.



Chapter 2 Using a CWM ZIP as solution


Using the original cwm zip is the easiest way, since the zip is already created for you, you only need to replace the files with the original rom files. You can get those files from the deodex packages for baseroms which are posted on the forums. If you are using an odexed ROM, you can get your files from system.img.ext4 (open the baserom: *.tar.md5 with Winrar and extract system.img.ext4)
Now you can open system.img.ext4 with "DiskInternals Linux Reader". browse to the app/framework directory and extract the needed files from the image file.

Once you got the same files as present in the original CWM zip you can easily drag em into the archive, then choose "store" as compression level. Now finally you need to put it on your sdcard and install it.

If you don't have an external sdcard or you can't reach your internal sdcard (which is very likely when you have a bootloop), you can use ADB to push the zip to your phone, read about how to use ADB in Chapter 3.


Commands for updater-script (located in CWMFIX.zip/META-INF/com/google/android/)

Mount & Install

To mount the system partition:
mount("ext4", "EMMC", "/dev/block/mmcblk0p15", "/system");

To extract the system folder in your zip:
package_extract_dir("system", "/system");

Setting Permissions

To set permissions of an individual file:
set_perm(0, 0, Mod, "File here");

A working example:
set_perm(0, 0, 0644, "/system/build.prop");

To set permissions of a directory:
set_perm(0, 0, Mod, "Dir here without a trailing slash");

Setting Permissions Recursively

To set permissions to all files inside a directory (resursive):
set_perm_recursive(0, 0, 0755, Mod, "Dir here without a trailing slash");

A working example:
set_perm_recursive(0, 0, 0755, 0777, "/system/etc/init.d");






Chapter 3 Using ADB as solution


ADB can be used to access the phone while booting, be aware that some bootloops make it unable to use ADB since they do not go further then the samsung logo.
The only tricky part about using ADB with bootloops is that you have to do it on the right time, this is just after the Galaxy S Plus logo, so just when the bootanimation starts. The easiest way to enter your phone in this part is using a batch script that monitors the state of your device and connects directly when possible.

I use this script for example (requires adb.exe and the 2 dlls)

Code:
@echo off
cd /d %~dp0
echo.
echo Waiting for device...
adb wait-for-device
echo.
adb -d shell stop
adb push mycwmfix.zip /sdcard/mycwmfix.zip
adb reboot recovery
This script will wait for the device to become ready, when it's ready it freeze the device, so the script has more time to push the file (instead of keep rebooting). Then it will push the specified cwmfix zip to your sdcard, and after that it will reboot in recovery so you can install the cwm fix you made.


You can also make an batch script that pushes the files automatically to your phone, here is an example:

Code:
@echo off
cd /d %~dp0
echo.
echo Waiting for device...
adb wait-for-device
echo.
adb -d shell stop
adb -d shell su -c "mount -o remount rw /system"
adb push framework-res.apk /system/framework/framework-res.apk
adb -d shell chmod 644 /system/framework/framework-res.apk
adb push SystemUI.apk /system/app/SystemUI.apk
adb -d shell chmod 644 /system/app/SystemUI.apk
adb reboot
This script will wait for the device to become ready, when it's ready it freeze the device, so the script has more time to push the file (instead of keep rebooting). Then it will push framework-res.apk and SystemUI.apk to the directory it belongs to, after that it changes the permissions of the files to RW-R-R (644) and then it will reboot.



I hope you learned something from this tutorial, when I think I forgot something Ill add it later.
Last edited by broodplank1337; 18th May 2012 at 02:52 PM.
The Following 62 Users Say Thank You to broodplank1337 For This Useful Post: [ View ]
18th May 2012, 02:44 PM   |  #2  
Senior Member
Thanks Meter: 3
 
107 posts
Join Date:Joined: Jul 2008
That's perfect thanks a lot brood
The Following User Says Thank You to knank For This Useful Post: [ View ]
18th May 2012, 02:51 PM   |  #3  
broodplank1337's Avatar
OP Recognized Contributor / Recognized Developer
Flag Nijmegen
Thanks Meter: 10,024
 
4,940 posts
Join Date:Joined: Nov 2011
Donate to Me
More
Quote:
Originally Posted by knank

That's perfect thanks a lot brood

Thanks
The Following 4 Users Say Thank You to broodplank1337 For This Useful Post: [ View ]
3rd March 2013, 06:20 AM   |  #4  
Junior Member
Thanks Meter: 1
 
25 posts
Join Date:Joined: Jan 2013
Quote:
Originally Posted by broodplank1337

Guide: How to Recover from a bootloop

by brooplank1337


This guide will learn you the common ways of fixing a bootloop, how to create a custom CWM Fix-Zip and how to use ADB to recover from a bootloop.


Chapters:

Chapter 1: Finding the cause of the bootloop
Chapter 2: Using a CWM ZIP as solution
Chapter 3: Using ADB as solution



Chapter 1: Finding the cause of the bootloop

Bootloops are mainly caused because system files interfering with each other which causes instability and/or crashes at the boot sequence.
To find the cause of a bootloop you have to think about what you did before getting the bootloop.
Choose one of the following reasons that caused the bootloop for you and try out its solution.



- After flashing a new rom

If you flash a new (base)rom with odin your /data will be kept. This means your old dalvik-cache will be used for the new system files which would result in a bootloop, to fix this problem:

1. Start your phone in CWM Recovery
2. Go to Advanced
3. Choose "Wipe dalvik-cache"
4. Now go to "Mounts & Storage"
5. Choose "Wipe /cache"
6. Reboot your phone


if the problems still exists after doing that and you're sure it's not related to the rom, then you need to do this:

1. Start your phone in CWM Recovery
2. Now go to "Mounts & Storage"
3. Choose "Wipe /data"
4. Choose "Wipe /cache"
5. Reboot your phone



- After restoring a system only backup

This one is actually the same as the above one, since only /system is restored (advanced restore) there is an incorrect dalvik-cache present which will cause the bootloop. perform the same steps as above to solve the problem.


- After installing a Mod / Theme or UOT Kitchen output

When you install a Mod / Theme or UOT Kitchen output and you get a bootloop, you know there is something wrong with the file that you are installing. This is mostly caused by an incorrect BaseROM of the mod/theme, but can also happen if the creator just didn't create it properly.
Wiping dalvik-cache won't be enough to fix this, you will need to open the zip on your computer and look at the files that are installed with the mod/theme. you can do this by looking into the system folder in the zip, there you can find the files that are being installed. for example:

You have installed an Extended Power Menu mod but it causes a bootloop, here is what you do:

1. Open the installation zip with Winrar (Extended Power Menu in this case)
2. Now look inside the "system" folder, in my case I found the framework folder inside the system folder
3. The framework folder contains: android.policy.jar & framework-res.apk, so these are the suspicious files.
4. What you simply do is searching for the original files (from your (base)rom) and drag them into the framework folder (inside winrar)
5. Now it will ask for a compression level, choose "Store" and the archive will be done in seconds.
6. You will need to put the file on your external sdcard using the "Mount USB Storage" option in CWM under "Mounts & Storage"
7. Install the zip just as you did with the mod, you should now be bootloop free, if not reinstall the zip with a mounted /system (Mounts & Storage > Mount /system) (and you can optionally wipe /cache and /dalvik-cache, this will never harm any file/setting.

Q: Ok... but I have no external sdcard.. how to fix it then?
A: Have a look at the "Using ADB as solution" chapter


- After setting wrong permissions

Android is very dependent on the right permissions, if you adjust file permissions incorrectly you could get a bootloop, giving a file to less permissions would break it, but also giving a file to much permissions would break it. most common permissions of system files are:

- 644 (RW-R-R) - (this is best known system permission, it exists in /system/app, /system/framework, /system/etc, /system/lib and allot of seperate files)
- 755 (RWX-RX-RX) - (mainly used for /system/bin)
- 777 (RWX-RWX-RWX) - (used for scripts inside /system/etc/init.d and busybox files)

An easy fix is performing the "Fix permissions" option in CWM under Advanced. be sure to mount the partitions before running the fix. Although this doesn't cover all permissions. have a look at the CWM or ADB chapter to find the solution.



Chapter 2 Using a CWM ZIP as solution


Using the original cwm zip is the easiest way, since the zip is already created for you, you only need to replace the files with the original rom files. You can get those files from the deodex packages for baseroms which are posted on the forums. If you are using an odexed ROM, you can get your files from system.img.ext4 (open the baserom: *.tar.md5 with Winrar and extract system.img.ext4)
Now you can open system.img.ext4 with "DiskInternals Linux Reader". browse to the app/framework directory and extract the needed files from the image file.

Once you got the same files as present in the original CWM zip you can easily drag em into the archive, then choose "store" as compression level. Now finally you need to put it on your sdcard and install it.

If you don't have an external sdcard or you can't reach your internal sdcard (which is very likely when you have a bootloop), you can use ADB to push the zip to your phone, read about how to use ADB in Chapter 3.


Commands for updater-script (located in CWMFIX.zip/META-INF/com/google/android/)

Mount & Install

To mount the system partition:
mount("ext4", "EMMC", "/dev/block/mmcblk0p15", "/system");

To extract the system folder in your zip:
package_extract_dir("system", "/system");

Setting Permissions

To set permissions of an individual file:
set_perm(0, 0, Mod, "File here");

A working example:
set_perm(0, 0, 0644, "/system/build.prop");

To set permissions of a directory:
set_perm(0, 0, Mod, "Dir here without a trailing slash");

Setting Permissions Recursively

To set permissions to all files inside a directory (resursive):
set_perm_recursive(0, 0, 0755, Mod, "Dir here without a trailing slash");

A working example:
set_perm_recursive(0, 0, 0755, 0777, "/system/etc/init.d");






Chapter 3 Using ADB as solution


ADB can be used to access the phone while booting, be aware that some bootloops make it unable to use ADB since they do not go further then the samsung logo.
The only tricky part about using ADB with bootloops is that you have to do it on the right time, this is just after the Galaxy S Plus logo, so just when the bootanimation starts. The easiest way to enter your phone in this part is using a batch script that monitors the state of your device and connects directly when possible.

I use this script for example (requires adb.exe and the 2 dlls)

Code:
@echo off
cd /d %~dp0
echo.
echo Waiting for device...
adb wait-for-device
echo.
adb -d shell stop
adb push mycwmfix.zip /sdcard/mycwmfix.zip
adb reboot recovery
This script will wait for the device to become ready, when it's ready it freeze the device, so the script has more time to push the file (instead of keep rebooting). Then it will push the specified cwmfix zip to your sdcard, and after that it will reboot in recovery so you can install the cwm fix you made.


You can also make an batch script that pushes the files automatically to your phone, here is an example:

Code:
@echo off
cd /d %~dp0
echo.
echo Waiting for device...
adb wait-for-device
echo.
adb -d shell stop
adb -d shell su -c "mount -o remount rw /system"
adb push framework-res.apk /system/framework/framework-res.apk
adb -d shell chmod 644 /system/framework/framework-res.apk
adb push SystemUI.apk /system/app/SystemUI.apk
adb -d shell chmod 644 /system/app/SystemUI.apk
adb reboot
This script will wait for the device to become ready, when it's ready it freeze the device, so the script has more time to push the file (instead of keep rebooting). Then it will push framework-res.apk and SystemUI.apk to the directory it belongs to, after that it changes the permissions of the files to RW-R-R (644) and then it will reboot.



I hope you learned something from this tutorial, when I think I forgot something Ill add it later.

Dear sir,

I tried every possible way to recover my handset but its not working as the permissions for SYSTEM folder are changed and adb cannot read it or write it.
i also tried to pull the original folder and push another new system folder so that the files are accessible but no success.
I also tried flashing boot,recovery,system images but no use.
what would you suggest in such situation as the shell su chmod and all the other files reside into system/bin folder.
please do try to check asap and reply.

thanks in advance
3rd March 2013, 08:51 AM   |  #5  
Xistance's Avatar
Recognized Contributor
Thanks Meter: 3,756
 
958 posts
Join Date:Joined: Dec 2011
Donate to Me
Re: [Guide]How to recover from a bootloop
Quote:
Originally Posted by mat7961

Dear sir,

I tried every possible way to recover my handset but its not working as the permissions for SYSTEM folder are changed and adb cannot read it or write it.
i also tried to pull the original folder and push another new system folder so that the files are accessible but no success.
I also tried flashing boot,recovery,system images but no use.
what would you suggest in such situation as the shell su chmod and all the other files reside into system/bin folder.
please do try to check asap and reply.

thanks in advance

My first advice is to not quote the OP.
Secondly, try to use the adb in recovery mode. If this doesn't work either, use the repartition thread guide to restore your /system partition.

Sent from my GT-I9001 using xda premium
The Following User Says Thank You to Xistance For This Useful Post: [ View ]
19th July 2013, 10:49 AM   |  #6  
gius321's Avatar
Senior Member
Flag Tbilisi
Thanks Meter: 87
 
225 posts
Join Date:Joined: Mar 2013
More
Question pattern unlock, bootloop
I installed some frameworks, after that settings some features not working properly. yesterday i wanted to set pattern unlock and when i set it i immediately got bootloop.. please tell me what to do? should i flash stock setting mod? or something like it? (framework) i have xperia arc s stock 4.0.4 ...
Last edited by gius321; 19th July 2013 at 10:50 AM. Reason: add info
27th July 2013, 10:35 PM   |  #7  
minhthai17's Avatar
Member
Flag Anaheim
Thanks Meter: 6
 
71 posts
Join Date:Joined: Apr 2013
Donate to Me
More
I need HELP, guys! I am having a little problem and idk how to fix this. After flashing Infamous ROM, reboot, everything worked fine, but then I reboot the phone and it stuck in the bootloop, so I went to the TWRP and factory reset, reboot, still stuck in bootloop. So i went back and format data and flash it again. Everything works fine, then i try to reboot and it and stuck and the samsung screen AGAIN! So i went back to the Stock ROM do the same thing, first boot is fine, reboot and it stuck in the Samung Galaxy S4 screen. Any solution guys? I even tried fix permission . Still didntwork. HELP, PLEASE!!
27th July 2013, 10:55 PM   |  #8  
magicw's Avatar
Senior Member
Thanks Meter: 88
 
301 posts
Join Date:Joined: Jan 2013
More
Quote:
Originally Posted by minhthai17

I need HELP, guys! I am having a little problem and idk how to fix this. After flashing Infamous ROM, reboot, everything worked fine, but then I reboot the phone and it stuck in the bootloop, so I went to the TWRP and factory reset, reboot, still stuck in bootloop. So i went back and format data and flash it again. Everything works fine, then i try to reboot and it and stuck and the samsung screen AGAIN! So i went back to the Stock ROM do the same thing, first boot is fine, reboot and it stuck in the Samung Galaxy S4 screen. Any solution guys? I even tried fix permission . Still didntwork. HELP, PLEASE!!

Obviously there is no Infamous ROM for I9001 - you're sure you flashed a ROM that fits to SGS+ please review this and maybe reflash a dedicated ROM.
28th July 2013, 10:13 PM   |  #9  
Senior Member
Thanks Meter: 2,144
 
4,296 posts
Join Date:Joined: Jul 2012
Quote:
Originally Posted by minhthai17

I need HELP, guys! I am having a little problem and idk how to fix this. After flashing Infamous ROM, reboot, everything worked fine, but then I reboot the phone and it stuck in the bootloop, so I went to the TWRP and factory reset, reboot, still stuck in bootloop. So i went back and format data and flash it again. Everything works fine, then i try to reboot and it and stuck and the samsung screen AGAIN! So i went back to the Stock ROM do the same thing, first boot is fine, reboot and it stuck in the Samung Galaxy S4 screen. Any solution guys? I even tried fix permission . Still didntwork. HELP, PLEASE!!

Two questions
1) on which phone did you flash this infamous rom?
2) tried wipe /system and tried it again?
30th July 2013, 12:58 AM   |  #10  
Senior Member
Flag Pescara
Thanks Meter: 1,127
 
1,150 posts
Join Date:Joined: Jan 2013
More
Quote:
Originally Posted by minhthai17

reboot and it stuck in the Samung Galaxy S4 screen.

this forum is for Samsung Galaxy S Plus man.... we can't help you... go in S4 section

Post Reply Subscribe to Thread

Tags
adb, bootloop, cwm, fix, recovery
Previous Thread Next Thread
Thread Tools
Display Modes