v970 2.5g /data 达成

昨晚捣鼓了下,发现比想象的容易很多。分区信息并不是写死的。而是在emmc设备的开始有分区表。因此手动改改分区表再重启格式化即可。然后发现把最后一个分区完全删掉也没问题。改改vold.fstab就行。有时间的话甚至可以做个完美卡刷包出来。

对于 V970 来说,他的分区数量超过了四个,因此里面有一个扩展分区,恰好我们要修改的最后两个分区都在这个扩展分区里面,于是只要修改 /emmc@ebr1 文件里面的分区表即可。用 dd if=/emmc@ebr1 of=/sdcard/test bs=512 count=1 即可 dump 出来,然后 adb pull 下来修改。这里有个值得一提的地方是,不知道是 MTK 的 bug 还是所有 android 都是这样,最后一个分区的 size 值是错误的,正常应该是 block 总数,他最后一个分区却是字节总数。因此用标准的工具比如 fdisk 之类编辑会出错,只能手动修改。修改好了以后,重启进入 recovery,adb 连上用 dd 写回 /emmc@ebr1。再重启进 recovery 让 kernel 认出新分区,最后 mke2fs -T ext4 /emmc@usrdata 。 同时别忘记 mount 上 /system ,修改 /system/etc/vold.fstab,将里面包含 /emmc@fat 的行删除,否则 vold 会彻底罢工导致 sd 卡也无法加载。

btw:神族上的风气真是不好,总是故作神秘,从来不见原理介绍贴。要说是贴合小白伸手党需求吧,往外放的东西却是专杀小白。有人放了个个3g data的包出来,下来一看居然是分好了把整个emmc dump出来。结果一堆把imei刷丢的。其实只要做的人认真点,避开nvram,也不至于搞死这么多人。。

V970 改大 /data

为了节省成本,比较新的android手机一般会内置2G-4G flash, 然后将除去系统剩下的部分作为 /sdcard,这样就不用随手机还送一个鸡肋的 tf 卡了。然而国内厂家也明白国内的特殊需求,因此通常也会保留 tf 卡插槽。于是如果你真的插了一个 tf 卡,就会悲剧的挂载在 /sdcard2 /sdcard/extra 之类非标准路径,不能被很多软件利用。目前常见的千元 android 手机,比如 zte v970, 夏新 N820 等,都是这样。

最简单的解决方案是 root 以后,修改 /system/etc/vold.fstab, 将里面 /sdcard 和 tf 卡的路径倒过来,这样 /sdcard 就还指向 tf 卡。但是机身原有的 /sdcard 空间就跑到了非标准路径,只能用来放些 mp3 之类的,这部分空间通常有 1-2G,与此同时,手机的 /data 分区却还经常是小小的几百 M, 一不小心把几个大家伙装进去就满了。如果能把浪费的空间都给 /data 就堪称完美。内置 flash 的速度和稳定性都要比外置的 sd 卡有优势,可以用来运行经常要启动的应用,比如微博微信之类。

改手机分区大小也不算是什么新鲜事情,以前在只有 512M 或者 1G flash 的手机上,经常有人放出来调整 /system 分区的 rom。 但是 V970 等流行屌丝机大部分是 MTK 方案的,而 MTK 方案的资料少之又少,我自己尝试修改了刷写工具的分区描述文件,但是刷机以后似乎无效,启动以后原来的分区大小没有变化,网上搜了一下,搜到一些可能是从事 MTK android 开发的人的笔记,里面提到 MTK 方案改分区是修改代码里面一个 xls 文件,然后用 ptgen 工具来生成所有对应的 .h 和刷写用的分区描述文件。如果是这样的话,说明 MTK 平台的分区信息可能是硬编码在内核里面的。这样除非搞到内核源码能重编译,否则就没啥搞头了(网上唯一找到的 MTK android 改分区的 ROM 是 HD7 的,但是其用到的 MT6573 网上有泄露出来的源代码,因此不知道作者是不是使用那些代码编译了一个新内核出来)

不过我们还有退而求其次的方案,那就是干脆把 /data 和原来 /sdcard 的空间也给调换过来算了。这样就只浪费原来 /data 的几百兆。和调换内外卡的情况不同的是,/data 是在 boot.img 启动的时候就挂载了,因此要调换这个,光 root phone 是不行的,还得修改 boot.img 里面的启动脚本才行。基本思路就是先解包,然后修改,最后重新打成 boot.img 刷进手机即可。

解包 MTK boot.img 的工具和其他平台略有不同,请使用 xda 上 bruno 的工具 下载两个.pl 文件就可以了,然后找一个你平台可以用的 mkbootimg 过来。执行

perl unpack-MT65xx.pl boot.img

之后会生成 boot.img-kernel 文件和 boot.img-ramdisk 目录,目录下面就是所有启动时 ramdisk 里面的文件,在里面修改所有 .rc 中涉及 /data 分区的地方即可, V970 的可以用我做的 diff, 下载来

cd boot.img-ramdisk
patch -p1 ../v970-initrd-diff
cd ..

即可
最后重新打包

perl repack-MT65xx.pl -boot boot.img-kernel boot.img-ramdisk boot1.img

