1. 先对设备降级处理
2. 在降级的时候,装好盒子的驱动;
3. 安装 USB_Burning_Tool V2.1.6 烧录软件和 libusb-win32 驱动(设备管理器 -> 添加过时设备);
4. 找根HDMI线连接电视机;
5. 插上盒子的USB线和电源线,到这一步,盒子与电脑通过USB相连,盒子与电视机通过HDMI相连,盒子电源插上,电视机里有内容;
6. 打开“进入线刷模式.bat”脚本,输入盒子的IP地址,但别按回车、别按回车、别按回车;
7. 打开 USB_Burning_Tool,固件校验、去掉2个勾,别点开始、别点开始、别点开始;
8. 切换到第6步的界面,按回车!这个时候电视机会黑屏(关键点);
9. 马上,立刻切换到第7步的界面,按开始!这时候就会进入烧录模式,进度条开始滚动;
10. 烧录完成,拔USB线、电源线。
本地新建文件 android.hardware.usb.host.xml。
<permissions>。
<feature name="android.hardware.usb.host"/>。
</permissions>。
使用adb push 到 /system/etc/permissions。
adb push C:\Users\Yanfulei\Desktop\useb\android.hardware.usb.host.xml /system/etc/permissions。
下载 core_hardware.xml 文件并修改。
Android手机为handheld_core_hardware.xml平板为tablet_core_hardware.xml。
编辑handheld_core_hardware.xml文件。
增加<feature name="android.hardware.usb.host"/>。
重新将文件push回去
adb push C:\Users\Yanfulei\handheld_core_hardware.xml /system/etc/permissions。
由于公司的产品,导致我在Linux下写usb通信的代码出现了许多的问题,最后发现这些设备只能通过控制传输来操作设备,所以后面的问题就迎刃而解了。现在贴上当时在QT下写的代码,以防日后再碰到此类问题的时候翻查。
还有在QT下使用libusb库的时候一定要在(项目名.pro)文件加上:
[cpp] view plain copy。
INCLUDEPATH += /usr/include/libusb-1.0 。
LIBS += -L"/usr/lib/x86_64-linux-gnu" -lusb-1.0 。
否则程序无法找到该库的路径。
[cpp] view plain copy 。
libusb_device **devs; 。
libusb_device_handle *dev_handle; 。
libusb_context *ctx=NULL; 。
struct libusb_device_descriptor desc; 。
int r;
ssize_t cnt; 。
r=libusb_init(&ctx); 。
if(r<0)
{
//printf("init error"); 。
QMessageBox::about(this,"haha","initialerror"); 。
return ; 。
}
libusb_set_debug(ctx,3); 。
//cnt=libusb_get_device_list(ctx,&devs); 。
dev_handle=libusb_open_device_with_vid_pid(ctx,VID,PID); 。
if(dev_handle==NULL) 。
QMessageBox::about(this,"haha","open my dev error"); 。
else
QMessageBox::about(this,"haha","open my dev success"); 。
//libusb_free_device_list(devs,1); 。
if(libusb_kernel_driver_active(dev_handle,0)==1) 。
{
QMessageBox::about(this,"haha","kernel driver active"); 。
if(libusb_detach_kernel_driver(dev_handle,0)==0) 。
QMessageBox::about(this,"haha","kernel driver detached"); 。
}
r=libusb_claim_interface(dev_handle,0); 。
if(r<0)
{
QMessageBox::about(this,"haha","cannot claim interface"); 。
return ; 。
}
QMessageBox::about(this,"haha","claimed interface"); 。
// start use this usb 。
unsigned char dataOut[0x30]={0}; 。
dataOut[0]=0x00; 。
dataOut[1]=0x02; 。
dataOut[2]=0x08; 。
dataOut[3]=0x00; 。
dataOut[4]=0x02; 。
dataOut[5]=0x00; 。
dataOut[6]=0xb2; 。
dataOut[7]=0x30; 。
dataOut[8]=dataOut[2]^dataOut[3]^dataOut[4]^dataOut[5]^dataOut[6]^dataOut[7]; 。
//r=libusb_interrupt_transfer(dev_handle,LIBUSB_ENDPOINT_OUT, dataOut,9, &actual_length, 0); 。
//r=libusb_bulk_transfer(dev_handle,LIBUSB_ENDPOINT_OUT,dataOut,9,&actual_length,5000); 。
//此设备必须用控制传输 。
r=libusb_control_transfer(dev_handle, 0x21, 0x09, 0x0300, 0x00, dataOut+1, 0x20, 1000); 。
unsigned char dataRead[0x30]={0}; 。
r=libusb_control_transfer(dev_handle, 0xa1, 0x01, 0x0300, 0x00, dataRead, 0x20, 1000); 。
if(r<0)
{
QMessageBox::about(this,"haha","transfer data error"); 。
}else
{
QMessageBox::about(this,"haha","transfer data success"); 。
}
//release everything 。
r=libusb_release_interface(dev_handle,0); 。
libusb_attach_kernel_driver(dev_handle,0); 。
libusb_close(dev_handle); 。
libusb_exit(ctx);。
usbburningtool安装不了。
1. 安装USB_Burning_Tool,去该软件的安装文件夹里,如果你是安装在C盘的话,就是下图的这个地方,如果你不知道你安装在哪里,你可以右键该软件快捷方式。
2. 在上图,你可以看到,有Libusv-win32 bin-1.2.6.0,打开它,会看到libusb-win32-bin-README,这个就是教学文件,不过是英文的,。
3. 这段话的意思是说,如果系统是64的,你需要去x86 的文件夹,复制libusb0_x86.dll去c:\Windows\syswow64\ (说明:32位系统,请。
.首先确保你的盒子一定是新小米盒子,盒子底部的型号标识为“MDZ-06-AA”(“新小米盒子”,即小米盒子标准版)
1.resources文件夹下的数据都是来源casablanca.img文件,采用的是Linux下的文件分割命令而来的,命令为split。
-b
512M
casablanca.img,是1.3.36内测版的;
2.由于盒子主板上有个开关,需要打开,盒子连接电脑才能被识别出来,这个开关位于HDMI和2.5毫米AV/音频线缆的中间,有3个触点,请使用导线连接从HDMI数的第2和第3触点,连接好后请先使用USB线缆连接电脑才接上电源线;
3.由于此工具是32位的,确保使用32位的操作系统,推荐仅仅使用XP和win7的32位操作系统;
4.盒子通过USB线缆连接电脑后,注意观察是否发现了新的硬件,打开电脑的设备管理器去看看,如果发现了新的硬件,电脑一般都是无法识别的,那么请你给这个硬件安装驱动,AmlogicusbBurningdriver就是驱动,安装好后,会发现设备管理器识别该硬件为libusb-win32。
devices对应的WorldCub。
Devices;
5.然后打开ImageBurnTool.exe文件进行刷机操作,看看是否正常连接了设备,一切就绪后进入后点击配置,导入配置,选择resources文件夹下的。
config_progress.xml即可,然后点击“开始”就可以进行刷机了。
6.刷机完成后,盒子的指示灯等会出现白色闪烁,工具提示100%,并没有出现异常情况,点击“停止”以停止刷机,然后,断开电源,断开第2和第3触点的连接,盒子正常连接显示器后,通电即可。
注意:针对新小米盒子指示灯出现微亮,连接显示器没有显示,无法进入Recovery。
由于刷机后可能无法更新到最新的系统版本,所以需要在Recovery。
模式后刷机,刷机办法在“更新系统”文件夹中看到有“update.zip”和"xiaomi_update"2个文件,请将复制到U盘中,然后使用UTG线缆连接盒子,然后进入盒子的Recovery模式就会自动刷机并清除全部数据(xiaomi_update就是用于自动刷机和清除数据的脚本),如果你的盒子在通过上面6个步骤后正常开机进入到系统中后,你可以将U盘通过OTG线缆连接盒子后,按下盒子的菜单键选择“重启”,然后同时按住“主页”和“菜单键”,直到盒子重启,并持续10秒左右,那么盒子就会自动刷机的,当然还有第2个办法是U盘通过OTG线缆连接盒子后,一手同时按住“主页”和“菜单键“,一手负责盒子插上电源(最好2个人操作)
链接:
http://pan.baidu.com/s/1qWMASpQ。
密码: