<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Life Journal &#187; 教程</title>
	<atom:link href="http://xiaolife.com/wordpress/category/words/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://xiaolife.com/wordpress</link>
	<description>Days &#38; Nights in My Life</description>
	<lastBuildDate>Sat, 05 May 2012 07:45:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>打造自动翻墙的路由器</title>
		<link>http://xiaolife.com/wordpress/dd-wrt-with-openvpn-and-autoddvpn/</link>
		<comments>http://xiaolife.com/wordpress/dd-wrt-with-openvpn-and-autoddvpn/#comments</comments>
		<pubDate>Fri, 04 May 2012 18:20:11 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=467</guid>
		<description><![CDATA[当你有多个设备在家时，要让每个设备都翻墙往往是很麻烦的。电脑上有ssh、vpn等多种方案，而Android上常用goagent，iPhone不越狱的话则只能依赖vpn或APN Proxy。而且这些方案往往在稳定性、流量控制、速度上各有各的问题。于是就有聪明人发明了从路由器级别搞定翻墙的办法。对所有设备透明，稳定，流量耗用小。 当然，我不是那个发明人。只是前些日子家中拉了一条20M的宽带，顿时觉得有必要充分利用，这才亲身实践了一次，历经磨难，查了N多资料才搞定。发觉网上没有一个真正完整的教程指导，于是索性在此写一篇。欢迎有志之士参考实践，或提出修改意见。 基本原理：让路由器刷上开源固件dd-wrt，再配置路由器自动连接openvpn，最后利用autoddvpn，自动让被墙ip段的请求添通过vpn发送。 路由器的选择 首先，dd-wrt有这么一个页面[http://www.dd-wrt.com/wiki/index.php/Supported_Devices]列出了所有支持的路由器。也就是说，路由器必须被列在这个页面中才可以刷dd-wrt。 其次，能刷dd-wrt并不意味着就能拨openvpn。openvpn支持需要路由器最好拥有8MB Flash或更多，RAM最好32MB以上。按照这个标准，你又可以过滤掉一大片选择。最后，如果你不想太折腾的话，注意表格最后一列Notes，最好上面不要有奇怪的说明。 我推荐Buffalo家的路由器。便宜（相对Linksys来说），稳定，外观带感，配置不坑爹，最关键的是，Buffalo官方就有dd-wrt的固件支持——每个路由器都会提供两种固件，其中一种就是dd-wrt。当然，刷dd-wrt网站的固件自然也没问题。 注意，不要买Buffalo的WHR系列，没有OpenVPN支持。 我目前用的是Buffalo WZR-HP-G300NH2，如果你有米，也可以考虑Linksys E4200之类。 dd-wrt的版本选择 像Buffalo这样的厂商虽然会发布直接用于对应路由器的固件，但功能也未必和dd-wrt官方相同。所以推荐用dd-wrt官方固件。 最靠谱的查找对应路由器的dd-wrt固件的办法就是，去这个ftp[ftp://ftp.dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2012/]，进入最新的build文件夹，按照找你的路由器名字的文件夹，里面就是固件了。 但在刷dd-wrt之前，请前往此处[http://www.dd-wrt.com/wiki/index.php/Installation#Hardware-specific]查看关于你的路由器品牌或型号的说明。 只要按照说明操作，基本上你不会需要去了解一些终极治疗术。（当你的路由器完全死翘翘的时候你会需要，诶嘿 因为后续要支持autoddvpn，所以你需要一个支持jffs的版本，也就是说至少是V24preSP2级别的版本。V24SP1和V24都因为组件兼容性问题移除了jffs。上面我给的ftp地址就是V24preSP2的所以不用担心。（有资料提到很老的版本也有jffs但那真的太老了。。 你可能还看到有资料中提到什么mega版本啊vpn版本啊mini版本啊，不过因为刷这些版本都需要用到tftp这样的麻烦工具，所以最好不要去尝试，乖乖用std就好了。 OpenVPN的配置方式 刷好dd-wrt后，先让他能正常访问网络／然后我们就要开始在这上面配置OpenVPN了。 选择有两个： 通过dd-wrt的web界面中的“服务”-&#62;“OpenVPN”页面来直接配置。 通过telnet进路由器后，在命令行下手动上传配置文件＋脚本的方式来配置。 第一中方案看似简单，但其实配置选项很多很专业，而我们往往从VPN商家拿到的都是直接的配置文件，要亲自读懂配置文件再去修改web页面的每一项，其实非常难。而且，这种方案下，要加上autoddvpn的支持还稍嫌麻烦。最坑爹的是这种方案调试极其无力。 所以我选择的是第二种方案。第二种方案下，配置OpenVPN可以直接参照autoddvpn的这份文档[http://code.google.com/p/autoddvpn/wiki/OpenVPNManualStartUP]，并且请密切注意文档下放的“注意”部分，并记住我们是要用graceMode，以及配置文件结尾一定要加上 script-security 3 system。文档结尾的设置openvpncl_enable=0的部分一定不要忘记。并且一定要测试连接是否成功。 但是：在你上传前，需要先打开dd-wrt的jffs支持。参考这份文档[http://code.google.com/p/autoddvpn/wiki/jffs]中的《如何打開jffs支持》这一小段。注意，只需要参考这一小段即可，下面的部分都不需要看，也不需要操作。后续自然会讲到。 另外如果你的OpenVPN连接遇到问题，可以加上reneg-sec 0这一句试试。以及配置文件中不要加auth-nocache，否则很可能会每小时openvpn客户端就错误退出。  autoddvpn 这个项目的地址在此：http://code.google.com/p/autoddvpn/ ，不过他的文档写的真的很乱。你可以完全不管不看。 刚才如果你按照上一步中的autoddvpn的文档已经写好了OpenVPN配置文件，那里面就包含了在VPN连接和断开后对autoddvpn脚本的调用命令。所以我们只需要做一步，把autoddvpn的文件搞到对应位置即可。具体操作按照这份文档[http://code.google.com/p/autoddvpn/wiki/graceMode]，直接看《設置方式(以OpenVPN為例)》部分，包括设置DNSMasq和SSH进入路由器后执行的几行命令。当然，不用ssh，用telnet也可以。 如果你会使用到基于bonjour的服务，比如iPhone的Wi-Fi同步，那么在“服务”-&#62;“服务”的DNSMasq中建议不要启用 本地DNS。 在这份文档中还讲到了通过创建vpnup_custom文件来增加一些没有被包含在自动翻墙列表中的ip段。可以参考使用。 调试 确保你的文件都乖乖放在/jffs/openvpn/下了，并且没有吃饱了去修改名字。确保你的路由器的DNS设置是按照上文说的那样做。然后就是那么几条命令方便你自己调试： 在当前终端连接openvpn并显示连接日志：openvpn --config /jffs/openvpn/openvpn.conf 连接openvpn并且放在后台：openvpn --config /jffs/openvpn/openvpn.conf --daemon 结束所有openvpn进程：killall openvpn 显示当前运行的所有进程：ps 查看当前autoddvpn的log：tail -f /tmp/autoddvpn.log [...]]]></description>
			<content:encoded><![CDATA[<p>当你有多个设备在家时，要让每个设备都翻墙往往是很麻烦的。电脑上有ssh、vpn等多种方案，而Android上常用goagent，iPhone不越狱的话则只能依赖vpn或APN Proxy。而且这些方案往往在稳定性、流量控制、速度上各有各的问题。于是就有聪明人发明了从路由器级别搞定翻墙的办法。对所有设备透明，稳定，流量耗用小。</p>
<p>当然，我不是那个发明人。只是前些日子家中拉了一条20M的宽带，顿时觉得有必要充分利用，这才亲身实践了一次，历经磨难，查了N多资料才搞定。发觉网上没有一个真正完整的教程指导，于是索性在此写一篇。欢迎有志之士参考实践，或提出修改意见。</p>
<p>基本原理：让路由器刷上开源固件dd-wrt，再配置路由器自动连接openvpn，最后利用autoddvpn，自动让被墙ip段的请求添通过vpn发送。</p>
<h1>路由器的选择</h1>
<p>首先，dd-wrt有这么一个页面[<a href="http://www.dd-wrt.com/wiki/index.php/Supported_Devices" target="_blank">http://www.dd-wrt.com/wiki/index.php/Supported_Devices</a>]列出了所有支持的路由器。也就是说，路由器必须被列在这个页面中才可以刷dd-wrt。</p>
<p>其次，能刷dd-wrt并不意味着就能拨openvpn。openvpn支持需要路由器最好拥有8MB Flash或更多，RAM最好32MB以上。按照这个标准，你又可以过滤掉一大片选择。最后，如果你不想太折腾的话，注意表格最后一列Notes，最好上面不要有奇怪的说明。</p>
<p>我推荐Buffalo家的路由器。便宜（相对Linksys来说），稳定，外观带感，配置不坑爹，最关键的是，Buffalo官方就有dd-wrt的固件支持——每个路由器都会提供两种固件，其中一种就是dd-wrt。当然，刷dd-wrt网站的固件自然也没问题。</p>
<p>注意，不要买Buffalo的WHR系列，没有OpenVPN支持。</p>
<p>我目前用的是Buffalo WZR-HP-G300NH2，如果你有米，也可以考虑Linksys E4200之类。</p>
<h1>dd-wrt的版本选择</h1>
<p>像Buffalo这样的厂商虽然会发布直接用于对应路由器的固件，但功能也未必和dd-wrt官方相同。所以推荐用dd-wrt官方固件。</p>
<p>最靠谱的查找对应路由器的dd-wrt固件的办法就是，去这个ftp[<a href="ftp://ftp.dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2012/" target="_blank">ftp://ftp.dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2012/</a>]，进入最新的build文件夹，按照找你的路由器名字的文件夹，里面就是固件了。</p>
<p>但在刷dd-wrt之前，请前往此处[<a href="http://www.dd-wrt.com/wiki/index.php/Installation#Hardware-specific" target="_blank">http://www.dd-wrt.com/wiki/index.php/Installation#Hardware-specific</a>]查看关于你的路由器品牌或型号的说明。</p>
<p>只要按照说明操作，基本上你不会需要去了解一些终极治疗术。（当你的路由器完全死翘翘的时候你会需要，诶嘿</p>
<p>因为后续要支持autoddvpn，所以你需要一个支持jffs的版本，也就是说至少是V24preSP2级别的版本。V24SP1和V24都因为组件兼容性问题移除了jffs。上面我给的ftp地址就是V24preSP2的所以不用担心。（有资料提到很老的版本也有jffs但那真的太老了。。</p>
<p>你可能还看到有资料中提到什么mega版本啊vpn版本啊mini版本啊，不过因为刷这些版本都需要用到tftp这样的麻烦工具，所以最好不要去尝试，乖乖用std就好了。</p>
<h1>OpenVPN的配置方式</h1>
<p>刷好dd-wrt后，先让他能正常访问网络／然后我们就要开始在这上面配置OpenVPN了。</p>
<p>选择有两个：</p>
<ol>
<li>通过dd-wrt的web界面中的“服务”-&gt;“OpenVPN”页面来直接配置。</li>
<li>通过telnet进路由器后，在命令行下手动上传配置文件＋脚本的方式来配置。</li>
</ol>
<p>第一中方案看似简单，但其实配置选项很多很专业，而我们往往从VPN商家拿到的都是直接的配置文件，要亲自读懂配置文件再去修改web页面的每一项，其实非常难。而且，这种方案下，要加上autoddvpn的支持还稍嫌麻烦。最坑爹的是这种方案调试极其无力。</p>
<p>所以我选择的是第二种方案。第二种方案下，配置OpenVPN可以直接参照autoddvpn的这份文档[<a href="http://code.google.com/p/autoddvpn/wiki/OpenVPNManualStartUP" target="_blank">http://code.google.com/p/autoddvpn/wiki/OpenVPNManualStartUP</a>]，并且请密切注意文档下放的“注意”部分，并记住我们是要用graceMode，以及配置文件结尾一定要加上 script-security 3 system。文档结尾的设置openvpncl_enable=0的部分一定不要忘记。并且一定要测试连接是否成功。</p>
<p>但是：在你上传前，需要先打开dd-wrt的jffs支持。参考这份文档[<a href="http://code.google.com/p/autoddvpn/wiki/jffs" target="_blank">http://code.google.com/p/autoddvpn/wiki/jffs</a>]中的《如何打開jffs支持》这一小段。注意，只需要参考这一小段即可，下面的部分都不需要看，也不需要操作。后续自然会讲到。</p>
<p>另外如果你的OpenVPN连接遇到问题，可以加上reneg-sec 0这一句试试。以及配置文件中不要加auth-nocache，否则很可能会每小时openvpn客户端就错误退出。</p>
<h1> autoddvpn</h1>
<p>这个项目的地址在此：<a href="http://code.google.com/p/autoddvpn/" target="_blank">http://code.google.com/p/autoddvpn/</a> ，不过他的文档写的真的很乱。你可以完全不管不看。</p>
<p>刚才如果你按照上一步中的autoddvpn的文档已经写好了OpenVPN配置文件，那里面就包含了在VPN连接和断开后对autoddvpn脚本的调用命令。所以我们只需要做一步，把autoddvpn的文件搞到对应位置即可。具体操作按照这份文档[<a href="http://code.google.com/p/autoddvpn/wiki/graceMode" target="_blank">http://code.google.com/p/autoddvpn/wiki/graceMode</a>]，直接看《設置方式(以OpenVPN為例)》部分，包括设置DNSMasq和SSH进入路由器后执行的几行命令。当然，不用ssh，用telnet也可以。</p>
<p>如果你会使用到基于bonjour的服务，比如iPhone的Wi-Fi同步，那么在“服务”-&gt;“服务”的DNSMasq中建议不要启用 本地DNS。</p>
<p>在这份文档中还讲到了通过创建vpnup_custom文件来增加一些没有被包含在自动翻墙列表中的ip段。可以参考使用。</p>
<h1>调试</h1>
<p>确保你的文件都乖乖放在/jffs/openvpn/下了，并且没有吃饱了去修改名字。确保你的路由器的DNS设置是按照上文说的那样做。然后就是那么几条命令方便你自己调试：</p>
<p>在当前终端连接openvpn并显示连接日志：openvpn --config /jffs/openvpn/openvpn.conf</p>
<p>连接openvpn并且放在后台：openvpn --config /jffs/openvpn/openvpn.conf --daemon</p>
<p>结束所有openvpn进程：killall openvpn</p>
<p>显示当前运行的所有进程：ps</p>
<p>查看当前autoddvpn的log：tail -f /tmp/autoddvpn.log</p>
<h1>守护脚本</h1>
<p>OpenVPN再稳定都有意外挂掉的情况。这种时候我们就需要通过系统的cron来设置每隔2分钟，就运行一个脚本检查一次OpenVPN进程当前是否在运行，不在的话就再运行一个OpenVPN。</p>
<p>脚本文件内容如下：</p>
<pre>#!/bin/sh
ISRUN=`ps|grep "openvpn"|wc -l`
if [[ $ISRUN -lt 4 ]]
then
echo "Not running, start!"
openvpn --config /jffs/openvpn/openvpn.conf --daemon
else
echo "Openvpn is already running."
exit
fi</pre>
<p>假定保存到/jffs/openvpn/openvpnDaemon.sh位置，那么我们就在dd-wrt的web界面的“管理”-&gt;“管理”下启用Cron，并且在附加任务中输入：</p>
<p>*/2 * * * * /jffs/openvpn/openvpnDaemon.sh</p>
<p>于是就大功告成。</p>
<p>注意，如果你不是保存在/jffs/openvpn/openvpnDaemon.sh位置，那么相应的，要在上面的脚本文件内容中，把 -lt 后面的数字进行修改，这取决于你最后保存的位置的字符串中有几个“openvpn”。如果有n个，那么那个数字就改称n+2。</p>
<p>好了。写完了。有什么问题尽管提。</p>
<p>&nbsp;</p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2012. |
<a href="http://xiaolife.com/wordpress/dd-wrt-with-openvpn-and-autoddvpn/">文章原始地址</a>
<br/>
Post tags: <br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=467" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/dd-wrt-with-openvpn-and-autoddvpn/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>在Win下如Lion般反向滚动与CMD快捷键</title>
		<link>http://xiaolife.com/wordpress/reverse-scrolling-and-cmd-for-windows/</link>
		<comments>http://xiaolife.com/wordpress/reverse-scrolling-and-cmd-for-windows/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 10:45:25 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=435</guid>
		<description><![CDATA[用多了Lion，回到Bootcamp的Windows总是有诸多的不适应。在Parallels的虚拟机下，快捷键和滚动方向都会自动切换成与Mac一致，而在Bootcamp的Windows下则没这么方便。 于是这里就提供给各位两个基于AutoHotKey的解决方案。 先下载一个小软件Installer for AutoHotkey Basic (1.95 MB) 然后安装完这个小软件后，下载这两个小脚本（如果浏览器直接显示了，那就点右键选择保存到本地之类的）：反向滚动的脚本、交换Control与Command键的脚本 然后双击两个脚本，就生效了。 如果想要每次启动时都自动生效，那么直接把这两个脚本放到Windows的启动文件夹下就好了。 好了，快去体验在Windows下的CMD+C/V的复制粘贴与自然的滚动方向吧~ © Sid 晓 for Life Journal, 2011. &#124; 文章原始地址 Post tags:]]></description>
			<content:encoded><![CDATA[<p>用多了Lion，回到Bootcamp的Windows总是有诸多的不适应。在Parallels的虚拟机下，快捷键和滚动方向都会自动切换成与Mac一致，而在Bootcamp的Windows下则没这么方便。</p>
<p>于是这里就提供给各位两个基于AutoHotKey的解决方案。</p>
<ol>
<li>先下载一个小软件<a href="http://www.autohotkey.com/download/AutoHotkeyInstall.exe">Installer for AutoHotkey Basic</a> (1.95 MB)</li>
<li>然后安装完这个小软件后，下载这两个小脚本（如果浏览器直接显示了，那就点右键选择保存到本地之类的）：<a href="http://xiaolife.com/wordpress/wp-content/uploads/2011/08/ReverseScrolling.ahk">反向滚动的脚本</a>、<a href="http://xiaolife.com/wordpress/wp-content/uploads/2011/08/Command%20Control%20Switch.ahk">交换Control与Command键的脚本</a></li>
<li>然后双击两个脚本，就生效了。</li>
<li>如果想要每次启动时都自动生效，那么直接把这两个脚本放到Windows的启动文件夹下就好了。</li>
</ol>
<p>好了，快去体验在Windows下的CMD+C/V的复制粘贴与自然的滚动方向吧~</p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2011. |
<a href="http://xiaolife.com/wordpress/reverse-scrolling-and-cmd-for-windows/">文章原始地址</a>
<br/>
Post tags: <br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=435" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/reverse-scrolling-and-cmd-for-windows/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>如何写你的IT简历</title>
		<link>http://xiaolife.com/wordpress/write-a-good-it-cv/</link>
		<comments>http://xiaolife.com/wordpress/write-a-good-it-cv/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 17:13:29 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[cv]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=389</guid>
		<description><![CDATA[用pdf而不是word格式，否则Mac OS X下排版会乱 把内容精简到一页纸内。一页纸内都没法把话说清楚的人，我们不需要。 标明想要的职位。除非你只是玩玩。 避免瀑布式的排版。你不是在写作文。 整页的体例（字号与颜色等）小于三种。花花绿绿意味着你缺乏基本的品味。 把每个重点放在显眼的位置。我们没时间去你的豆腐块里寻找真正有用的信息。 针对你投的公司写一些文字。好让人感觉到你的诚意。 ──写给对简历一窍不通者。 © Sid 晓 for Life Journal, 2010. &#124; 文章原始地址 Post tags: cv, 教程]]></description>
			<content:encoded><![CDATA[<ol>
<li>用pdf而不是word格式，否则Mac OS X下排版会乱</li>
<li>把内容精简到一页纸内。一页纸内都没法把话说清楚的人，我们不需要。</li>
<li>标明想要的职位。除非你只是玩玩。</li>
<li>避免瀑布式的排版。你不是在写作文。</li>
<li>整页的体例（字号与颜色等）小于三种。花花绿绿意味着你缺乏基本的品味。</li>
<li>把每个重点放在显眼的位置。我们没时间去你的豆腐块里寻找真正有用的信息。</li>
<li>针对你投的公司写一些文字。好让人感觉到你的诚意。</li>
</ol>
<p>──写给对简历一窍不通者。</p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2010. |
<a href="http://xiaolife.com/wordpress/write-a-good-it-cv/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/cv/" rel="tag">cv</a>, <a href="http://xiaolife.com/wordpress/tag/tutorial/" rel="tag">教程</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=389" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/write-a-good-it-cv/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>使用OpenVPN的route命令实现选择性翻墙</title>
		<link>http://xiaolife.com/wordpress/use-openvpn-route-and-vpn_gateway/</link>
		<comments>http://xiaolife.com/wordpress/use-openvpn-route-and-vpn_gateway/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 11:01:53 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=342</guid>
		<description><![CDATA[最近一系列敏感事件的发生，越来越多的人开始选择用VPN来翻墙。 然而，在默认情况下，一旦VPN连接成功，那么本地所有的网络请求都会通过VPN来传送。这使得许多想边下载边翻墙的童鞋无法如愿以偿——毕竟VPN会对速度有较大影响，并且绝大多数VPN都有流量限制。 那么有没有两全其美的方法呢？ 在Google Code上就有一个项目叫chnroutes，提供了一些脚本来实现相应的功能，不过使用上实在是麻烦，而且缺乏灵活度。 其实，如果使用OpenVPN类型的VPN的话，那么有个很简单的方法，可以仅让指定的IP范围内的网络请求通过VPN发送，而正常的访问则不会占用VPN一丝流量。 首先，OpenVPN的配置文件，支持一个参数route-nopull，可以使VPN连接后，并不修改默认路由，也就不会有任何网络请求走VPN。 其次，我们可以在配置文件的末尾，添加一些route命令，指定特定的IP范围请求通过VPN发送。比如： # NTT Twitter route 168.143.0.0 255.255.0.0 vpn_gateway route 128.121.0.0 255.255.0.0 vpn_gateway 上面的一行命令可以分成三部分来理解： route        168.143.0.0 255.255.0.0        vpn_gateway 命令名称          网络范围（IP段）                              指定通过的路由 关于中间的部分，如果你学过计算机网络，那么对于任何一个站点，你应该都能轻松得到它的IP地址，那么再指定一个包含该地址并且不大的网络范围就可以了。 关于最后一个参数“vpn_gateway”，还有一个相似的参数，net_gateway，功能与前者恰恰相反，表示强行指定任意IP段不通过VPN来访问。 如果你没有学过计算机网络、或者学的不好，那么你可以依照下面的教程来获取关于一个站点的可行的网络范围： 以google.cn为例。 在“附件”中打开“命令提示符”（或者在“运行”窗口中输入cmd再回车） 输入ping+空格+站点的地址，此处我们输入 ping google.cn 部分的结果如下，注意到第二行中括号内的IP地址了么？ 把该IP地址最后以为改成数字0，后面跟 255.255.255.0 这样就得到了我们要的一个可以作为参数的IP段74.125.95.0 255.255.255.0 （注意中间有个空格） 当然，手写这些是非常麻烦的。如果你已经有现成的OpenVPN配置文件了的话，那么只需要把下面的文本复制并粘贴到配置文件的最末端即可。别忘了要新起一行哦~ （说明1：最好把你用的VPN服务器本身的IP使用net_gateway参数添加进去，如下面的文本中晓晓自己使用的vpnchina sever，以避免错误的让VPN服务器也需要通过VPN来连接——那就没法访问VPN服务器了） （说明2：上面的教程仅仅是写给新手看的。） 遗补：使用这种方式翻墙时，建议将一些IP地址多变的网站解析结果写入到本地hosts里固定下来，避免配置文件中指定的IP段因为解析地址变化而失效。另外，使用该方法时，DNS污染仍然会对你造成影响。因此，务必使用干净的如8.8.8.8的DNS。 遗补2：由于route条目较多，还需要添加一条 max-routes 1000 语句。 max-routes 1000 route-nopull # vpnchina sever route [...]]]></description>
			<content:encoded><![CDATA[<p>最近一系列敏感事件的发生，越来越多的人开始选择用VPN来翻墙。</p>
<p>然而，在默认情况下，一旦VPN连接成功，那么本地所有的网络请求都会通过VPN来传送。这使得许多想边下载边翻墙的童鞋无法如愿以偿——毕竟VPN会对速度有较大影响，并且绝大多数VPN都有流量限制。</p>
<p>那么有没有两全其美的方法呢？</p>
<p>在Google Code上就有一个项目叫<a href="http://code.google.com/p/chnroutes/" target="_blank">chnroutes</a>，提供了一些脚本来实现相应的功能，不过使用上实在是麻烦，而且缺乏灵活度。<br />
<span id="more-342"></span><br />
<strong>其实，如果使用OpenVPN类型的VPN的话，那么有个很简单的方法，可以仅让指定的IP范围内的网络请求通过VPN发送，而正常的访问则不会占用VPN一丝流量。</strong></p>
<p>首先，OpenVPN的配置文件，支持一个参数route-nopull，可以使VPN连接后，并不修改默认路由，也就不会有任何网络请求走VPN。</p>
<p>其次，我们可以在配置文件的末尾，添加一些route命令，指定特定的IP范围请求通过VPN发送。比如：</p>
<blockquote><p># NTT Twitter<br />
route 168.143.0.0 255.255.0.0 vpn_gateway<br />
route 128.121.0.0 255.255.0.0 vpn_gateway</p></blockquote>
<p>上面的一行命令可以分成三部分来理解：</p>
<p>route        168.143.0.0 255.255.0.0        vpn_gateway<br />
命令名称          网络范围（IP段）                              指定通过的路由</p>
<p>关于中间的部分，如果你学过计算机网络，那么对于任何一个站点，你应该都能轻松得到它的IP地址，那么再指定一个包含该地址并且不大的网络范围就可以了。</p>
<p>关于最后一个参数“vpn_gateway”，还有一个相似的参数，net_gateway，功能与前者恰恰相反，表示强行指定任意IP段不通过VPN来访问。</p>
<p>如果你没有学过计算机网络、或者学的不好，那么你可以依照下面的教程来获取关于一个站点的可行的网络范围：</p>
<p>以google.cn为例。</p>
<ol>
<li>在“附件”中打开“命令提示符”（或者在“运行”窗口中输入cmd再回车）</li>
<li>输入ping+空格+站点的地址，此处我们输入 ping google.cn</li>
<li>部分的结果如下，注意到第二行中括号内的IP地址了么？<img class="alignnone size-full wp-image-343" title="ping的执行结果" src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-30_185002.png" alt="" width="464" height="87" /></li>
<li>把该IP地址最后以为改成数字0，后面跟 255.255.255.0</li>
<li>这样就得到了我们要的一个可以作为参数的IP段74.125.95.0 255.255.255.0 （注意中间有个空格）</li>
</ol>
<p><strong>当然，手写这些是非常麻烦的。如果你已经有现成的OpenVPN配置文件了的话，那么只需要把下面的文本复制并粘贴到配置文件的最末端即可。别忘了要新起一行哦~</strong></p>
<p>（说明1：最好把你用的VPN服务器本身的IP使用net_gateway参数添加进去，如下面的文本中晓晓自己使用的vpnchina sever，以避免错误的让VPN服务器也需要通过VPN来连接——那就没法访问VPN服务器了）</p>
<p>（说明2：上面的教程仅仅是写给新手看的。）</p>
<p>遗补：使用这种方式翻墙时，建议将一些IP地址多变的网站解析结果写入到本地hosts里固定下来，避免配置文件中指定的IP段因为解析地址变化而失效。另外，使用该方法时，DNS污染仍然会对你造成影响。因此，务必使用干净的如8.8.8.8的DNS。</p>
<p>遗补2：由于route条目较多，还需要添加一条 max-routes 1000 语句。</p>
<blockquote><p>
max-routes 1000<br />
route-nopull</p>
<p># vpnchina sever<br />
route 174.36.181.0 255.255.255.0 net_gateway</p>
<p>#ustream<br />
route 96.17.8.0 255.255.255.0 vpn_gateway</p>
<p>#no21984.org<br />
route 97.74.203.0 255.255.255.0 vpn_gateway</p>
<p>#archive<br />
route 207.241.0.0 255.255.0.0 vpn_gateway</p>
<p>#isohunt<br />
route 208.71.112.0 255.255.255.0 vpn_gateway</p>
<p># zkaip<br />
route 174.37.148.0 255.255.255.0 vpn_gateway</p>
<p>#bit.ly<br />
route 168.143.173.0 255.255.255.0 vpn_gateway</p>
<p>#adobe<br />
route 192.150.0.0 255.255.0.0 vpn_gateway</p>
<p># ke neng ba<br />
route 74.207.248.0 255.255.255.0 vpn_gateway</p>
<p># python<br />
route 82.94.164.0 255.255.255.0 vpn_gateway</p>
<p>#ur.ly<br />
route 216.239.34.0 255.255.255.0 vpn_gateway</p>
<p>#iphonedownloadblog<br />
route 66.33.209.0 255.255.255.0 vpn_gateway</p>
<p># uncyclopedia<br />
route 96.45.180.0 255.255.255.0 vpn_gateway</p>
<p>#mediafire<br />
route 93.46.8.0 255.255.255.0 vpn_gateway<br />
route 8.7.198.0 255.255.255.0 vpn_gateway<br />
route 37.61.54.0 255.255.255.0 vpn_gateway</p>
<p># blackra1n<br />
route 74.220.215.0 255.255.255.0 vpn_gateway</p>
<p>#r f a<br />
route 63.85.36.0 255.255.255.0 vpn_gateway</p>
<p>#yam<br />
route 60.199.252.0 255.255.255.0 vpn_gateway</p>
<p>#wei quan wang<br />
route 75.125.252.0 255.255.255.0 vpn_gateway</p>
<p>#ff.im<br />
route 64.13.142.0 255.255.255.0 vpn_gateway</p>
<p># plurk<br />
route 74.120.121.0 255.255.255.0 vpn_gateway</p>
<p># b b c<br />
route 212.58.240.0 255.255.248.0 vpn_gateway</p>
<p># xiaochun<br />
route 210.157.5.0 255.255.255.0 vpn_gateway</p>
<p># dropbox<br />
route 174.129.212.0 255.255.255.0 vpn_gateway</p>
<p># wikimedia<br />
route 208.80.152.0 255.255.255.0 vpn_gateway</p>
<p># akamai<br />
route 63.150.131.0 255.255.255.0 vpn_gateway</p>
<p># flickr<br />
route 67.195.19.0 255.255.255.0 vpn_gateway<br />
route 69.147.90.0 255.255.255.0 vpn_gateway</p>
<p># twitbrowser<br />
route 97.74.144.0 255.255.255.0 vpn_gateway</p>
<p># ipaddl<br />
route 67.19.72.0 255.255.255.0 vpn_gateway</p>
<p># delicious<br />
route 76.13.6.0 255.255.255.0 vpn_gateway</p>
<p># sendspace<br />
route 216.151.186.0 255.255.255.0 vpn_gateway</p>
<p>#emule<br />
route 74.53.185.0 255.255.255.0 vpn_gateway</p>
<p># dev-team<br />
route 72.32.231.0 255.255.255.0 vpn_gateway</p>
<p># hellotxt<br />
route 212.239.17.0 255.255.255.0 vpn_gateway</p>
<p># Mediafire<br />
route 205.196.120.0 255.255.255.0 vpn_gateway</p>
<p># Geocity<br />
route 202.93.87.0 255.255.255.0 vpn_gateway</p>
<p>#tinypic<br />
route 209.17.74.0 255.255.255.0 vpn_gateway</p>
<p># ultraxs.com<br />
route 93.46.8.0 255.255.255.0 vpn_gateway</p>
<p># AOL<br />
route 64.12.0.0 255.255.0.0 vpn_gateway<br />
route 207.200.64.0 255.255.192.0 vpn_gateway<br />
route 205.188.0.0 255.255.0.0 vpn_gateway</p>
<p># NTT Twitter<br />
route 168.143.0.0 255.255.0.0 vpn_gateway<br />
route 128.121.0.0 255.255.0.0 vpn_gateway</p>
<p># Cloud Front (Twitter)<br />
route 216.137.32.0 255.255.224.0 vpn_gateway</p>
<p># Facebook<br />
route 159.106.121.0 255.255.255.0 vpn_gateway<br />
route 69.63.176.0 255.255.240.0 vpn_gateway<br />
route 66.220.144.0 255.255.240.0 vpn_gateway</p>
<p># Akamai (Facebook)<br />
route 72.246.0.0 255.254.0.0 vpn_gateway<br />
route 204.2.171.0 255.255.255.0 vpn_gateway</p>
<p># Youtube / Google<br />
route 8.8.0.0 255.255.0.0 vpn_gateway<br />
route 66.249.0.0 255.255.0.0 vpn_gateway<br />
route 74.125.0.0 255.255.0.0 vpn_gateway<br />
route 209.85.128.0 255.255.128.0 vpn_gateway<br />
route 202.78.112.0 255.255.240.0 vpn_gateway<br />
route 66.102.0.0 255.255.240.0 vpn_gateway<br />
route 208.65.152.0 255.255.252.0 vpn_gateway</p>
<p># Revsci<br />
route 216.223.0.0 255.255.0.0 vpn_gateway</p>
<p># Amazon<br />
route 174.129.0.0 255.255.0.0 vpn_gateway</p>
<p># Omroep<br />
route 145.58.0.0 255.255.0.0 vpn_gateway</p>
<p># Transip<br />
route 80.69.64.0 255.255.224.0 vpn_gateway</p>
<p># Hurricane Electric (mail-archive.com)<br />
route 72.52.64.0 255.255.192.0 vpn_gateway</p>
<p># GoDaddy<br />
route 64.202.160.0 255.255.224.0 vpn_gateway</p>
<p># PsiNET<br />
route 38.0.0.0 255.0.0.0 vpn_gateway</p>
<p># WordPress<br />
route 72.233.0.0 255.255.128.0 vpn_gateway<br />
route 74.200.192.0 255.255.192.0 vpn_gateway<br />
route 76.74.254.0  255.255.255.128 vpn_gateway<br />
route 65.52.0.0 255.252.0.0 vpn_gateway</p>
<p># Spotify<br />
route 78.31.8.0 255.255.255.0 vpn_gateway</p>
<p># The Planet<br />
route 74.52.0.0 255.252.0.0 vpn_gateway</p>
<p># Slicehost / Posterous<br />
route 67.207.128.0 255.255.224.0 vpn_gateway</p>
<p># Softlayer / Twitpic<br />
route 174.36.0.0 255.254.0.0 vpn_gateway<br />
route 66.228.120.0 255.255.255.0 vpn_gateway</p>
<p># Vimeo<br />
route 66.235.112.0 255.255.240.0 vpn_gateway<br />
route 208.67.232.0 255.255.248.0 vpn_gateway<br />
route 72.21.192.0 255.255.224.0 vpn_gateway</p>
<p># Wefollow<br />
route 70.32.64.0 255.255.192.0 vpn_gateway</p>
<p># blogspot<br />
route 64.233.160.0 255.255.224.0 vpn_gateway<br />
route 72.14.192.0 255.255.192.0 vpn_gateway</p>
<p># badongo<br />
route 216.45.48.0 255.255.240.0 vpn_gateway<br />
# www.wenxuecity.com / psinet<br />
route 38.0.0.0 255.0.0.0 vpn_gateway<br />
# Twitpic<br />
route 74.86.0.0 255.255.0.0 vpn_gateway<br />
# www.dwnews.com / level3<br />
route 209.244.0.0 255.252.0.0 vpn_gateway<br />
# www.6park.com / the planet<br />
route 74.52.0.0 255.252.0.0 vpn_gateway<br />
# Backchina / the planet<br />
route 209.62.0.0 255.255.128.0 vpn_gateway</p>
<p># yFrog<br />
route 208.94.0.0 255.255.252.0 vpn_gateway</p>
<p># opera<br />
route 213.236.128.0 255.255.128.0 vpn_gateway</p></blockquote>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2010. |
<a href="http://xiaolife.com/wordpress/use-openvpn-route-and-vpn_gateway/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/vpn/" rel="tag">vpn</a>, <a href="http://xiaolife.com/wordpress/tag/tutorial/" rel="tag">教程</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=342" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/use-openvpn-route-and-vpn_gateway/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>晓晓常用优秀Firefox扩展推荐</title>
		<link>http://xiaolife.com/wordpress/firefox-extensions-i-use/</link>
		<comments>http://xiaolife.com/wordpress/firefox-extensions-i-use/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 08:31:15 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=338</guid>
		<description><![CDATA[嗯嗯，本文着重介绍了下晓晓自己常用的一些Firefox扩展和主题。 废话少说，先上图让各位看看偶的Firefox的样子 那个透明的标签栏是怎么回事呢？ 答案是：用Chromifox皮肤（点此下载）+Chromifox Companion扩展（点此下载）+Personal Menu（点此下载）。 新版的Chromifox Companion添加了标签栏的Aero（透明）效果的支持。（似乎官网还没更新，装完之后还是0.9，但使用一段时间之后就会提示更新到1.0版本，1.0版本方有Aero效果标签栏）。而Personal Menu的作用是隐藏Firefox菜单栏。安装好后如下图配置下就可以啦。 FastestFox（点此下载），是一个功能很杂却很优秀的软件。晓晓最喜欢它的功能是，当使用Google进行搜索时，它会自动在当前页面下方加载下一页，这样就省去了每次手动点击“下一页啦”。如图： Flashgot（点此下载）——想在Firefox里用迅雷？除了用迅雷官方的扩展以外，最好的办法似乎就是安装这个扩展啦~安装好后在设置里选择Thunder（迅雷），下载的时候就可以选择Flashgot项，就会直接调用电脑里安装的迅雷进行下载啦。如下图： QuickDrag（点此下载），看名字就知道啦，一个经典的增加鼠标拖曳支持的扩展。鼠标点着连接轻轻一拉，就能在新窗口中打开~，可以参考晓晓的设置： SearchPreview（点此下载），嗯，给Google搜索的结果添加上预览图片~ RefControl（点此下载）。上网的时候经常会某张图片显示成“请不要盗链”之类的（常见于外链的51相册、新浪相册），这个时候很讨厌吧。用这个插件就可以解决啦。在图片上点右键选择“将图片加入RefControl”，然后如下图选择“伪装”，再重新刷新就好就好（偶尔也有时候会需要选择自定义……）： 嗯嗯，以上使一些晓晓觉得大多数人用得到的扩展啦。还有一些比较偏门或者非常热门的扩展晓晓就不再重复啦。 © Sid 晓 for Life Journal, 2010. &#124; 文章原始地址 Post tags: Firefox]]></description>
			<content:encoded><![CDATA[<p>嗯嗯，本文着重介绍了下晓晓自己常用的一些Firefox扩展和主题。</p>
<p>废话少说，先上图让各位看看偶的Firefox的样子<br />
<a class="highslide" title="2010-03-04_123245.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_123245.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_123245.png" alt="2010-03-04_123245.png" width="200" height="140" /></a></p>
<p>那个透明的标签栏是怎么回事呢？<br />
<span id="more-338"></span><br />
答案是：用Chromifox皮肤（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/10674/?from=%2Fen-US%2Ffirefox%2Faddon%2F10674%2F" target="_blank">点此下载</a>）+Chromifox Companion扩展（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/10339?src=oftenusedwith" target="_blank">点此下载</a>）+Personal Menu（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/3895/" target="_blank">点此下载</a>）。</p>
<p>新版的Chromifox Companion添加了标签栏的Aero（透明）效果的支持。（似乎官网还没更新，装完之后还是0.9，但使用一段时间之后就会提示更新到1.0版本，1.0版本方有Aero效果标签栏）。而Personal Menu的作用是隐藏Firefox菜单栏。安装好后如下图配置下就可以啦。</p>
<p><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_1242081.png" alt="2010-03-04_1242081.png" /></p>
<p>FastestFox（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/9825" target="_blank">点此下载</a>），是一个功能很杂却很优秀的软件。晓晓最喜欢它的功能是，当使用Google进行搜索时，它会自动在当前页面下方加载下一页，这样就省去了每次手动点击“下一页啦”。如图：<br />
<a class="highslide" title="2010-03-04_124845.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_124845.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_124845.png" alt="2010-03-04_124845.png" width="400" height="190" /></a></p>
<p>Flashgot（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/220" target="_blank">点此下载</a>）——想在Firefox里用迅雷？除了用迅雷官方的扩展以外，最好的办法似乎就是安装这个扩展啦~安装好后在设置里选择Thunder（迅雷），下载的时候就可以选择Flashgot项，就会直接调用电脑里安装的迅雷进行下载啦。如下图：<br />
<a class="highslide" title="2010-03-04_160049.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_160049.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_160049.png" alt="2010-03-04_160049.png" width="400" height="250" /></a><br />
<a class="highslide" title="2010-03-04_160541.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_160541.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_160541.png" alt="2010-03-04_160541.png" width="400" height="380" /></a></p>
<p>QuickDrag（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/6912" target="_blank">点此下载</a>），看名字就知道啦，一个经典的增加鼠标拖曳支持的扩展。鼠标点着连接轻轻一拉，就能在新窗口中打开~，可以参考晓晓的设置：<img class="alignnone size-full wp-image-339" title="2010-03-04_160909" src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_160909.png" alt="" width="359" height="211" /></p>
<p>SearchPreview（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/189" target="_blank">点此下载</a>），嗯，给Google搜索的结果添加上预览图片~<br />
<a class="highslide" title="2010-03-04_161908.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_161908.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_161908.png" alt="2010-03-04_161908.png" width="400" height="310" /></a></p>
<p>RefControl（<a href="https://addons.mozilla.org/zh-CN/firefox/addon/953" target="_blank">点此下载</a>）。上网的时候经常会某张图片显示成“请不要盗链”之类的（常见于外链的51相册、新浪相册），这个时候很讨厌吧。用这个插件就可以解决啦。在图片上点右键选择“将图片加入RefControl”，然后如下图选择“伪装”，再重新刷新就好就好（偶尔也有时候会需要选择自定义……）：<br />
<img class="alignnone size-full wp-image-340" title="2010-03-04_162606" src="http://xiaolife.com/wordpress/wp-content/uploads/2010/03/2010-03-04_162606.png" alt="" width="484" height="301" /></p>
<p>嗯嗯，以上使一些晓晓觉得大多数人用得到的扩展啦。还有一些比较偏门或者非常热门的扩展晓晓就不再重复啦。</p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2010. |
<a href="http://xiaolife.com/wordpress/firefox-extensions-i-use/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/firefox/" rel="tag">Firefox</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=338" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/firefox-extensions-i-use/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>iPhone的Push(推送通知)功能原理浅析</title>
		<link>http://xiaolife.com/wordpress/an-introduce-to-iphone-push/</link>
		<comments>http://xiaolife.com/wordpress/an-introduce-to-iphone-push/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 20:08:47 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[push]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=334</guid>
		<description><![CDATA[这篇文章写于很久以前，内容已经过期了。看到还是陆续有人在下方留言提问，特此说明下。 QQ发布了3.3.0，主要增加了对iPhone Push功能的支持。但是，由于blacksn0w解锁软件的缺陷，用其解锁激活的iPhone无不出现了Push的缺陷。鉴于国内许多人对iPhone的Push功能的误解，并导致很多匪夷所思的言论，晓晓决定写一篇文章，对iPhone的Push功能，进行一次科普，顺便为各位分析下目前存在的几种补丁的原理。 敬告小白：本文理论内容来自iPhone官方参考文件，涉及破解的内容来自dev team和ih8sn0w。如果你认为你对iPhone的理解比Apple还要正确，请直接向Apple指出文档中的错误之处。本人无责任翻译概括。 注意：blackra1n越狱本身并不会导致不能Push的缺陷，导致缺陷的是用于解锁的blacksn0w。如果你想争论，请先阅读完本篇文章，再自己好好想想。 第一部分：Push原理 (以下绝大多数内容参考自、图片来自iPhone OS Reference Library) 机制简介 Push的工作机制可以简单的概括为下图 图中， Provider是指某个iPhone软件的Push服务器。 APNS是Apple Push Notification Service（Apple Push服务器）的缩写，下文统一使用该缩写。 因此，整个过程可以分为三个阶段，下面用大家常用的聊天客户端BeejiveIM来说明。（BeejiveIM是一款支持多账户登录的支持Push的iPhone聊天客户端，支持MSN、Google Talk等） 此时Provider为BeejiveIM服务器，我们在BeejiveIM上登陆MSN,其实软件是先把登录信息发送到BeejiveIM服务器，再通过其服务器来登陆MSN。因此，当我关闭了BeejiveIM，BeejiveIM服务器会继续为我登陆MSN，此时如果有人对我的MSN账户发送了消息，那么就会触发Push。此时： 第一阶段：BeejiveIM服务器把要发送的消息、目的iPhone的标识打包，发给APNS。 第二阶段：APNS在自身的已注册Push服务的iPhone列表中，查找有相应标识的iPhone，并把消息发到iPhone。 第三阶段：iPhone把发来的消息传递给相应的应用程序，并且按照设定弹出Push通知。 Push认证 许多朋友说Push不能用。其中一大部分，就是在认证阶段就出了问题。想了解原因？请细看： 这里所说的认证机制，实际上包含两层。一层是物理连接上的认证，另一层则才是涉及到iPhone设备令牌的认证。 物理连接上的认证：SSL/TLS链接 （如果你了解TLS，那么这里我几乎无需介绍。） iPhone在开启Push的时候，会连接APNS建立一条TLS加密链接。每一台正常的iPhone都有一个独有的设备证书，而APNS也有一个服务器证书。两者建立的时候，会验证彼此的证书有效性。 TLS链接一旦建立，在没有数据的情况下，只需要每隔15分钟进行一次保活的握手，因此几乎不占流量。而一旦因为意外原因导致链接中断，iPhone会不断重新尝试建立TLS链接，直到成功。 更高一层次：基于token(令牌)的认证 在机制简介里，我提到过APNS判断Push推送消息该发给哪台iPhone的依据是一个“目的iPhone的标识”，这个标识就是device token(设备令牌)。 设备令牌是怎么生成的呢？是每次建立TLS连接时，APNS通过前一层次(TLS层)里我们提到的每台正常的iPhone唯一的设备证书(unique device certificate)，并用令牌密钥(token key)加密生成的。 在令牌生成了之后，APNS会把设备令牌(device token)返回给iPhone，而对应的Push应用程序（如BeejiveIM），则把返回来的设备令牌(device token)直接发送给Provider（如BeejiveIM服务器）。这样，当Provider有Push消息要发送时，就会把对应帐号的设备令牌(device token)和消息一起发送给APNS，而APNS再依据设备令牌(device token)，找到相应TLS链接的iPhone，并发送相应的Push消息。 以上复杂的流程可以归纳为下面这幅图： 图中，Client App是iPhone上的Push应用程序。（图中缺了一条（当有Push消息时）由Provider到APNS的链接） 最重要的部分——每台iPhone独有的设备证书和密钥的来历 正常的iPhone刷系统之后，是没有设备证书和密钥的。这就是为什么iPhone会需要连接到iTunes上进行激活——激活过程中，Apple会分配给每台iPhone独一无二的设备证书(device certificate)和密钥(key)。 以上我仅仅介绍了从iPhone到APNS的链接建立。其实从Provider到APNS也有一条TLS链接，但是与本文关系不大，所以不多加介绍了。 我的PUSH问题出在哪里？ 相信许多同学都抱有这样的疑问。 正如上文提到的，iPhone的Push需要APNS生成对应iPhone的设备令牌，但生成这个令牌又需要iPhone上的有效的设备证书(device [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">这篇文章写于很久以前，内容已经过期了。看到还是陆续有人在下方留言提问，特此说明下。</span></p>
<p>QQ发布了3.3.0，主要增加了对iPhone Push功能的支持。但是，由于blacksn0w解锁软件的缺陷，用其解锁激活的iPhone无不出现了Push的缺陷。鉴于国内许多人对iPhone的Push功能的误解，并导致很多匪夷所思的言论，晓晓决定写一篇文章，对iPhone的Push功能，进行一次科普，顺便为各位分析下目前存在的几种补丁的原理。<br />
<span id="more-334"></span><br />
<span style="color: #ff0000;"><strong>敬告小白：本文理论内容来自iPhone官方参考文件，涉及破解的内容来自dev team和ih8sn0w。如果你认为你对iPhone的理解比Apple还要正确，请直接向Apple指出文档中的错误之处。本人无责任翻译概括。</strong></span></p>
<p><strong>注意：blackra1n越狱本身并不会导致不能Push的缺陷，导致缺陷的是用于解锁的blacksn0w。如果你想争论，请先阅读完本篇文章，再自己好好想想。</strong></p>
<h2>第一部分：Push原理</h2>
<p>(以下绝大多数内容参考自、图片来自iPhone OS Reference Library)</p>
<h3>机制简介</h3>
<p>Push的工作机制可以简单的概括为下图</p>
<p><img class="alignnone" title="1-1" src="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Art/remote_notif_simple.jpg" alt="Push基本原理" width="652" height="90" /></p>
<p>图中，</p>
<ul>
<li>Provider是指某个iPhone软件的Push服务器。</li>
<li><strong>APNS是Apple Push Notification Service（Apple Push服务器）的缩写，下文统一使用该缩写。</strong></li>
</ul>
<p>因此，整个过程可以分为三个阶段，下面用大家常用的聊天客户端BeejiveIM来说明。（BeejiveIM是一款支持多账户登录的支持Push的iPhone聊天客户端，支持MSN、Google Talk等）</p>
<p>此时Provider为BeejiveIM服务器，<strong>我们在BeejiveIM上登陆MSN,其实软件是先把登录信息发送到BeejiveIM服务器，再通过其服务器来登陆MSN</strong>。因此，当我关闭了BeejiveIM，BeejiveIM服务器会继续为我登陆MSN，此时如果有人对我的MSN账户发送了消息，那么就会触发Push。此时：</p>
<ul>
<li>第一阶段：BeejiveIM服务器把要发送的消息、目的iPhone的标识打包，发给APNS。</li>
<li>第二阶段：APNS在自身的已注册Push服务的iPhone列表中，查找有相应标识的iPhone，并把消息发到iPhone。</li>
<li>第三阶段：iPhone把发来的消息传递给相应的应用程序，并且按照设定弹出Push通知。</li>
</ul>
<h3>Push认证</h3>
<p>许多朋友说Push不能用。其中一大部分，就是在认证阶段就出了问题。想了解原因？请细看：</p>
<p>这里所说的认证机制，实际上包含两层。一层是<strong>物理连接上的认证</strong>，另一层则才是涉及到<strong>iPhone设备令牌的认证。</strong></p>
<h4>物理连接上的认证：SSL/TLS链接</h4>
<p><img class="alignnone" title="2-1" src="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Art/service_device_ct.jpg" alt="物理连接层的认证流程" width="454" height="325" /></p>
<p>（如果你了解TLS，那么这里我几乎无需介绍。）</p>
<p>iPhone在开启Push的时候，会连接APNS建立一条TLS加密链接。每一台正常的iPhone都有一个独有的设备证书，而APNS也有一个服务器证书。两者建立的时候，会验证彼此的证书有效性。</p>
<p><strong>TLS链接一旦建立，在没有数据的情况下，只需要每隔15分钟进行一次保活的握手，因此几乎不占流量。</strong>而一旦因为意外原因导致链接中断，iPhone会不断重新尝试建立TLS链接，直到成功。</p>
<h4>更高一层次：基于token(令牌)的认证</h4>
<p>在机制简介里，我提到过<strong>APNS判断Push推送消息该发给哪台iPhone的依据</strong>是一个“目的iPhone的标识”，这个标识就是<strong>device token(设备令牌)</strong>。</p>
<p><strong><span style="color: #ff0000;">设备令牌是怎么生成的呢？是每次建立TLS连接时，APNS通过前一层次(TLS层)里我们提到的每台正常的iPhone唯一的设备证书(unique device certificate)，并用令牌密钥(token key)加密生成的。</span></strong></p>
<p><img class="alignnone" title="2-2" src="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Art/token_generation.jpg" alt="设备令牌的生成流程" width="625" height="360" /></p>
<p>在令牌生成了之后，APNS会把设备令牌(device token)返回给iPhone，而对应的Push应用程序（如BeejiveIM），则把返回来的设备令牌(device token)直接发送给Provider（如BeejiveIM服务器）。这样，<strong>当Provider有Push消息要发送时，就会把对应帐号的设备令牌(device token)和消息一起发送给APNS，而APNS再依据设备令牌(device token)，找到相应TLS链接的iPhone，并发送相应的Push消息</strong>。</p>
<p>以上复杂的流程可以归纳为下面这幅图：</p>
<p><img class="alignnone" title="device token的工作流程" src="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Art/registration_sequence.jpg" alt="" width="332" height="217" /></p>
<p>图中，Client App是iPhone上的Push应用程序。（图中缺了一条（当有Push消息时）由Provider到APNS的链接）</p>
<h4>最重要的部分——每台iPhone独有的设备证书和密钥的来历</h4>
<p>正常的iPhone刷系统之后，是没有设备证书和密钥的。这就是为什么iPhone会需要连接到iTunes上进行激活——<strong>激活过程中，Apple会分配给每台iPhone独一无二的设备证书(device certificate)和密钥(key)</strong>。</p>
<p><em>以上我仅仅介绍了从iPhone到APNS的链接建立。其实从Provider到APNS也有一条TLS链接，但是与本文关系不大，所以不多加介绍了。</em></p>
<h2>我的PUSH问题出在哪里？</h2>
<p>相信许多同学都抱有这样的疑问。</p>
<p>正如上文提到的，iPhone的Push需要APNS生成对应iPhone的设备令牌，但生成这个令牌又需要iPhone上的有效的设备证书(device certificate)和密钥(key)，但是：</p>
<p>iPhone OS 3.X 使用blacksn0w进行<strong>解锁</strong>的过程，是不经过iTunes的，而<strong>blacksn0w本身又不生成对应的设备证书(device certificate)和密钥(key)</strong>，因此这样解锁完的iPhone根本不可能与APNS建立任何的TLS链接，Push自然废了。</p>
<h3>有关各种pushfix补丁</h3>
<p>要修补这个问题，唯一的办法就是<strong>重新生成唯一且有效的设备证书(device certificate)和密钥(key)</strong>。</p>
<p>但是要知道，证书是需要机构签发的，自己一个人随便弄的一个证书，只会被APNS认为是无效证书。（SSL证书一个多少钱大家可以去查查）</p>
<p>并且对应的文件似乎还和iPhone本机的一些内容相关，不是直接制作好的文件放进去就可以的。</p>
<p>于是，最早，dev team推出了一个测试版补丁，Push fix by dev team（通过他们的twitter发布的，因此官网没有消息）。这个补丁初期很有效。但是仅在iPhone 2G上比较正常。</p>
<p>之后某人士发布pushfix 1.0了。由于使用了不同的生成方法，因此在新版本iPhone上也正常工作了。于是风靡一时。</p>
<p><span style="text-decoration: line-through;"><strong>然而，以上两个补丁都有严重的隐患——他们使用了一个固定的证书作为设备证书(device certificate)。因此在不同iPhone上的区别仅仅在于生成的密钥(key)不同。</strong></span>（待确认）</p>
<blockquote><p>上面提到过，APNS依靠每台iPhone独一无二的设备证书(device certificate)和密钥(key)来生成独一无二的设备令牌(device token)，用来标识每台iPhone。</p></blockquote>
<p><strong>但当多个iPhone的设备证书(device certificate)完全一致时，就存在一定几率使得多个iPhone获得相同的设备令牌(device token)</strong></p>
<p><strong>而随着这两个补丁的使用人数不断增加，使得出现获得相同设备令牌(device token)的iPhone数量大大增加了。</strong></p>
<p><span style="color: #ff0000;"><strong>当这些相同设备令牌(device token)的iPhone上启用了同一个应用程序的Push的时候，就极有可能出现彼此间的Push串发的现象。——如某论坛目前N多人抱怨QQ的Push到别人iPhone上的情况就是如此。</strong></span></p>
<p>之后，Pushfix的作者，声称自己可以为每台iPhone<strong>手工制作唯一的设备证书(device certificate)和密钥(key)</strong>，并且开始提供了付费服务，并且最终推出了付费的Pushfix 2.0——其通过cydia安装的原理是，在安装的时候在线连接到pushfix站点检查对应iPhone的imei确定是否付费再自动下载对应的证书。</p>
<p>虽然不知道他是怎么制作这些证书的。但是经过晓晓的验证，他制作的证书确实是有效的。Push问题确实修复了。</p>
<p>在这之后，某论坛上出现了一个叫做Pushfix_D的补丁，声称无需付费也能直接修复问题。然而，</p>
<p>——考虑到一些情况，我决定把对Pushfix_D的判断用英文发出来。当然，制作者肯定很清楚下面写的东西：）</p>
<p>it contains the same released push keys from back in July 2009.   Everybody gets the same key, so it is going to have all the same  problems of ALL the free push fixes.  Push isn't going to work very long  and it is going to drain your battery.</p>
<h2>其他出错的情况</h2>
<h3>我的iPhone在cmwap下无法push？！</h3>
<p>对的，这完全正常。在wap网内，TLS链接几乎无法建立成功。</p>
<h3>我的iPhone在Wi-Fi下无法push？！</h3>
<p>实际上这得说是iPhone与某些无线路由器的不兼容。如果无线路由器开启了<strong>DNS转发功能</strong>，那么很有可能你的iPhone无法成功与APNS服务器建立TLS链接。</p>
<p>解决方法：</p>
<p>关闭无线路由器的DNS转发功能，手动为iPhone的Wi-Fi连接设置DNS为8.8.8.8</p>
<p>补充，实际上，这也就是为什么iPhone连接到Wi-Fi上而又不能收到Push的时候，会变得发热且非常耗电。因为iPhone会<strong>不断尝试建立TLS链接</strong>。</p>
<h2>如何得知我的Push是否破解成功？</h2>
<p>一个简单的方法就是安装 Twitbird Pro版本。在其Accounts页面，会显示当前软件的Push注册状况。</p>
<p>或者你可以用WinSCP之类的软件查看iPhone上的</p>
<blockquote><p>/var/mobile/Library/Preferences/com.apple.apsd.plist</p></blockquote>
<p>文件状态。</p>
<ul>
<li>如果其大小为119字节，则说明该iPhone已经成功取得了设备令牌(device token)，并保存在该文件中。</li>
<li>如果小于该大小，则说明该iPhone已经和APNS链接过，但是未能取得设备令牌(device token)。</li>
<li>如果没有该文件，那说明该iPhone根本没能成功连接到APNS。</li>
</ul>
<h2>其他一些值得注意的问题</h2>
<ul>
<li>iPod Touch与iPhone的Push机制不完全相同，锁屏后15分钟方检查一次。故请勿与上文对号入座。</li>
<li>APNS在发送Push消息时，如果发现对应的iPhone链接中断，则会延后几分钟再发送。超过一个时间后，Push消息会被删除。因此请注意你的网络状况是否影响Push正常工作。</li>
<li>如上文所说，每台iPhone的设备令牌(device token)储存在/var/mobile/Library/Preferences/com.apple.apsd.plist 文件中。这就是为什么每次需要重装Push补丁时，建议删除push程序并删除该文件。</li>
<li>使用sbsettings的EDGE开关关闭EDGE，却不关闭Push的话，会导致iPhone不断尝试建立TLS连接，最终耗尽电量。因此，如果你不打算或不能用Push，请关闭Push选项。</li>
<li>对软件的Push服务器(Provider)而言，Wi-Fi与手机网络是一样的，在Push处理上不会有任何区别。</li>
<li>虽然已经解释的很清楚，但还是明说一句，只要TLS连接正常，Push服务就是实时的，速度仅取决于Provider而已。</li>
<li>题外话，iPhone上的邮件推送为Push Mail技术，与本文所说的Push完全不同。请查阅Exchange Direct Push相关内容。</li>
</ul>
<h2>福利</h2>
<p>一句话，如果你觉得Push没什么用，那只能说明你见识太少。在以下页面可以查看一些支持Push的优秀软件。</p>
<p><a href="http://appadvice.com/applists/show/definitive-list-of-push-capable-apps" target="_blank">http://appadvice.com/applists/show/definitive-list-of-push-capable-apps</a></p>
<p>内容参考：<a href="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html" target="_blank">iPhone OS Reference Library</a></p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2010. |
<a href="http://xiaolife.com/wordpress/an-introduce-to-iphone-push/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/iphone/" rel="tag">iphone</a>, <a href="http://xiaolife.com/wordpress/tag/push/" rel="tag">push</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=334" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/an-introduce-to-iphone-push/feed/</wfw:commentRss>
		<slash:comments>116</slash:comments>
		</item>
		<item>
		<title>MOV、Quicktime Text与Subtitle Workshop</title>
		<link>http://xiaolife.com/wordpress/mov-quicktime-text-subtitle-workshop/</link>
		<comments>http://xiaolife.com/wordpress/mov-quicktime-text-subtitle-workshop/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 21:01:13 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[字幕]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=333</guid>
		<description><![CDATA[我们知道，Quicktime并不支持PC上常见的srt、ssa等字幕，当然，iPhone/iPod也不支持。但是他们的设置页又确实有关于字幕的选项。这个字幕正是基于MPEG-4 Timed Text标准的Quicktime Text格式。 这个格式的字幕特点是，不支持从外部挂载，而是存在与.mov、.mp4格式的内部。作为一条text track存在的。 那么，如何把常见的srt之类的字幕转换成Quicktime Text字幕呢？ 晓晓推荐使用Subtitle Workshop。 这款软件支持大量的文本类字幕格式。可以彼此间无损的转换。 但是，Subtitle Workshop本身所带的Quicktime Text字幕生成模版是有问题的。因此你需要自行创建一个模版。为了方便群众，晓晓把制作好的模版提供下载（点此）。在另存为时选择“自定义格式”，然后点击“读取方案”，加载下回来的模版，再点击“保存”即可。 当然，这样生成了Quicktime Text文件还不够，你还得把它与mov文件合并才行。关于这个操作的解释已经连篇累牍了。晓晓就简单的记录一下： 升级你的Quicktime到Quicktime Pro（专业版） 在Quicktime中打开你的mov文件与刚才生成的Quicktime Text文件 在Quicktime Text文件的Quicktime窗口，全选（Ctrl+A） 在mov文件的Quicktime窗口，点击“编辑”-&#62;“添加至影片”（Ctrl+Alt+V） 保存你的新mov文件即可。 在这篇文章中我只是给出一种可行的方案，相信有不少同学会更喜欢使用mp4te之类的工具。但那不是本篇文章想讨论的话题了。 注意：从Subtitle Workshop生成的字幕文件是最简单的版本，用文本编辑器打开之后，你可以手动修改添加很多参数设定，具体的内容请参与Apple的说明文档。点此 当然，Quicktime本身也可以对字幕做出一定的修缮，在“显示影片属性”的窗口中就可以。 © Sid 晓 for Life Journal, 2010. &#124; 文章原始地址 Post tags: quicktime, 字幕, 教程]]></description>
			<content:encoded><![CDATA[<p>我们知道，Quicktime并不支持PC上常见的srt、ssa等字幕，当然，iPhone/iPod也不支持。但是他们的设置页又确实有关于字幕的选项。这个字幕正是基于MPEG-4 Timed Text标准的Quicktime Text格式。</p>
<p>这个格式的字幕特点是，不支持从外部挂载，而是存在与.mov、.mp4格式的内部。作为一条text track存在的。</p>
<p>那么，如何把常见的srt之类的字幕转换成Quicktime Text字幕呢？</p>
<p>晓晓推荐使用Subtitle Workshop。<br />
<span id="more-333"></span><br />
这款软件支持大量的文本类字幕格式。可以彼此间无损的转换。</p>
<p><strong>但是</strong>，Subtitle Workshop本身所带的Quicktime Text字幕生成模版<strong>是有问题的</strong>。因此你需要自行创建一个模版。为了方便群众，晓晓把制作好的模版提供下载（<a href="http://xiaolife.com/quicktime2.cfp" target="_blank">点此</a>）。在另存为时选择“自定义格式”，然后点击“读取方案”，加载下回来的模版，再点击“保存”即可。</p>
<p>当然，这样生成了Quicktime Text文件还不够，你还得把它与mov文件合并才行。关于这个操作的解释已经连篇累牍了。晓晓就简单的记录一下：</p>
<ol>
<li>升级你的Quicktime到Quicktime Pro（专业版）</li>
<li>在Quicktime中打开你的mov文件与刚才生成的Quicktime Text文件</li>
<li>在Quicktime Text文件的Quicktime窗口，全选（Ctrl+A）</li>
<li>在mov文件的Quicktime窗口，点击“编辑”-&gt;“添加至影片”（Ctrl+Alt+V）</li>
<li>保存你的新mov文件即可。</li>
</ol>
<p>在这篇文章中我只是给出一种可行的方案，相信有不少同学会更喜欢使用mp4te之类的工具。但那不是本篇文章想讨论的话题了。</p>
<p>注意：从Subtitle Workshop生成的字幕文件是最简单的版本，用文本编辑器打开之后，你可以手动修改添加很多参数设定，具体的内容请参与Apple的说明文档。<a href="http://www.apple.com/quicktime/tutorials/textdescriptors.html" target="_blank">点此</a></p>
<p>当然，Quicktime本身也可以对字幕做出一定的修缮，在“显示影片属性”的窗口中就可以。</p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2010. |
<a href="http://xiaolife.com/wordpress/mov-quicktime-text-subtitle-workshop/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/quicktime/" rel="tag">quicktime</a>, <a href="http://xiaolife.com/wordpress/tag/%e5%ad%97%e5%b9%95/" rel="tag">字幕</a>, <a href="http://xiaolife.com/wordpress/tag/tutorial/" rel="tag">教程</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=333" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/mov-quicktime-text-subtitle-workshop/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>iPhone软件指南</title>
		<link>http://xiaolife.com/wordpress/iphone-guide/</link>
		<comments>http://xiaolife.com/wordpress/iphone-guide/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 21:22:27 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=327</guid>
		<description><![CDATA[嗯嗯，用iPhone也有段时间了，晓晓决定把自己用iPhone的一些软件给总结一下，以普及群众造福百姓啦…… 这篇文章仅仅从常用软件层面来讨论，不包括越狱、破解之类的问题。相应问题请前往威锋网之类的大型论坛咨询。 说明：文章中的中等大小图片，均可点击放大。为免版权争议，请各位同学自行前往applo.us站点和itunes store搜索下载。 本文较长故特此列出一个目录，点击相应标题应该可以跳到相应部位哈。 目录 1、Cydia软件 2、ipa软件 3、PC端软件 4、Push特辑 1、Cydia部分 Cydia实际上提供了一个非常类似于linux的更新方式（本来就是bsd系统，很正常），所以一般使用模式是：添加源（Source）——&#62;在源中查找需要的程序（deb格式）——&#62;安装&#38;更新。 Cydia安装好后自带了几个源，不过很多好软件的话还是需要另外添加第三方源的啦。 以下是晓晓自己添加的几个源，推荐给各位。 在Cydia之中，有些软件几乎是必须装的，它们绝大多数用于提供破解软件的运行基础。 ，如果你是使用blackra1n进行破解工作的话，会需要安装他来使用ifunbox之类软件。 在破解了iPhone之后，还需要安装这么一个ipa补丁才能通过itunes同步破解的ipa格式应用程序。 下面这个openSSL是必装的，至于OpenSSH，如果你需要使用WinSCP之类的SSH客户端来往iPhone里复制东西的话才需要安装，否则不推荐安装，即使临时安装后，也建议立刻卸载掉。 其次，还有一些补丁性质的软件，也强烈推荐各位安装。不占用内存，而且很实用。 这个patch可以让你自定义你的应用程序背景和短信窗口的背景。 就是给右上角的电池图标添加百分比显示啦，让你看的更明白。 这个得解释一下了，这个patch的功能是给你的safari添加一个开关，控制它是否下载图片。在你的流量吃紧的时候这个特别有用哦。——放心吧，标准网页的话，即使不显示图片，页面也不会乱掉的说。 这个程序一直备受好评，它能让你的天气程序直接把温度显示在程序的图标上、状态栏上，而且支持多种天气程序哦。设置界面如图： 最后，独立程序部分，有一些经典的软件必须推荐呢~ 这个软件晓晓个人觉得比bossprefs方便，所以强烈推荐，功能强大：它随机自启动，可以通过在屏幕顶部轻轻一划就呼出，可以随时调节亮度、wifi开关、3G开关等，更重要的是，自身还支持主题和第三方增强开关，如下推荐： 这个开关可以让你随时调节iPhone是否自动锁屏。 这个就是我推荐的sbsettings主题啦，风格和iPhone本身非常搭调，所以一直在用。 这个非常重磅的说，其功能独一无二：能让你控制是否启用iPhone的重力感应。当你躺在床上玩iPhone的时候，它能帮你避免那些多余的自动转屏。强烈推荐！ 这个也是重磅炸弹啊，与myRealSMS并称iPhone上最好的短信软件啊~与原生的短信程序无缝集成。当你有短信的时候，它让你可以直接在当前界面下直接回复短信。完全不需要另外进入短信程序！缺点就是——有点占内存。至于左上角的叉叉偶尔不灵的情况，实际上的点击位置应该在右下方点的位置才对的。设置界面截图： 用于iPhone 2G、3G的最好的录像软件，当然，限于硬件条件，效果有限。 这个……如果你有Google Voice的话，可以从这两款程序里挑选一款来使用哦~很方便的~ 这个，比较高端，是一个bash终端，效果就像windows下的命令行一样，当然，功能还是比较受限的。因为iPhone系统本身并没带有很多常用的命令。不过没关系，我们可以再另外安装的啦比如这个： 这个命令包包括了常用了网络命令，比如ping。如果你怀疑iPhone的网络除了什么问题的话，就可以在终端里执行ping命令来确认问题咯。 ok~~Cydia部分到此为止啦。下面是ipa程序部分。 2、ipa程序部分 咦？什么是ipa程序啊？——ipa程序就是后缀名为ipa的，通过双击可以添加到itunes中，然后可以使用itunes将其同步到iPhone上的程序。标准的iPhone程序都是ipa程序。 ipa程序分为两种 一种是正版的ipa程序——你在itunes store中购买的程序，就是正版的ipa程序。这种程序文件你无法与别人共享，只能通过你的账户授权的itunes软件来安装到iPhone中。 第二种则是破解的ipa程序。这类程序是破解达人们通过对正版的ipa程序做修改，删除掉了验证的代码而得到的。这种程序只能在越狱了的iPhone上安装哦。 破解的ipa程序哪里来呢？一般而言，晓晓是去appulo.us搜索下载的。也建议各位同学多去那个站点——东西大而全，并且更新迅速。下面提到的程序，基本都可以在这上面找到。 以下是晓晓认为必备的一些ipa程序： 一个画质增强的拍照程序，经过晓晓的测试，确实有明显的改善呢~（虽然实质还是锐化+边缘调整）所以现在一直用它拍照。 GoodReader可以说是iPhone上最优秀的pdf浏览软件。普通的缩放、缩放后固定纵向浏览功能不说，更有很方便的重新排版功能——可以把pdf中的文字抽取出来以txt的形式重新排版显示。对于pdf党而言极其方便啊。而且渲染速度也相对很快的说。另外，也可以打开txt的说。重度推荐呢。 这是一个定时通知软件，你在里面设定好几点钟的时候通知你什么内容。然后到了时间它就会很乖的用push的方式告诉你啦~不需要后台运行，因此不另外占用内存，很方便的说~而且它还可以对通知的内容进行分类……嗯嗯，其实它是一款GTD软件。界面： 嗯嗯，这个是iPhone上最受欢迎的办公程序啦。可以打开编辑word、excel格式的文件。话说回来，其实iPhone本身就能查看office文件的说——比如邮件附件里的word文档，是可以直接查看的。 免费软件。对于任何一个有itunes store的人，这款程序几乎是必不可少的啊。它的功能是——告诉你每天有哪些程序在打折、限时免费。就这么简单。省钱的好工具啊。预览： 免费软件。囧……这个没什么好说的了吧。 字典类软件，因为字典的数量实在是太多了，晓晓仅再次罗列了下自己正在使用的字典，给各位一个参考。 ok。下面则是各个领域的优秀软件。 如果你是有车族或者旅游狂，绝对不应该错过这两款程序和两者都是优秀的GPS导航程序。高德自带全国地图而且功能强大，后者则是在线下载bing的地图，适合偶尔用用。如图： 如果你和晓晓一样喜欢厨艺，那么这款程序你也一定会喜欢。偶一般是在厨房对着这个程序来学做菜——囧。程序内容很丰富实用，如图： [...]]]></description>
			<content:encoded><![CDATA[<p>嗯嗯，用iPhone也有段时间了，晓晓决定把自己用iPhone的一些软件给总结一下，以普及群众造福百姓啦……</p>
<p>这篇文章仅仅从常用软件层面来讨论，不包括越狱、破解之类的问题。相应问题请前往威锋网之类的大型论坛咨询。</p>
<p><strong>说明：文章中的中等大小图片，均可点击放大。为免版权争议，请各位同学自行前往applo.us站点和itunes store搜索下载。</strong></p>
<p>本文较长故特此列出一个目录，点击相应标题应该可以跳到相应部位哈。</p>
<p>目录</p>
<p><a href="http://xiaolife.com/wordpress/iphone-guide/#part1" target="_self">1、Cydia软件</a></p>
<p><a href="http://xiaolife.com/wordpress/iphone-guide/#part2">2、ipa软件</a></p>
<p><a href="http://xiaolife.com/wordpress/iphone-guide/#part3">3、PC端软件</a></p>
<p><a href="http://xiaolife.com/wordpress/iphone-guide/#part4">4、Push特辑</a></p>
<p><span id="more-327"></span></p>
<h2><a name="part1">1、Cydia部分</a></h2>
<p><a class="highslide" title="Cydia" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/cydia_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/cydia_icon.png" alt="Cydia" /></a>Cydia实际上提供了一个非常类似于linux的更新方式（本来就是bsd系统，很正常），所以一般使用模式是：添加源（Source）——&gt;在源中查找需要的程序（deb格式）——&gt;安装&amp;更新。</p>
<p>Cydia安装好后自带了几个源，不过很多好软件的话还是需要另外添加第三方源的啦。</p>
<p>以下是<strong>晓晓自己添加的几个源，推荐给各位</strong>。<br />
<a class="highslide" title="IMG_0339.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0339.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0339.png" alt="IMG_0339.png" width="30%" height="60%" /></a></p>
<p>在Cydia之中，有些软件几乎是<strong>必须装的</strong>，它们绝大多数用于提供破解软件的运行基础。</p>
<ol>
<li><a class="highslide" title="afc2_patch.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/afc2_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/afc2_deb.png" alt="afc2.deb" width="30%" height="10%" /></a>，如果你是使用blackra1n进行破解工作的话，会需要安装他来使用ifunbox之类软件。</li>
<li><a class="highslide" title="ipa_patch.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/ipa_patch_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/ipa_patch_deb.png" alt="ipa_patch.deb" width="30%" height="10%" /></a>在破解了iPhone之后，还需要安装这么一个ipa补丁才能通过itunes同步破解的ipa格式应用程序。</li>
<li><a class="highslide" title="openssl.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/openssl_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/openssl_deb.png" alt="openssl.deb" width="30%" height="20%" /></a>下面这个openSSL是必装的，至于OpenSSH，如果你需要使用WinSCP之类的SSH客户端来往iPhone里复制东西的话才需要安装，否则不推荐安装，即使临时安装后，也建议立刻卸载掉。</li>
</ol>
<p>其次，还有一些<strong>补丁性质</strong>的软件，也强烈推荐各位安装。不占用内存，而且很实用。</p>
<ol>
<li><a class="highslide" title="background.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/background_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/background_deb.png" alt="background.deb" width="30%" height="10%" /></a>这个patch可以让你自定义你的应用程序背景和短信窗口的背景。</li>
<li><a class="highslide" title="battery.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/battery_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/battery_deb.png" alt="battery.deb" width="30%" height="10%" /></a>就是给右上角的电池图标添加百分比显示啦，让你看的更明白。</li>
<li><a class="highslide" title="ima_safari.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/ima_safari_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/ima_safari_deb.png" alt="ima_safari.deb" width="30%" height="10%" /></a>这个得解释一下了，这个patch的功能是给你的safari添加一个开关，控制它是否下载图片。在你的流量吃紧的时候这个特别有用哦。——放心吧，标准网页的话，即使不显示图片，页面也不会乱掉的说。</li>
<li><a class="highslide" title="weathericon.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/weathericon_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/weathericon_deb.png" alt="weathericon.deb" width="30%" height="10%" /></a>这个程序一直备受好评，它能让你的天气程序直接把温度显示在程序的图标上、状态栏上，而且支持多种天气程序哦。设置界面如图：<a class="highslide" title="IMG_0369.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0369.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0369.png" alt="IMG_0369.png" width="30%" height="60%" /></a></li>
</ol>
<p>最后，<strong>独立程序</strong>部分，有一些经典的软件必须推荐呢~</p>
<ol>
<li><a class="highslide" title="sbsettings.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/sbsetting_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/sbsetting_deb.png" alt="sbsettings.deb" width="30%" height="10%" /></a>这个软件晓晓个人觉得比bossprefs方便，所以强烈推荐，功能强大：它随机自启动，可以通过在屏幕顶部轻轻一划就呼出，可以随时调节亮度、wifi开关、3G开关等，更重要的是，自身还支持主题和第三方增强开关，如下推荐：
<ul>
<li><a class="highslide" title="autolock.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/autolock_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/autolock_deb.png" alt="autolock.deb" width="30%" height="10%" /></a>这个开关可以让你随时调节iPhone是否自动锁屏。</li>
<li><a class="highslide" title="iphone_os_theme.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/iphone_os_theme_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/iphone_os_theme_deb.png" alt="iphone_os_theme.deb" width="30%" height="10%" /></a>这个就是我推荐的sbsettings主题啦，风格和iPhone本身非常搭调，所以一直在用。</li>
<li><a class="highslide" title="rotation_inhibitor.deb" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/rotation_inhibitor_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/rotation_inhibitor_deb.png" alt="rotation_inhibitor.deb" width="30%" height="10%" /></a>这个非常重磅的说，其功能独一无二：能让你控制是否启用iPhone的重力感应。当你躺在床上玩iPhone的时候，它能帮你避免那些多余的自动转屏。强烈推荐！</li>
</ul>
</li>
<li><a class="highslide" title="bitesms" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/bitesms_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/bitesms_deb.png" alt="bitesms" width="30%" height="10%" /></a>这个也是重磅炸弹啊，与myRealSMS并称iPhone上最好的短信软件啊~与原生的短信程序无缝集成。当你有短信的时候，它让你可以直接在当前界面下直接回复短信。完全不需要另外进入短信程序！缺点就是——有点占内存。至于左上角的叉叉偶尔不灵的情况，实际上的点击位置应该在右下方点的位置才对的。设置界面截图：<a class="highslide" title="IMG_0368.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0368.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0368.png" alt="IMG_0368.png" width="30%" height="60%" /></a></li>
<li><a class="highslide" title="cycorder" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/cycorder_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/cycorder_deb.png" alt="cycorder" width="30%" height="10%" /></a>用于iPhone 2G、3G的最好的录像软件，当然，限于硬件条件，效果有限。</li>
<li><a class="highslide" title="gv mobile" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/gv_mobile_dev.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/gv_mobile_dev.png" alt="gv mobile" width="30%" height="20%" /></a>这个……如果你有Google Voice的话，可以从这两款程序里挑选一款来使用哦~很方便的~</li>
<li><a class="highslide" title="mobileterminal" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/mobileterminal_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/mobileterminal_deb.png" alt="mobileterminal" width="30%" height="10%" /></a>这个，比较高端，是一个bash终端，效果就像windows下的命令行一样，当然，功能还是比较受限的。因为iPhone系统本身并没带有很多常用的命令。不过没关系，我们可以再另外安装的啦比如这个：
<ul>
<li><a class="highslide" title="inetutils" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/inetutils_deb.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/inetutils_deb.png" alt="inetutils" width="30%" height="10%" /></a>这个命令包包括了常用了网络命令，比如ping。如果你怀疑iPhone的网络除了什么问题的话，就可以在终端里执行ping命令来确认问题咯。</li>
</ul>
</li>
</ol>
<p>ok~~Cydia部分到此为止啦。下面是ipa程序部分。</p>
<h2><a name="part2">2、ipa程序部分</a></h2>
<p>咦？什么是ipa程序啊？——ipa程序就是后缀名为ipa的，通过双击可以添加到itunes中，然后可以使用itunes将其同步到iPhone上的程序。标准的iPhone程序都是ipa程序。</p>
<p><strong>ipa程序分为两种</strong></p>
<ul>
<li><strong>一种是正版的ipa程序</strong>——你在itunes store中购买的程序，就是正版的ipa程序。这种程序文件你无法与别人共享，只能通过你的账户授权的itunes软件来安装到iPhone中。</li>
<li><strong>第二种则是破解的ipa程序</strong>。这类程序是破解达人们通过对正版的ipa程序做修改，删除掉了验证的代码而得到的。这种程序只能在越狱了的iPhone上安装哦。</li>
</ul>
<p>破解的ipa程序哪里来呢？一般而言，晓晓是<strong>去<a title="appulo.us" href="http://appulo.us/appdb/" target="_blank">appulo.us</a>搜索下载</strong>的。也建议各位同学多去那个站点——东西大而全，并且更新迅速。下面提到的程序，基本都可以在这上面找到。</p>
<p>以下是晓晓认为<strong>必备的</strong>一些ipa程序：</p>
<ol>
<li><a class="highslide" title="5MPX" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/5MPX_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/5MPX_icon.png" alt="5MPX" /></a>一个画质增强的拍照程序，经过晓晓的测试，确实有明显的改善呢~（虽然实质还是锐化+边缘调整）所以现在一直用它拍照。</li>
<li><a class="highslide" title="goodreader" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/goodreader_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/goodreader_icon.png" alt="goodreader" /></a>GoodReader可以说是iPhone上最优秀的pdf浏览软件。普通的缩放、缩放后固定纵向浏览功能不说，更有很方便的重新排版功能——可以把pdf中的文字抽取出来以txt的形式重新排版显示。对于pdf党而言极其方便啊。而且渲染速度也相对很快的说。另外，也可以打开txt的说。重度推荐呢。</li>
<li><a class="highslide" title="notifyme" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/notifyme_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/notifyme_icon.png" alt="notifyme" /></a>这是一个定时通知软件，你在里面设定好几点钟的时候通知你什么内容。然后到了时间它就会很乖的用push的方式告诉你啦~不需要后台运行，因此不另外占用内存，很方便的说~而且它还可以对通知的内容进行分类……嗯嗯，其实它是一款GTD软件。界面：<a class="highslide" title="IMG_0360.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0360.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0360.png" alt="IMG_0360.png" width="30%" height="60%" /></a></li>
<li><a class="highslide" title="office" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/office_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/office_icon.png" alt="office" /></a>嗯嗯，这个是iPhone上最受欢迎的办公程序啦。可以打开编辑word、excel格式的文件。话说回来，其实iPhone本身就能查看office文件的说——比如邮件附件里的word文档，是可以直接查看的。</li>
<li><a class="highslide" title="pandorabox" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pandorabox_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pandorabox" alt="pandorabox_icon.png" /></a>免费软件。对于任何一个有itunes store的人，这款程序几乎是必不可少的啊。它的功能是——告诉你每天有哪些程序在打折、限时免费。就这么简单。省钱的好工具啊。预览：<a class="highslide" title="IMG_0361.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0361.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0361.png" alt="IMG_0361.png" width="30%" height="60%" /></a></li>
<li><a class="highslide" title="qq" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/qq_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/qq_icon.png" alt="qq" /></a>免费软件。囧……这个没什么好说的了吧。</li>
<li><a class="highslide" title="dictionary" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/dictionary_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/dictionary" alt="dictionary_icon.png" /></a>字典类软件，因为字典的数量实在是太多了，晓晓仅再次罗列了下自己正在使用的字典，给各位一个参考。</li>
</ol>
<p>ok。下面则是<strong>各个领域的</strong>优秀软件。</p>
<ul>
<li>如果你是<strong>有车族或者旅游狂</strong>，绝对不应该错过这两款程序<a class="highslide" title="autonavi" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/autonavi_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/autonavi_icon.png" alt="autonavi" /></a>和<a class="highslide" title="xgps" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/gps_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/gps_icon.png" alt="xgps" /></a>两者都是优秀的GPS导航程序。高德自带全国地图而且功能强大，后者则是在线下载bing的地图，适合偶尔用用。如图：<a class="highslide" title="IMG_0359.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0359.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0359.png" alt="IMG_0359.png" width="30%" height="60%" /></a></li>
<li>如果你和晓晓一样喜欢<strong>厨艺</strong>，那么这款程序<a class="highslide" title="五百道家常菜" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/dishes_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/dishes_icon.png" alt="五百道家常菜" /></a>你也一定会喜欢。偶一般是在厨房对着这个程序来学做菜——囧。程序内容很丰富实用，如图：<a class="highslide" title="IMG_0358.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0358.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0358.png" alt="IMG_0358.png" width="30%" height="60%" /></a></li>
<li>如果你和晓晓一样喜欢使用<strong>Google的服务</strong>，那么这三款程序你一定需要：
<ul>
<li><a class="highslide" title="gmail push" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/gmailpush_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/gmailpush_icon.png" alt="gmail push" /></a>顾名思义，就是当你的Gmail有邮件的时候，会立刻收到Push通知啦。顺便一提，这个程序是所有同类程序中最便宜的。如果你需要破解版本的话，不妨试试这个<a class="highslide" title="push gmail" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pushgmail_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pushgmail_icon.png" alt="push gmail" /></a></li>
<li><a class="highslide" title="newsstand" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/newsstand_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/newsstand_icon.png" alt="newsstand" /></a>很棒的RSS阅读程序，能够和Google Reader同步，而且速度很快。如图：<a class="highslide" title="IMG_0362.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0362.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0362.png" alt="IMG_0362.png" width="30%" height="60%" /></a></li>
<li><a class="highslide" title="saisuke" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/saisuke_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/saisuke_icon.png" alt="saisuke" /></a>日历程序，其实也是GTD程序啦。没错，能和Google Calendar同步哦。界面如图：<a class="highslide" title="IMG_0372.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0372.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0372.png" alt="IMG_0372.png" width="30%" height="60%" /></a></li>
</ul>
</li>
<li>如果你和晓晓一样<strong>开有博客</strong>的话，这两款你或许会感兴趣：
<ul>
<li><a class="highslide" title="pocketga" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pocketga_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pocketga_icon.png" alt="pocketga" /></a>嗯，这个程序能让你随时随地查看Google Analysis的数据哦——咦？你没有使用谷歌分析？好吧我没说。</li>
<li><a class="highslide" title="wordpress" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/wordpress_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/wordpress_icon.png" alt="wordpress" /></a>免费软件。对啦，Wordpress官方的客户端，功能一般，但是偶尔用来管理评论和文章还是可以的哈。</li>
</ul>
</li>
<li>啊对了，<strong>聊天软件</strong>！iPhone上最好的聊天软件莫过于<a class="highslide" title="BeejiveIM" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/Beejive_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/Beejive_icon.png" alt="BeejiveIM" /></a>啦。嗯嗯，非常好用，并且有Push，支持多种帐号，gtalk、msn啥的都交给它啦。值得一提的是，该软件没有完美破解，但是绝对值得你购买一只。界面预览：<a class="highslide" title="IMG_0371.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0371.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0371.png" alt="IMG_0371.png" width="30%" height="60%" /></a></li>
<li>此外，语音聊天工具也不少，除开常见的<a class="highslide" title="skype" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/skype_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/skype_icon.png" alt="skype" /></a>免费软件，SIP类的VOIP客户端就有<a class="highslide" title="isip" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/isip_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/isip_icon.png" alt="isip" /></a>和<a class="highslide" title="softphone" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/softphone_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/softphone_icon.png" alt="softphone" /></a>两款很优秀的产品。相比之下iSip支持更多类型的账户，甚至支持Google Voice呢。界面如图：<a class="highslide" title="IMG_0336.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0336.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0336.png" alt="IMG_0336.png" width="30%" height="60%" /></a></li>
</ul>
<p>其他优秀的网络应用类软件有</p>
<ul>
<li>共享文件最佳方案<a class="highslide" title="dropbox" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/dropbox_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/dropbox_icon.png" alt="dropbox" /></a>免费软件。</li>
<li>flickr浏览、上传、管理客户端<a class="highslide" title="mobilefotos" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/mobilefotos_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/mobilefotos_icon.png" alt="mobilefotos" /></a>。</li>
<li>让别人更容易联系上你的解决方案<a class="highslide" title="pushme.to" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pushmeto_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/pushmeto_icon.png" alt="pushme.to" /></a>。</li>
<li>保存想看的网页以便下次观看的服务<a class="highslide" title="read it later" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/readitlater_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/readitlater_icon.png" alt="read it later" /></a>。<a class="highslide" title="IMG_0364.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0364.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0364.png" alt="IMG_0364.png" width="30%" height="60%" /></a></li>
<li>最佳twitter客户端<a class="highslide" title="tweetie" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/tweetie_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/tweetie_icon.png" alt="tweetie" /></a>。</li>
<li>大陆股市浏览软件<a class="highslide" title="大智慧" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/stock_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/stock_icon.png" alt="大智慧" /></a>免费软件。界面预览：<a class="highslide" title="IMG_0367.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0367.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0367.png" alt="IMG_0367.png" width="30%" height="60%" /></a></li>
<li>简单的手机电视软件<a class="highslide" title="wtv" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/wtv_icon.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/wtv_icon.png" alt="wtv" /></a>。界面预览：<a class="highslide" title="IMG_0338.png" onclick="return hs.expand(this)" href="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0338.png" target="_blank"><img src="http://xiaolife.com/wordpress/wp-content/uploads/2010/01/IMG_0338.png" alt="IMG_0338.png" width="30%" height="60%" /></a></li>
</ul>
<h2><a name="part3">3、PC端程序部分</a></h2>
<p>实际上在晓晓看来，很多人并不清楚iPhone与iTunes的设计意图，也不知道如何去正确的使用。——诚然，与传统手机的使用方式差异巨大是一个重要原因。但是，学会使用iTunes，是一个iPhone使用者的基本技能啊……</p>
<p>晓晓建议，把ipa应用程序、铃声、歌曲、照片、视频、通讯录等<strong>全部通过iTunes来同步</strong>。这样做的好处之一是，当你要重新刷系统的时候，你的所有数据都不会丢失，因为iTunes会备份下来。你也不用整天愁着怎么去把iPhone里的歌曲重新复制出来。并且，你可以避免绝大多数莫名其妙的问题。比如各种白苹果啥的。</p>
<p>于是有小白会问了，我们又不会转视频，不会制作铃声，怎么办？ok，下面就是解答。</p>
<p><strong>视频转换</strong>，网上太多乱七八糟的答案，而实际上所推荐的都是mencoder核心换个外壳而已。于此，晓晓强烈推荐各位小白大白们使用<strong>Xilisoft Video Converter Ultimate</strong>这个软件。这个软件支持几乎所有的常用格式的转换，使用简便，同时也隐藏着大量（几乎是完整的）高级参数选择。其最大特点是，已经为大量的移动媒体设置好了预置方案。iPhone啊iPod啊什么的自然不在话下啦。什么？字幕？当然支持啦。相信偶，Xilisoft出品的软件质量还是很有保障的，比那些山寨货要好的不是一点半点。</p>
<p><strong>铃声制作</strong>？<strong>iRinger</strong>。绿色软件，拖拉搞定，支持淡入淡出。除了最大30s以外，没有任何不爽。以上。</p>
<p><strong>文件传输</strong>？<strong>WinSCP</strong>或者<strong>iFunbox</strong>。前者需要OpenSSH的支持，能够更改文件的权限。后者则不需要，也就不支持更改文件权限之类的操作。</p>
<p><strong>deb安装</strong>？虽然晓晓觉得用Cydia搜索就够了，但是既然你下载来了deb文件，那么用<strong>Cyder</strong>安装最方便咯。单独安装deb的缺点就是——没有自动更新。因此晓晓建议各位，能用cydia搜索安装的，就不要另外单独下载deb包了。</p>
<h2><a name="part4">4、Push特辑部分</a></h2>
<p>Push是iPhone的一个重要功能，用于弥补iPhone OS不允许普通软件后台运行的不足。实际上，Push是个相当强大的功能呢。晓晓看到坛子里老有同学对push表示不解，特来解释一下。</p>
<p>晓晓的iPhone上，有Push功能的程序主要有：Facebook、Gmail Push、BeejiveIM、pushme.to、eBay、iTweetReply、NotifyMe、iSip。</p>
<p>有了这些程序的Push之后，能怎么样呢？</p>
<p>当Facebook上有人给我留言，当Gmail收到新邮件，当Gtalk或者MSN或者AIM上有人对我说话，当有人用pushme给我留言、当eBay上的拍卖被人超过价格、当Twitter上有人@我，当我设定的通知时间到达、当有人给我的Voip号码打电话，我都会在第一时间内收到Push通知——这里的第一时间是指延迟小于10s，一般在3s内。</p>
<p>所以在别人看来，晓晓的gtalk帐号是24小时在线的。所以晓晓从来不担心离开了电脑会错过邮件。所以晓晓从来不用守着客户端来刷twitter。所以晓晓也不用耗在eBay网站上来抢拍东西。所以……</p>
<p>试想，如果这些程序都后台运行的话，谁的手机能受得了呢。因此晓晓得说，Push是个很强大很强大的工具。如果你善于使用它。</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2892px; width: 1px; height: 1px; overflow: hidden;">dictionary_icon</div>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2010. |
<a href="http://xiaolife.com/wordpress/iphone-guide/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/apple/" rel="tag">apple</a>, <a href="http://xiaolife.com/wordpress/tag/iphone/" rel="tag">iphone</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=327" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/iphone-guide/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>浅说GPT与各类引导程序</title>
		<link>http://xiaolife.com/wordpress/hybrid-gpt-and-os-loaders/</link>
		<comments>http://xiaolife.com/wordpress/hybrid-gpt-and-os-loaders/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 16:46:19 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[gpt]]></category>
		<category><![CDATA[hackintosh]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[MBR]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=298</guid>
		<description><![CDATA[这篇文章也欠了好久呃。最近忙于项目，无暇顾及博客。不得已晓晓决定开始用iPhone上的wordpress客户端写博客了。 文章中的结论，或为晓晓反复试验得出，或为查阅软件文档得出，随着软件更新，可能会有变哦。 首先来说说Windows自带的引导程序。应该说，Windows对GPT的支持还是不错的，前提是主板支持EFI。因此在MBR/GPT混合磁盘中，Win仅能识别作MBR磁盘，所以和MBR下的表现无异。如果此时强行将Win装到GPT分区范围，那么在修复引导时你会遇到很神奇的错误提示。。。 此外，如果要在windows下引导至Mac所在分区，原始的chain0以及tboot是不支持GPT的，这里有一个修改版的chain0文件，支持GPT上的引导。原地址在这里。 其次是Linux常用的Grub。这里需要注意，现行的Grub分两个版本，大多数发行版使用的1.0版本，以及Ubuntu 9.10使用的1.9X（也就是说 2）版本。 1.0版本实际较弱，不支持GPT，对于非Linux系统似乎仅能以chainloader+1方式引导（其实已经很好了），但是对于Mac的引导支持并不好——尤其是当需要使用EFI来加载一些破解用kext时。 而 2 版本的Grub在这方面强化了很多，查看其配置文件grub.cfg可以看见，可以直接设定其关于kext加载甚至图片的自定义。 ?Download grub.cfg1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 menuentry &#34;Mac OS X (on [...]]]></description>
			<content:encoded><![CDATA[<p>这篇文章也欠了好久呃。最近忙于项目，无暇顾及博客。不得已晓晓决定开始用iPhone上的wordpress客户端写博客了。</p>
<p>文章中的结论，或为晓晓反复试验得出，或为查阅软件文档得出，随着软件更新，可能会有变哦。</p>
<p>首先来说说Windows自带的引导程序。应该说，Windows对GPT的支持还是不错的，前提是主板支持EFI。因此在MBR/GPT混合磁盘中，Win仅能识别作MBR磁盘，所以和MBR下的表现无异。如果此时强行将Win装到GPT分区范围，那么在修复引导时你会遇到很神奇的错误提示。。。<br />
<span id="more-298"></span><br />
此外，如果要在windows下引导至Mac所在分区，原始的chain0以及tboot是不支持GPT的，这里有一个修改版的chain0文件，支持GPT上的引导。<a href="http://bbs.pcbeta.com/viewthread.php?tid=395944" target="_blank">原地址在这里。</a></p>
<p>其次是Linux常用的Grub。这里需要注意，现行的Grub分两个版本，大多数发行版使用的1.0版本，以及Ubuntu 9.10使用的1.9X（也就是说 2）版本。<br />
1.0版本实际较弱，不支持GPT，对于非Linux系统似乎仅能以chainloader+1方式引导（其实已经很好了），但是对于Mac的引导支持并不好——尤其是当需要使用EFI来加载一些破解用kext时。<br />
而 2 版本的Grub在这方面强化了很多，查看其配置文件grub.cfg可以看见，可以直接设定其关于kext加载甚至图片的自定义。</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://xiaolife.com/wordpress/wp-content/plugins/wp-codebox/wp-codebox.php?p=298&amp;download=grub.cfg">grub.cfg</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2982"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code" id="p298code2"><pre class="bash" style="font-family:monospace;">menuentry <span style="color: #ff0000;">&quot;Mac OS X (on /dev/sda6)&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	insmod hfsplus
	<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">root</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span>hd0,<span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
	search <span style="color: #660033;">--no-floppy</span> <span style="color: #660033;">--fs-uuid</span> <span style="color: #660033;">--set</span> 4cee3ea2a82a0dd0
        insmod vbe
        <span style="color: #007800;">do_resume</span>=<span style="color: #000000;">0</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>vm<span style="color: #000000; font-weight: bold;">/</span>sleepimage <span style="color: #660033;">-nt10</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
           <span style="color: #000000; font-weight: bold;">if</span> xnu_resume <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>vm<span style="color: #000000; font-weight: bold;">/</span>sleepimage; <span style="color: #000000; font-weight: bold;">then</span>
             <span style="color: #007800;">do_resume</span>=<span style="color: #000000;">1</span> <span style="color: #666666; font-style: italic;">#支持睡眠唤醒</span>
           <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$do_resume</span> == <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
           xnu_uuid 4cee3ea2a82a0dd0 uuid
           <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>DSDT.aml <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
              acpi <span style="color: #660033;">-e</span> <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>DSDT.aml <span style="color: #666666; font-style: italic;">#加载DSDT配置文件</span>
           <span style="color: #000000; font-weight: bold;">fi</span>
           xnu_kernel <span style="color: #000000; font-weight: bold;">/</span>mach_kernel boot-uuid=<span style="color: #800000;">${uuid}</span> <span style="color: #007800;">rd</span>=<span style="color: #000000; font-weight: bold;">*</span>uuid
           <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">/</span>System<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Extensions.mkext <span style="color: #660033;">-nt</span> <span style="color: #000000; font-weight: bold;">/</span>System<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Extensions <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
              xnu_mkext <span style="color: #000000; font-weight: bold;">/</span>System<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Extensions.mkext <span style="color: #666666; font-style: italic;">#定义系统kext缓存</span>
           <span style="color: #000000; font-weight: bold;">else</span>
              xnu_kextdir <span style="color: #000000; font-weight: bold;">/</span>System<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Extensions <span style="color: #666666; font-style: italic;">#定义系统kext文件位置</span>
           <span style="color: #000000; font-weight: bold;">fi</span>
           <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>Extensions.mkext <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
              xnu_mkext <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>Extensions.mkext <span style="color: #666666; font-style: italic;">#自定义额外加在的kext缓存</span>
           <span style="color: #000000; font-weight: bold;">fi</span>
           <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>Extensions <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
              xnu_kextdir <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>Extensions <span style="color: #666666; font-style: italic;">#自定义额外加在的kext文件位置</span>
           <span style="color: #000000; font-weight: bold;">fi</span>
           <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>devtree.txt <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
              xnu_devtree <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>devtree.txt <span style="color: #666666; font-style: italic;">#自定义设备树</span>
           <span style="color: #000000; font-weight: bold;">fi</span>
           <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>splash.jpg <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
              insmod jpeg
              xnu_splash <span style="color: #000000; font-weight: bold;">/</span>Extra<span style="color: #000000; font-weight: bold;">/</span>splash.jpg <span style="color: #666666; font-style: italic;">#自定义启动画面</span>
           <span style="color: #000000; font-weight: bold;">fi</span>
           <span style="color: #666666; font-style: italic;">#code omitted</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></td></tr></table></div>

<p>并且Grub 2可以被安装在EFI分区，甚至引导原版Macbook，自然也支持纯GPT（必须有EFI）。注意：在多硬盘情况是，Grub 2仍非常容易出问题。</p>
<p>需要指出的是，Grub对混合GPT磁盘格式的支持并不完善——Grub必须被安装到MBR中。即使安装至前四个MBR分区的VBR中，在开机时Grub也不会启动。另外补充一句，在MBR磁盘中，Grub 2不能被装在扩展分区之后，否则其关于分区的判断会出错。此乃BUG，可手工修复。但在Linux中，对于分区情况的识别，几乎始终是正确的。</p>
<p>最后，我们来看看Hackintosh常用的引导程序，Chameleon （此处仅讨论2.0版本，1.0未实验且过古老）和基于它的衍生版本Boot Think，在分区识别上二者效果基本一致，故不做区别。Chameleon对于混合GPT的支持很好，但致命的缺陷是，不能很好的支持linux的ext分区。只有MBR分区形式的ext分区才能被正确识别。GPT部分的ext基本都识别不出来。这个情况到进入MacOS后会变成另一番样子，磁盘工具对分区的识别会出错，比如可能不能正确识别ext分区的末端。</p>
<p>不过，Chameleon也支持安装到EFI分区。并且新版的boot Think甚至支持加载kext后引导Mac安装光盘，这是其他引导程序所没有实现的。</p>
<p>由于对Chameleon没有深入研究的渠道，所以目前的结论只有以上这些。</p>
<p>目前晓晓使用的是Grub 2来引导。</p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2009. |
<a href="http://xiaolife.com/wordpress/hybrid-gpt-and-os-loaders/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/gpt/" rel="tag">gpt</a>, <a href="http://xiaolife.com/wordpress/tag/hackintosh/" rel="tag">hackintosh</a>, <a href="http://xiaolife.com/wordpress/tag/mac/" rel="tag">mac</a>, <a href="http://xiaolife.com/wordpress/tag/mbr/" rel="tag">MBR</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=298" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/hybrid-gpt-and-os-loaders/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Rails2.3+与MySQL 5.1.3不兼容致使db:migrate报错的解决办法</title>
		<link>http://xiaolife.com/wordpress/rails-2-3-dbmigrate-issue-with-mysql-5-1-3/</link>
		<comments>http://xiaolife.com/wordpress/rails-2-3-dbmigrate-issue-with-mysql-5-1-3/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 13:05:30 +0000</pubDate>
		<dc:creator>Sid 晓</dc:creator>
				<category><![CDATA[教程]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://xiaolife.com/wordpress/?p=296</guid>
		<description><![CDATA[如果使用最新的Rails 2.3与MySQL 5.1.3进行开发，很有可能你会遇到这个问题： 在rake db:migrate时报错，提示 Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB 检查日志，你会发现即使配置完全没有问题，运行 ruby script/dbconsole 也能够正常连接上，migrate依然会报错。那么到底是为什么呢？ 这是因为MySQL 5.1.3版本所带的libmysql.dll文件并不能很好的与Rails连接。所以你只需更换一个旧版本的libmysql.dll文件即可。 从 http://instantrails.rubyforge.org/svn/t ... bmySQL.dll 处可以下载到旧版本的libmysql.dll文件，将其保存在ruby\bin\目录下即可。 附：这个问题折腾了晓晓半个晚上啊……最终找到的解决方案原出处在此 （blogspot站点，在墙外） © Sid 晓 for Life Journal, 2009. &#124; 文章原始地址 Post tags: mysql, rails]]></description>
			<content:encoded><![CDATA[<p>如果使用最新的Rails 2.3与MySQL 5.1.3进行开发，很有可能你会遇到这个问题：<br />
在rake db:migrate时报错，提示</p>
<blockquote><p>Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version`<br />
varchar(255) NOT NULL) ENGINE=InnoDB</p></blockquote>
<p>检查日志，你会发现即使配置完全没有问题，运行 ruby script/dbconsole 也能够正常连接上，migrate依然会报错。那么到底是为什么呢？<span id="more-296"></span></p>
<p>这是因为MySQL 5.1.3版本所带的libmysql.dll文件并不能很好的与Rails连接。所以你只需更换一个旧版本的libmysql.dll文件即可。</p>
<p>从 <a href="http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll">http://instantrails.rubyforge.org/svn/t ... bmySQL.dll</a> 处可以下载到旧版本的libmysql.dll文件，将其保存在ruby\bin\目录下即可。</p>
<p>附：这个问题折腾了晓晓半个晚上啊……最终找到的解决方案原出处<a href="http://halyph.blogspot.com/2009/08/rails-23-migration-issues-with-mysql_26.html" target="_blank">在此</a> （blogspot站点，在墙外）</p>
<p><small>© Sid 晓 for <a href="http://xiaolife.com/wordpress">Life Journal</a>, 2009. |
<a href="http://xiaolife.com/wordpress/rails-2-3-dbmigrate-issue-with-mysql-5-1-3/">文章原始地址</a>
<br/>
Post tags: <a href="http://xiaolife.com/wordpress/tag/mysql/" rel="tag">mysql</a>, <a href="http://xiaolife.com/wordpress/tag/rails/" rel="tag">rails</a><br/>
</small></p><img width="6" height="5" src="http://xiaolife.com/wordpress/wp-content/plugins/google-reader-stats/google-reader-view.php?id=296" />]]></content:encoded>
			<wfw:commentRss>http://xiaolife.com/wordpress/rails-2-3-dbmigrate-issue-with-mysql-5-1-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: xiaolife.com @ 2012-05-19 13:18:39 -->
