• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Can't exit from recovery menu

IS the android recovery menu stored in the bootloader?
Does the bootloader corresponds to the file boot.img on SP FLASH TOOL?

I have an alcatel 7047 xpop c9 (with MT6582M processor) . It power on and automatically goes to android recovery menu and there is no way to let it exit from this mode or to power off because the battery is not removable.
It seems that the problem appeared during an upgrade, because the battery discharged during the process.
Today i tried to use SP FLASH TOOL version 5 in order to write the flash, included preloader, boot, recovery etc., by using a backup for this phone found on internet. After flashing everything i tried to reboot the phone but each time the same menu is shown.

Question: does the boot.img file overwrites the bootloader? How could I understand what is the problem? Could I enable some print or log, even remote logging, in order to better understand what is going wrong?
Yesterday i also tried the upgrade tool from alcatel website (it reloads all the original files but the result is the same).

EDIT: i was able to open the case, remove the battery and replug it, but the problem is still the same: Reconnecting the battery and powering the phone, it automatically goes in the recovery menu.
 
The recovery module is distinct from the bootloader.
Boot.img is the android kernel, not the bootloader or the recovery.

If a phone boots straight into recovery that usually means that the Android ROM is corrupted (or possibly the kernel). So did you reflash absolutely everything, including system?
 
today i had the time to retry: i downloaded CWM img file for my phone, and i successful flashed it as "recovery file" on "sp flash tools". At the end the phone continuously reboot in recovery mode, but now i have CWM installed!! very good.

then i downloaded custom rom from russian website and I installed it using CWM(from sd card). At the end i rebooted the phone but it continues to run in recovery (CWM) menu. is it there any way to understand what is wrong?
In the past i flashed all the files (backup found on internet) but the result was the same..
 
Any error message when installing the ROM? And you are certain the ROM was for that exact model of phone, that you got a good download, and there were no special instructions for installation?
 
No error during install. The ROM install procedure uses cwm, requests to format flash, then it requests to install, from SD card, the zip file. The ROM is for my phone. The download was good.
I would like to go deep In the analysis.. Any hint?
 
Have you tried wiping the cache partition? Factory reset? Does your phone have an unbricking method you can apply?

Googling about bootloop and recovery, I've seen reports of similar symptoms with Nexus 9. I've seen posts here on AF from LG users with the same problem after official OTA updates. My (basic and perhaps wrong) understanding of this issue is that the phone requires a reboot to complete the update. The update process has been interrupted for whatever reasons and the commands to tell the bootloader to boot into recovery (to finish the process) aren't cleaned up. This could happen when a custom recovery is installed (because the custom recovery doesn't understand the OTA commands), but I suppose other things could have also caused failure.

Certain commands and data used by recovery are usually stored in the cache partition. So, I wonder whether wiping cache could break the loop in your case?

With some LG devices (perhaps Qualcomm Snapdragon platform), one fix is to wipe the "fota" and "misc" partitions. The "fota" on my LG phone is normally empty and is probably used to temporarily store OTA data. The "misc" partition on my LG contains some device-specific data and might be used to save those data to be restored after the update, so I am not sure whether it's completely safe to wipe "misc."

If you know how to save partition images with ADB, you could make necessary backups and investigate. Don't go wiping partitions at will, however. Some partitions are special (and protected) and you could really brick the device if you mess things up. Good luck.
 
<======

SmartPhone Flash Tool is a generic software for flashing Mediatek based phones and tablets. And presumably you used it to flash a ROM, what ROM image did you actually use, was it specifically for the Alcatel/TCL Xpop C9?
 
i tried the Alcatel update tool (i suppose it overwrites everything) and a backup found on internet made with spflash tool (ofcourse it is for my phone). i also tried a custom rom for my phone but nothing changes.
today i read this: http://www.elinux.org/Android_Booting
i understood that the bootloader is the only one to call the recovery.
is it correct?
i think i need to investigate on the bootloader.
correct?
 
which is the bootloader on the sp flash tool? is it the PRELOADER?

this is the scatter file created by mtkdroid tool


