[Android Software/Hacking General [Developers Only]] Donphillipe:
Can't install CWM on Blu Studio 6.0 HD

Problem: Can't install CWM on MT6582

Reason: Says .... Boot already patched

- First I got the phone rooted using iRoot2 but this left me with a Chinese recovery menu which I am not happy with and would eventually really like to learn how to get the Blu Studio English version back

- After much work, I got the MTK Tools talking to the phone and I finally got a complete backup, but I get an error message

when trying to install CWM "- Boot already patched , skip creation new file "

BACKGROUND INFORMATION:

Here is the console from MTK tools

Hardware : MT6582
Model : STUDIO6.0HD
Build number : BLU-D650a-i-V25-GENERICK
Build date UTC : 20140717-035318
Android v : 4.4.2
Baseband v: RF9810_GSM4_W1258_MT6582_MP_V0.0.2_S0609, 2014/06/09 15:34
Kernel v : 3.4.67 (mudingyu@compiler5-desktop) (gcc version 4.7 (GCC) ) #1 SMP Thu Jul 17 11:49:58 CST 2014
Uboot build v : -----
LCD Driver IC : 1-otm1283a_dsi_vdo_hlt_hd

[I][Below use successfully use "BACKUP" with the green indicator for "rooted"]
[warning: this process won't complete without a SD card in the phone][/I]

In system already available: Android Debug Bridge version 1.0.31

--->>> Connect to device <<<---
--- The preservation folder on the computer: C:\Users\admin\Downloads\MtkDroidTools v2.5.3\backups\STUDIO6.0HD_140717_backup_141013-002322\
--- In phone files will remain in the folder: /mnt/media_rw/sdcard0/clockworkmod/backup/141013-002322/
--- scatter is write to the file:
C:\Users\admin\Downloads\MtkDroidTools v2.5.3\backups\STUDIO6.0HD_140717_backup_141013-002322\MT6582_Android_scatter.txt
--- We keep blocks:
- preloader_and_dsp
- MBR
- EBR1
- nodl_pro_info
- nvram.bin
- userdata_nvram_only.tar
- nodl_protect_f.ext4.img
- nodl_protect_f.ext4.tar
- nodl_protect_s.ext4.img
- nodl_protect_s.ext4.tar
- nodl_seccfg
- lk.bin
- boot.img
- recovery.img
- secro.img
- nodl_misc
- logo.bin
- nodl_expdb
- system.ext4.img
- system.ext4.tar
--- task is complete ---

[I][Now below we are trying to use "Recovery and boot" "To use boot from phone", the following error is seen]
[/I]
- Boot kernel version =3.4.67
- Boot allready patched , skip creation new file
--- test recovery OK !
It is created: C:\Users\admin\Downloads\MtkDroidTools v2.5.3\recovery\STUDIO6.0HD_140717__recovery_141013-003841.img
--- ERROR :Recovery doesn't match by the size
--- task is complete ---

[I][Note a file STUDIO6.0HD_140717__recovery_141013-003841.img was [B]NOT[/B] created above][/I]

Note: For Blu 5.5/6.0 support, download the latest Android USB drivers from Google http://developer.android.com/sdk/win-usb.html# and alter the file android_winusb.inf to include your hardware if it is not supported. I created a copy: android_winusb - BLU.inf. It contains this (notice the lines added for BLU devices):

;
; Android WinUsb driver installation.
;
[Version]
Signature = "$Windows NT$"
Class = AndroidUsbDeviceClass
ClassGuid = {3F966BD9-FA04-4ec5-991C-D326973B5128}
Provider = %ProviderName%
DriverVer = 08/28/2014,11.0.0000.00000
CatalogFile.NTx86 = androidwinusb86.cat
CatalogFile.NTamd64 = androidwinusba64.cat

[ClassInstall32]
Addreg = AndroidWinUsbClassReg

[AndroidWinUsbClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-1

[Manufacturer]
%ProviderName% = Google, NTx86, NTamd64

[Google.NTx86]

;Google Nexus One
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01

;Google Nexus S
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E21
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E22&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E23
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E24&MI_01

;Google Nexus 7
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E42&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&MI_01

;Google Nexus Q
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_2C10
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_2C11

;Google Nexus (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE6&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE7

;Google Glass
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9001&MI_01

;Project Tango (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4D00
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D02&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D04&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D06&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D07

[B];BLU STUDIO 5.5 S
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&REV_0216&MI_00
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_00

;BLU STUDIO 6.0 HD
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&REV_0216&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01[/B]

[Google.NTamd64]

;Google Nexus One
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01

;Google Nexus S
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E21
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E22&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E23
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E24&MI_01

;Google Nexus 7
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E42&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&MI_01

;Google Nexus Q
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_2C10
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_2C11

;Google Nexus (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE6&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE7

;Google Glass
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9001&MI_01

;Project Tango (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4D00
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D02&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D04&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D06&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D07

[B];BLU STUDIO 5.5 S
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&REV_0216&MI_00
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_00

;BLU STUDIO 6.0 HD
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&REV_0216&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01[/B]

[USB_Install]
Include = winusb.inf
Needs = WINUSB.NT

[USB_Install.Services]
Include = winusb.inf
AddService = WinUSB,0x00000002,WinUSB_ServiceInstall

[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys

[USB_Install.Wdf]
KmdfService = WINUSB, WinUSB_Install

[WinUSB_Install]
KmdfLibraryVersion = 1.9

[USB_Install.HW]
AddReg = Dev_AddReg

[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}"

[USB_Install.CoInstallers]
AddReg = CoInstallers_AddReg
CopyFiles = CoInstallers_CopyFiles

[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"

[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll

[DestinationDirs]
CoInstallers_CopyFiles=11

[SourceDisksNames]
1 = %DISK_NAME%,,,\i386
2 = %DISK_NAME%,,,\amd64

[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll = 1
WdfCoInstaller01009.dll = 1

[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll = 2
WdfCoInstaller01009.dll = 2

[Strings]
ProviderName = "Google, Inc."
SingleAdbInterface = "Android ADB Interface"
CompositeAdbInterface = "Android Composite ADB Interface"
SingleBootLoaderInterface = "Android Bootloader Interface"
WinUSB_SvcDesc = "Android USB Driver"
DISK_NAME = "Android WinUsb installation disk"
ClassName = "Android Device"

The problem requiring this file be altered for hardware which is not supported by the native drivers is that Win 7 won't accept the driver inf file unless it contains the hardware ID of your phone. To find the hardware ID of your phone (if it is other than the 2 BLU devices I have added above or the built in Google ones), go to Windows Device Manager, right click on the Android with the yellow exclamation point, right click and select Properties. select Details Tab, and select Hardware IDs in the pull down window. Write them down and then construct your own appended xxxxxx.inf file with your hardware ID in it. Save it and then go back to Windows Device Manager, right click on the yellow (!) driver for your phone, chose update driver, Browse my computer ..., Let me Pick, All Devices, Next, Have Disk, Browse and then locate and select your xxxxxx.inf file. Then when presented the list of one or more of the "Android ADB Interface ......." is listed, select one of them and then click Next, then respond YES to continue when it tells you the driver is unsigned. Now you should be able to connect your MT65xx device to MTK Tools and they should communicate.

Additional Note: To obtain the correct hardware ID of your android device from Windows Device Manager you must have the phone attached with USB Debuggin enabled. Without USB Debugging enabled, the device appearing in Device Manager will likely NOT have the exclamation mark (!) and thus have provide a hardware ID that will be different than the one when USB Debugging is enabled. So, be sure to obtain the hardware ID with USD Debug enabled when you go to create your own xxxxx.inf file with lines added for your device.