这样就得到了一个 boot1.img. 把这个 boot1.img 单独刷进手机即可。

刷完了以后不要急于启动,因为两个分区原来的内容是不一样的,以前 /data 是 ext3/ext4 格式,而 /sdcard 通常是 fat 格式,因此请同时刷个第三方 recovery, 然后直接启动进 recovery,用 adb 连进去格式化新的 /data, V970 是

adb shell mke2fs /emmc@fat
adb shell tune2fs -O extents,uninit_bg,dir_index /emmc@fat
adb shell e2fsck -f /emmc@fat

这里不用 recovery 的格式化功能是因为 recovery 对 /data 的位置理解可能不一样,有可能格式化了其他的分区。

之后重启手机即可。

最后鸣谢一下神族论坛的 shuaidi, 参考了他的改大 data 方案。不过他方案的问题是授人以鱼,直接丢给你一个改好的 boot.img,对于洁癖者来说说实在不能接受。这个 boot.img 还有个副作用是 adb shell 默认是 root,这个虽然方便,但是有点太不安全。而且出了新版本以后也没法刷。还是自己在官方 rom 的基础上根据原理来改比较保险一些。

用电池充电器自制Waterpik水牙线的电源

本来这件事情没啥可写的,不过过程中搜了半天都没有得到有用的信息。所以写在这里,希望对其他搜索的人有所帮助。

关键词:Waterpik 水牙线, 220V 110V 电源。自制。

从米国扛了两个 Waterpik 的水牙线来,结果忘记了美帝用 110v 电压,把变压器直接插插座上,几分钟之内屋里就满是糊味。。

以前也曾经这么搞坏过 medela 吸奶器的电源,当时从淘宝上花十块钱就配了一个比原配标称还高不少的电源。因此并不是很慌张,看看这个变压器上面有 3V 250ma 的标志,直接在淘宝上下单买了俩 3V 2A 的。没想到又仔细看了一下,发现这个 3V 250ma 居然是 AC 输出。。我还是头一次见到有小家电使用交流电的。这下麻烦了。网上搜索了半天,都没有任何资料。淘宝上自然更不会有。倒是有不少卖 220 -> 110 的变压器的,可是我 110V 的电源已经挂掉了啊。

仔细思考了一下,觉得用电机的小家电没有理由使用交流电,而且里面还有电池,所以里面应该还是把交流整成直流来用的。为了保险起见,把水牙线拆开了看了一眼,照片忘记拍了,不过结果很让人无语,里面电路简单到不行 — 直接串了一个二极管然后接到一个充电电池组的两端,再接到电机。于是一切都很明白了,为什么变压器的输出电流如此之低,就是为了给电池充电的时候电流不要过大。

在这样简陋的电路面前,新买的 3V 2A 的直流电源也不敢拿出来用了。3V 交流经过半波整流出来以后的直流电压大概在 2.1V 左右,3V 还是有点太高。于是变换思路。既然里面实际是给镍氢充电电池充电,那么不如直接用电池充电器了。

但是市面上常见的电池充电器通常是 1 节起充的,也就是输出电压其实是 1.2V. 而这个冲牙器里面的电池组是 2.4V 的,好在记得家里有个废了的充电器是要求两节一起充的。翻出来一看果然输出 2.4V 。于是把引线焊出来接上试了一下。果然好用,而且还有指示灯指示什么时候充好,比原厂的还要好用:)

Google reader 真是好东西 – 新浪博客真是屎

在微软即将关掉 live space 的时候,秋玥让我把她的博客 http://qiuyueshuo.spaces.live.com 给找个地方搬一下。我当时看新浪博客是微软官方合作的迁移伙伴,以为他能直接从后台拿数据呢,就随便开了个新浪博客设置搬了。当时比较忙,只看看前几篇都有,图也抓下来了。就没再关注。

结果前几天秋玥问我搬家的 blog 在哪里,我告诉她那个新浪的地址,她上去看了一眼,说怎么辛辛苦苦写的长文章都没有,短文章倒是都还在?一看果然是这样,丫的新浪博客搬家果然没给搬全。时隔多年,live space 早死的不能再死了。想再迁移到 wordpress.com 都没戏。秋玥很是生气,我很是郁闷。

今天忽然无聊,上了一下 google reader,意外发现当年所有的内容都在里面,一篇没少。真是难为它还存着这个倒了两年多的 blog。虽然 google reader 不提供内容导出功能,不过这种事情显然已经有前人搞过了。不知道是这个 blog 的问题还是 google reader 改了输出格式,feed 里面没有 description,只有 summary 没有 content,直接用会报错,需要自己手动修改一点,其他都没有什么问题。另外一个惊喜就是微软虽然把 space 给关了,不过存图片的 live filestore 还没关,于是 blog 里面的图大部分都还能看。少部分较早的没了。

最终工作结果在 http://qiuyueshuo.kangkang.org 感谢 Google reader, 感谢郭嘉,感谢 diang,感谢 CCAV。。 鄙视新浪博客,比网易博客的搬家做得差远了,早知道当时用网易搬一下,连评论都能带过来。

最近评论

时光机

其他