############################################################################################################
#
# General Setting
#
############################################################################################################
- general: MTK_PLATFORM_CFG
info:
- config_version: V1.1.1
platform: MT6582
project: MTDTtest
storage: EMMC
boot_channel: MSDC_0
block_size: 0x20000
############################################################################################################
#
# Layout Setting
#
############################################################################################################
- partition_index: SYS0
partition_name: PRELOADER
file_name: preloader.bin
is_download: true
type: SV5_BL_BIN
linear_start_addr: 0x0
physical_start_addr: 0x0
partition_size: 0x1000000
region: EMMC_BOOT_1
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: BOOTLOADERS
reserve: 0x00

- partition_index: SYS1
partition_name: MBR
file_name: MBR
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x1000000
physical_start_addr: 0x0
partition_size: 0x80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS2
partition_name: EBR1
file_name: EBR1
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x1080000
physical_start_addr: 0x80000
partition_size: 0x80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS3
partition_name: PRO_INFO
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0x1100000
physical_start_addr: 0x100000
partition_size: 0x300000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: PROTECTED
reserve: 0x00

- partition_index: SYS4
partition_name: NVRAM
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0x1400000
physical_start_addr: 0x400000
partition_size: 0x500000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: BINREGION
reserve: 0x00

- partition_index: SYS5
partition_name: PROTECT_F
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0x1900000
physical_start_addr: 0x900000
partition_size: 0xA00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: PROTECTED
reserve: 0x00

- partition_index: SYS6
partition_name: PROTECT_S
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0x2300000
physical_start_addr: 0x1300000
partition_size: 0xA00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: PROTECTED
reserve: 0x00

- partition_index: SYS7
partition_name: SECCFG
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0x2D00000
physical_start_addr: 0x1D00000
partition_size: 0x20000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: INVISIBLE
reserve: 0x00

- partition_index: SYS8
partition_name: UBOOT
file_name: lk.bin
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x2D20000
physical_start_addr: 0x1D20000
partition_size: 0x60000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS9
partition_name: BOOTIMG
file_name: boot.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x2D80000
physical_start_addr: 0x1D80000
partition_size: 0x600000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS10
partition_name: RECOVERY
file_name: recovery.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x3380000
physical_start_addr: 0x2380000
partition_size: 0x600000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS11
partition_name: SEC_RO
file_name: secro.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x3980000
physical_start_addr: 0x2980000
partition_size: 0x600000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS12
partition_name: MISC
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0x3F80000
physical_start_addr: 0x2F80000
partition_size: 0x80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: INVISIBLE
reserve: 0x00

- partition_index: SYS13
partition_name: LOGO
file_name: logo.bin
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x4000000
physical_start_addr: 0x3000000
partition_size: 0x300000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS14
partition_name: EBR2
file_name: EBR2
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x4300000
physical_start_addr: 0x3300000
partition_size: 0x80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS15
partition_name: CUSTPACK
file_name: custpack2.img
is_download: true
type: NONE
linear_start_addr: 0x4380000
physical_start_addr: 0x3380000
partition_size: 0x26500000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS16
partition_name: MOBILE_INFO
file_name: mobile_info.img
is_download: true
type: NONE
linear_start_addr: 0x2A880000
physical_start_addr: 0x29880000
partition_size: 0x800000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: INVISIBLE
reserve: 0x00

- partition_index: SYS17
partition_name: EXPDB
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0x2B080000
physical_start_addr: 0x2A080000
partition_size: 0xA00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: INVISIBLE
reserve: 0x00

- partition_index: SYS18
partition_name: ANDROID
file_name: system.img
is_download: true
type: YAFFS_IMG
linear_start_addr: 0x2BA80000
physical_start_addr: 0x2AA80000
partition_size: 0x26500000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS19
partition_name: CACHE
file_name: cache.img
is_download: true
type: YAFFS_IMG
linear_start_addr: 0x51F80000
physical_start_addr: 0x50F80000
partition_size: 0x13900000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS20
partition_name: USRDATA
file_name: data.img
is_download: true
type: YAFFS_IMG
linear_start_addr: 0x65880000
physical_start_addr: 0x64880000
partition_size: 0x7FA80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00

