小米2 32G开发版 无损分区调整

最近小米2 总是报告系统空间不足,一般的应用的安装,升级都搞不定了,网上搜索了一下,找到了无损分区的调整办法,本文对于步骤进行了精简,原文有些过于繁琐了。

    • 准备工作环境工作环境

1.下载Mi2 Repartition 解压到“C:\Mi2 Repartition”下(D盘也可以)。其中含Android命令行工具、WinHex十六进制编辑软件、userdata分区挂载可使用空间调整工具resize_data,以及处理过程中的backup备份文件夹。(精简了DiskGenius,因为实际上是用不到的,原文过于折腾了

2.下载高通 Qualcomm HS-USB QDLoader设备驱动 Qualcomm_HS-USB_QDLoader_Driver 之所以不用小米的 MiFlash ,原因在于驱动里面的qcCoInstaller.dll 经常莫名奇妙的丢失,导致驱动安装不上,一直报错。(注意目前这个驱动已经可以通过Windows Update正常获得,因此不再需要

3.下载支持Linux Ext4格式无损调整分区(前移后挪双向均支持)的软件:Paragon Hard Disk Manager 14 Pro (原作者的百度网盘分享),如果不能正常下载可以使用本站下载

4.如果是64位系统,则重启机器,启动时候按住 F8,选择“禁用驱动程序签名强制”(注意目前这个驱动已经可以通过Windows Update正常获得,因此不再需要禁用驱动签名,更新一下驱动即可正常使用了)

2014072209105448067

5.确保手机电池电量充足,最好是满电状态。

  • 开始调整分区

    1.正常开机状态下,在“设置-其他高级设置-开发者选项”中打开“USB调试”。电脑端按键盘Win+R(限Windows系统。Mac OS请出门左转),输入cmd回车,打开命令行窗口,输入cd C:\Mi2 Repartition回车。然后按顺序运行下图中的三条命令。注意运行命令时手机屏幕上是否提示操作权限,请给予允许:
    #注释:运行命令时手机必须已获得完整root权限。开发版自带完整 root权限,如运行命令时手机屏幕上提示有程序被禁用root权限,进入“安全中心-权限管理-ROOT权限管理”中允许给予root权限再重新运行命 令。稳定版需自行处理获得完整root权限。稳定版系统如何获取完整root权限的方法请论坛自学

如下图所示032535z2tw2pvuvc7w5gzg.png.thumb.jpg

2.关机,按住音量-键,再短按开机键,进入fastboot启动环境。然后运行以下命令:

#注释:本命令在fastboot状态下擦除手机aboot逻辑区块中的数据
#注释:去掉aboot模块后,重开机才能已Qualcomm MMC Storage模式在PC上加载手机内部存储器</span

032536p17x96die67z6n11.png.thumb.jpg

然后长按开机键约10秒,听到USB设备断开并重新加载的声音后松开电源键。此时会安装并加载Qualcomm HS-USB QDLoader设备驱动,让设备进入MMC Storage内部存储模式

#注释:需安装小米手机驱动(MiFlash线刷工具软件中集成),否则无法安装Qualcomm HS-USB QDLoader设备驱动

#注释:如安装Qualcomm HS-USB QDLoader驱动后,在Windows设备管理器中发现此设备前有黄色感叹号无法启动的情况,需在设备管理器中禁用此设备,断开并重新连接USB后, 在设备管理器中启用此设备,即可正常加载。此问题是PC系统驱动环境引起。

3.打开Paragon Hard Disk Manager 14,首次运行出现如下画面,选择箭头指向的按钮点击即可。Paragon_Hard_Disk_Manager_14_First

为了规避出现软件报告调整分区时发现cross-link files而拒绝操作报失败的情况,请按下图所示操作,强制让软件忽略文件系统完整性检查,即可顺利调整分区大小(图为HDM 15版本,与教程中使用的14版操作上无区别)

235012tjjd7zpjpzjqe7qj.png.thumb.jpg

开始调整分区,划出用来合并到系统分区的空闲分区

Paragon_Hard_Disk_Manager_14_Split_Free_Space

然后执行合并系统分区的操作(下图是网络图片,跟上图有些差别,分区信息仅仅作为示意图

Paragon_Hard_Disk_Manager_14_Change_System

同样点击 "Apply"之后等待合并空闲分区完成。

4.打开WinHex,在软件主界面按Ctrl-D打开硬盘克隆功能,严格按下图操作,然后确认写入操作。写入完毕后aboot分区数据即已恢复,可长按电源键约10秒正常开机进入系统了
#注释:“357410”是aboot分区在MMC存储器中的起始扇区号。这个aboot分区起始扇区号357410可在DiskGenius软件中选中aboot分区,在分区参数中看到,可自行验证。2和2S所有型号都相同,都填这个数

WinHex_Disk_Clone

032605j3se0riip6r93dj3.png.thumb.jpg

5.将之前放进sdcard中的resize_data文件移动到根目录/system/bin/,试验中发现,/system 是只读的,无法拷贝进入,此时可以拷贝到 /目录下面也可以,两者分区相同,因此理论上面调整起来应该是一样的。(注意,目前尝试的小米2的特殊版本,到Android 5.0之后,已经不需要这个程序,系统启动后会自动调整分区

参考链接


Mi2(S)系列全机型无差别无损无痛不丢数据重分区教程

Windows机器上程序崩溃dump(UMDF Crash Dump)

最近接到用户的投诉,在Windows 7 32位的机器上,UMDF驱动频繁崩溃,关键是SetUnhandledExceptionFilter 设置的异常过滤竟然一丁点用都没有,查询了半天,才注意到UMDF框架把UnhandledException接管了,你完全是无力反抗。

然后去MSDN上查询,根据Determining Why the Reflector Terminated the Host Process微软文档,WER会在“%windir%\system32\LogFiles\WUDF”目录下面生成DUMP文件,测试之后发现,是否生成完全依赖WER的心情,捣鼓到后来,干脆完全不生成DUMP文件了,另外他偶尔生成的也都是MiniDump ,作用有限。“Users\All Users\Microsoft\Windows\WER\ReportQueue”目录下面的报告数据,也是时有时无,阴晴不定。

继续Google,微软文档 Collecting User-Mode Dumps 设置如下的注册表

这样设置之后,正常的应用都可以在D:\Temp 下面生成崩溃记录,但是WUDFHost.exe 就是不能生成崩溃DUMP,貌似是WUDFHost.exe 用其他低权限用户账户运行,导致没办法生成转储文件。

继续Google,ProcDump进入视野,着实是个好的工具软件,非常好用。于是写了个批处理文件来跟踪WUDFHost.exe的异常。

应用崩溃的时候,会在当前目录下面生产对应的.dmp文件。

本地下载

下面为简单的用法例子

VisualSVNServer Service failed to start

这是VisualSVN Server Manager启动时报出的一个启动错误,可能的问题有以下3种。

1:端口被占用:使用CMD命令

查看端口是否已使用,如果已使用则更换一个端口。

2:Repositories 的物理目录不存在,重新设置Repositories  物理路径。

3:服务VisualSVN Server Manager 服务启动用户设置不正确,在系统服务中,找到 VisualSVN Server 点击右键——属性——登录选项卡,如果是网络用户,就尝试切换到本地用户试试,如果是本地用户,就尝试指定一下其他用户试试。

VistualSVN

删除右键菜单中的Git

安装完Git之后,会发现在系统(此指windows)的右键菜单中会多出Git的三个选项:Git Init Here 、Git Gui 和Git Bash。

如果你用不着上述三个命令,而且也跟我一样觉着很长的右键菜单觉着不爽,那你可以按照以下的方法移除右键菜单的Git命令

1.找到你Git的安装路径,如:D:\Program\Git,在这个路径中找到“git-cheetah”文件夹

2. cd D:\Program\Git\git-cheetah

3. regsvr32 /u git_shell_ext.dll

对于 64位系统,执行

regsvr32 /u git_shell_ext64.dll

Lion下编译WxWidgets

看了下WxWidgets的官方文档,看来它对Mac的支持还不是很好,所以问题还是蛮多的。

先下的最新的2.9,结果解压出来差一个文件,错误:

cannot find sources (wx-config.in)

看到这个,我翻了下目录,还真没这个文件,所以暂时放下这个版本,然后搞2.8。

这个倒是简单,解压之后,在docs/cocoa下面有install文档,照着做就行了。

不过在lion下面可能会有这两个问题:

1.

这个问题的答案就是lion去掉了一些过去使用的API,所以需要让系统link更早的Library就好了,解决办法是在configure的时候加入命令行:

2.第二个错误来自官方的文档说明,应该和平台有关系,看官方的解释:

Building on Snow Leopard for Snow Leopard

When trying to build wx under 10.6 you might - on certain machines - end up with errors like this:

The reason is that the default compiler on 10.6 is gcc 4.2, and if you are on a Core 2 Duo which is 64-bit capable, you end up compiling Carbon-only 2.8 for 64 bits which fails, due to the lack of 64-bit Carbon support. If you want 64-bit wxWidgets on OS X you'll need 2.9+ and configure -with-osx_cocoa - see below; but remember that 2.9 is not an official, stable release and wxOSX/Cocoa is not yet complete.

So, to compile with 2.8 on a 64-bit Mac, you have to explicitly indicate the architectures you want:

This makes the library and samples build nicely for Intel 32-bit targets, and you can also add -arch ppc to the arch_flags so that you can build universal binaries.

因此,我最后的配置命令行是:

最后配置完成,使用make编译。

进入sample目录编译两个小demo,截图:

ae9ec05069cc220984352444

再来一个运行时候的样子:

7cc657336c431c931b4cff7e

转载自 http://hi.baidu.com/dbfr2011818/item/d26f6820dc80e08c6f2cc30e

VBScript 中读取环境变量

最近在编译的时候,需要用到VBScript,发现里面的某些调用路径是写死的实路径,因此修改了一下,提高灵活性一下。

error: .repo/manifests/: contains uncommitted changes

After a bit of googling and going through the mailing lists, I finally found the solution:

1. Go to ./repo/manifests
2. $ git reset --hard
3. $ repo sync

[Please note that there are two dashes "- -" before 'hard']

repo撤销本地修改

有的时候修改本地代码了,再次同步的时候会报错,需要清理代码的时候,可以执行这个命令