- partition_index: SYS21
partition_name: RSV_OTP
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0xFFFF0200
physical_start_addr: 0xFEFF0200
partition_size: 0x4000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: INVISIBLE
reserve: 0x00

- partition_index: SYS22
partition_name: BMTPOOL
file_name: NONE
is_download: false
type: NONE
linear_start_addr: 0xFFFF00A8
physical_start_addr: 0xFFFF00A8
partition_size: 0x1500000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: false
is_reserved: true
operation_type: RESERVED
reserve: 0x00
 
moreover, no output is printed on the logcat (on my pc i have eclipse installed with the android plugin, then i can see what is printed on the logcat). according to the link that i posted on my previous post, the logcat should print something during the boot process. what can i do now? i am thinking to readback the data from the flash in order to compare bit by bit the content of the memory with the content od the backup found on internet. Or may be a better solution it could be to get another backup from internet but i wasn't able to find one.
 
You get logcat only if the adb daemon has been started and enabled. So that's probably not going to help.

Bootloading is done in stages. The bootloader that loads the "recovery" or "boot" is likely UBOOT/lk.bin. Since it boots to recovery successful, it's fine. So check the "boot" image. I don't know how a partition is referenced on your device, but with adb shell, you should be able verify the boot image written to the partition is the same as the image file.
dd if=<partition> bs=<size of boot.img> count=1 | md5sum
This should give the md5 hash. Compare it with that of the image file, boot.img.

I think the internal memory can be referenced by /dev/block/mmcblk0. If so, to check the partiiton layout:
parted /dev/block/mmcblk0 print
This should show you how the partitions are labeled.

Another idea is to write a recovery image to the "boot" partition. Use a different one than the one you're using so that you can tell them apart if the one in "boot" boots successfully. This might tell you whether the bootloader goes to the recovery partition directly or to the boot partition first (then to recovery after encountering some error).
 
... The bootloader that loads the "recovery" or "boot" is likely UBOOT/lk.bin....

Just a quick pop-in here...it looks like there are two boot-related references from the info @Gaucho1978 posted above:

- partition_index: SYS8
partition_name: UBOOT
file_name: lk.bin
<snip>


- partition_index: SYS9
partition_name: BOOTIMG
file_name: boot.img
<snip>

I don't have any personal knowledge or experience about this particular device, but I do like to read and learn about things discussed in threads like this.

Best of luck, @Gaucho1978 :).
 
ok,
on the phone i actually have cwm recovery.
i flashed the original recovery.img inside the boot partition but it always boot in the cwm recovery.
then i flashed the boot partition found on internet to restore things.
then i readback the flash data for the boot partition on a file on the pc named boot_readback.img
then i compared the file
boot_readback.img with the file boot.img and they are exactly the same.

then i tried to flash the boot.img found on internet on the recovery partition. At that point the smartphone continuously reboots and never show anything apart the logo.
then i reflashed the cwm recovery partition and at least the recovery is working again.

I need a complete backup for this phone made with sp flash tool.....
 
Hmm... So the bootloader goes straight to the recovery partition, but even when you flash boot.img there, it's unable to boot. I wonder what happens with "adb reboot", "adb reboot recovery", and "adb reboot bootloader"?

The UBOOT partition contains the bootloader (the one that contains fastboot and loads Android) since it's written with lk.bin (likely little kernel). Normally it would detect hardware key presses during boot and load the appropriate partition next (BOOTIMG, RECOVERY, or just fastboot). So what happens when you hold vol.up+power from the off state? Anyway, if you're interested in learning about this topic (on the MediaTek platform), I've found:
https://sturmflut.github.io/mediatek/2015/07/05/mediatek-details-little-kernel/
I haven't read it, but it might help you if you are learning about the booting process.

Looking online, I see stock firmware for 7047d (no 7047x), but I don't know if that's your exact model or if it's compatible. I didn't look too hard though, so you probably know better.

Lastly, did Alcatel's Mobile Upgrade tool download the firmware for your device when you tried it?
http://alcatelonetouch.com/global-en/products/smartphones/pop_c9.html#.VjVOCZcy3CJ
 
Hmm... So the bootloader goes straight to the recovery partition, but even when you flash boot.img there, it's unable to boot. I wonder what happens with "adb reboot", "adb reboot recovery", and "adb reboot bootloader"?
I don't know how to use adb since as you told me, the adb is started later. The prompt tells me " no device connected"
The UBOOT partition contains the bootloader (the one that contains fastboot and loads Android) since it's written with lk.bin (likely little kernel). Normally it would detect hardware key presses during boot and load the appropriate partition next (BOOTIMG, RECOVERY, or just fastboot). So what happens when you hold vol.up+power from the off state? Anyway, if you're interested in learning about this topic (on the MediaTek platform), I've found:
https://sturmflut.github.io/mediatek/2015/07/05/mediatek-details-little-kernel/
I haven't read it, but it might help you if you are learning about the booting process.
Pressing vol up + power you get the reboot of the phone
I'll read that link

Looking online, I see stock firmware for 7047d (no 7047x), but I don't know if that's your exact model or if it's compatible. I didn't look too hard though, so you probably know better.

Lastly, did Alcatel's Mobile Upgrade tool download the firmware for your device when you tried it?
http://alcatelonetouch.com/global-en/products/smartphones/pop_c9.html#.VjVOCZcy3CJ
I have the 7047d. I'll search with "stock Fw" keyword.
I tried the Alcatel updater but it is unable to comunicate with the phone. I'm investigating.
 
Last edited:
^^^ Very cool, @WarrantyVoider! (thanks for killing my evening :p ;) :D --I'm still reading through all of the pages and the ones that they link to--seriously, the best info on the little kernel that I've come across so far).

Cheers!
A lot can be learned from source code. The closed-source parts would require some reverse engineering.
There's some information here: http://newandroidbook.com/Articles/aboot.html
There are probably more blogs from various developers, hackers, and engineers --> a lot of learning left to do. :cool:

If you're in the US, hopefully that extra hour helped. ;)
 
I don't know how to use adb since as you told me, the adb is started later. The prompt tells me " no device connected"

Pressing vol up + power you get the reboot of the phone
I'll read that link

I have the 7047d. I'll search with "stock Fw" keyword.
I tried the Alcatel updater but it is unable to comunicate with the phone. I'm investigating.
OK, that was perhaps confusing. You were trying to use adb to get a log from a kernel that wasn't booting. I was talking about getting adb to reboot from a working session, i.e. CWM. I was just wondering where the bootloader takes you when you tell it to take you to another boot mode.

If the phone is powered off, vol.up+power should turn it on and should trigger the bootloader to go into a particular boot mode (if it works). I was wondering which one. So "reboot" doesn't quite make sense, unless you were talking about the phone booting to something unknown and then rebooting by itself.

The firmware I found is here:
http://forum.gsmhosting.com/vbb/f317/alcatel-7047d-pop-c9-arabic-bangladesh-rom-2001905/
Read the thread. Note the advice about "no preloading." (Edit: I meant "no preloader flashing.") If you can do a partial restore, maybe just restore certain partitions to get the phone into a state such that the mobile upgrade tool can recognize and fix it. Of course, if it's an exact match to your model, then it's probably okay for a full restore.
I think maybe there was another link, but at that time I didn't know about Alcatel model numbers and such and now I don't remember where that was. If you need it, I can try to look again. That gsmhosting forum has some info about Alcatel phones, so maybe that's more helpful to you. You're still welcome to ask questions here, of course. Do let us know if you solve your problem though.

Hoping to hear good news from you. Good luck.
 
Last edited:
any reason, good or bad news ? i think ı can help about your problem.

WarrantyVoider gave you a firmware link in previous message, you can use this firmware...
you choose scatter file on sp flash tool. thick all include preloader, choose format all+download and plug usb port. important point : you must install vcom drivers before flash firmware.
 
Last edited:
Back
Top Bottom